1. 程式人生 > >MySQL 基礎語法結構

MySQL 基礎語法結構

lte 屬性 where evo 查詢 change utf8 分開 bsp

增、刪、改、查

DATABASE

1,創建數據庫【增】

create database dbname charset utf8;
#創建    數據庫   庫名   設置編碼  UTF8

2,查詢庫【查】

show create database dbname;
#查詢數據庫的 創建信息  

show databases;
#列出所有存在的數據庫名

3,改數據庫【改】

alter database db1 charset gbk;
#更改   數據庫   名  編碼格式 GBK
#更改數據庫名為db1的數據庫編碼為gbk。

4,刪除數據庫【刪】

drop database
db1; #刪 數據庫 名

TABLE

切換庫: use DataBaseName;( 庫等同於文件夾,切換庫就如同切換文件夾 )

查看當前庫: select database();(查看當前所在的庫名,就相當於查看當前文件夾名)

表的操作就是在庫(文件夾)內部操作,每一個表就相當於是庫中的文件,表名就是文件名,表內容就是文件內容。創建的表會生成兩個文件,一個是*.frm 另一個是 *.ibd。

1,創建表【增】

#語法形式
create table 表名(
字段名1 類型[(寬度) 約束條件],
字段名2 類型[(寬度) 約束條件],
字段名3 類型[(寬度) 約束條件
] ); #字段間用,逗號分開,最後一個不要有,逗號。 #語句樣式 create table t1(id int,name char); #創建 表 表名 (列名 屬性)

2,查詢表【查】

show create table t1;
#查詢 已創建 表的屬性信息 “\G”使用後會格式化顯示。

desc t1;
#與上一條一樣,查詢已創建表的屬性信息。

show tables;
#查詢當前庫中所有表的名字。

3,修改表結構【改】

#修改表名
alter table t1 rename newt1
#修改   表  表名 改名  新表名

#增加字段
alter table
t1 add remarks char(10); #修改 表 表名 增加 字段名 字段類型 alter table t1 add remarks char(10), add remarks2 char(11); #註:添加多個字段用,逗號分隔,;分號結束,但都需要 ADD 字段名 數據類型 格式。 alter table t1 add newfield int first; #修改 表 表名 增加 字段名 字段類型 添加最前面 #註:first 表示將該條字段添加到表的最前面。 alter table t1 add newfield1 int after name; #修改 表 表名 增加 字段名 字段類型 在...後面 字段名 #註:after + 字段名 意思是將新的字段名填加到某字段名之後。 #刪除字段 alter table t1 drop newfield1; #修改 表 表名 丟掉 字段名 #修改字段 alter table t1 modify name char(10); #修改 表 表名 屬性 列名 屬性值 alter table t1 change name Name char(10); #修改 表 表名 更改 列名(舊) 列名(新) 屬性值

4,刪除表【刪】

drop table t1;
#刪   表    表名

復制表

1. 先建立一個空庫 :
     create database db3 charset utf8;
2. 使用新庫:
     use db3;
3. 【方法一】復制目標庫表中的字段:
     create table t1 select host,user from mysql.user;
      新建    表  表名  查找   字段名     從   目標庫.目標表;
#註:復制過後表的結構屬性和表內字段數據一同都拷貝過來了。如果只想拷貝表結構,可以使用where條件或讓where後的條件式不成立,這樣就只拷貝表結構了。
#例:create table t1 select host,user from mysql.user where 1>5;
   #【方法二】復制表結構:
    create table t1 like mysql.user;
    #新建    表  表名 像   目標庫.目標表
#註:只拷貝表結構,不含字段內容

記錄 Record

1,添加記錄【增】

insert into t1(id,name) value (id,name);
#插入   到   表名(列名)  值  (列名)
#into可以不寫,但建議寫上,使語句結構完整易讀,另外就算是一個列名也必須加括號。例:t1(name) value (name)

insert into t1 value(id,name),(id,name);
insert into t1(name) value (name),(name);
#插入 到 t1 值為(列名),如果指定了表中的某列,那麽值也要按指定的格式賦值,如二例所示。

2,查表記錄【查】

select id,name from t1;
#查詢 列名      從   表名

select id,name from db1.t1;
#查詢   列名     從   數據庫名.表名

select * from t1;
#查詢  所有列  從  表名

3,改表信息【改】

update db1.t1 set name=sly;
#更新  數據庫名.表名 設置 列名=新值
#將數據庫db1中的t1表中name列內容改為slyupdate t1 set name=sly where id=2;
#更新  表名 設置 列名=新值  條件 條件值
#更新 t1表中的name列的內容改為sly,條件為id為2的記錄。

4,刪除記錄【刪】

delete from t1;
#刪除   從  表名
#刪除t1表中的所有記錄。

delete from t1 where id=2;
#刪除   從  表名  條件  條件值

SQL語句的基本概念

SQL語言主要用於存取數據、查詢數據、更新數據和管理關系數據庫系統,SQL語言由IBM開發。SQL語言分為3種類型:

1、DDL語句 數據庫定義語言: 數據庫、表、視圖、索引、存儲過程,例如CREATE DROP ALTER

2、DML語句 數據庫操縱語言: 插入數據INSERT、刪除數據DELETE、更新數據UPDATE、查詢數據SELECT

3、DCL語句 數據庫控制語言: 例如控制用戶的訪問權限GRANT、REVOKE

庫的命名規則

可以由字母、數字、下劃線、@、#、$

區分大小寫

唯一性

不能使用關鍵字,如create select

不能單獨使用數字

最長128位

使用help + 命令 可以查看SQL語句的用法.

表的類型 就是 存儲引擎

一、查看MySQL支持的存儲引擎

#命令
show engines;

註:MySQL支持多種存儲引擎,是需要關註innoDB,MySQL的默認引擎。

二、指定表類型(存儲引擎)

#例:
create table t1(id int) engines=innoDB;

innoDB在庫中是兩張表。

MySQL 基礎語法結構