1.查看所有數據庫
show databases
2.指定使用某個數據庫
use 數據庫名;
3.創建數據庫
create database 數據庫名;
create database 數據庫名 charset 'utf8';#在mysql中字符集名稱不要使用utf-8
create database 數據庫名 charset 'gbk';
4.刪除數據庫
drop database 數據庫名;
5.查看某個庫下的所有表格
show tables;前提是前面有use 數據庫名;的語句
show tables from 數據庫名;
6.創建表格
create table [數據庫名].表名(
字段1 數據類型,
字段2 數據類型,
...
);
create table 【數據名.】表名(
字段名1 數據類型 primary key ,
字段名2 數據類型 【unique key】 【not null】 【default 默認值】,
....
);
create table 【數據名.】表名(
....,
primary key(複合主鍵字段列表),#如果是複合主鍵,那麼就需要在所有字段列表後面使用這種形式指定,不能在字段後面直接加primary key
unique key(複合唯一字段列表)#如果是複合唯一鍵,那麼就需要在所有字段列表後面使用這種形式指定,不能在字段後面直接加unique key
);
create table 【數據名.】表名(
....,
foreign key (從表字段) references 主表名(主表字段) 【on update xx】[on delete xx]
#外鍵只能在所有字段列表後面單獨指定
);
create table 【數據庫名.】表名(
字段名 數據類型 【primary key或unique key】 auto_increment,
....
);
一個表只能有一個主鍵約束,主鍵列必須非空和唯一
一個表可以有很多個唯一鍵約束
一個表可以有很多個外鍵約束,外鍵必須建立在“從表”上。
mysql會自動給鍵約束的列增加索引
自增列必須是key列,自增列的數據類型是整型,一個表只能有一個自增列
7.刪除表格
drop table [數據庫名.]表名稱;
8.查看某個表結構
describe [數據庫名.]表名稱;
desc [數據庫名.]表名稱
9.增加一列
alter table 【數據庫名.]表名稱 add 【column】 字段名 數據類型;
alter table 【數據庫名.]表名稱 add 【column】 字段名 數據類型 first;
alter table 【數據庫名.]表名稱 add 【column】 字段名 數據類型 after 另一個字段;
11.修改列數據類型
alter table 【數據庫名.]表名稱 modify 【column】 字段名 新數據類型;
12、修改列名
alter table 【數據庫名.]表名稱 change【column】 舊字段名 新字段名 新數據類型;
13、修改列的位置
alter table 【數據庫名.]表名稱 modify 【column】字段名 數據類型 first;
alter table 【數據庫名.]表名稱 modify 【column】字段名 數據類型 after 另一個字段;
14、修改表名稱
alter table 舊錶名 rename 新表名;
rename table 舊錶名 to 新表名;
15、建表後增加主鍵
alter table 【數據庫名.]表名稱 add primary key(主鍵字段);
16、刪除主鍵
alter table 【數據庫名.]表名稱 drop primary key;
17、建表後增加唯一鍵
alter table 【數據庫名.]表名稱 add unique key(唯一鍵字段);
18、刪除唯一鍵
alter table 【數據庫名.]表名稱 drop index 索引名;
19、如何查看某個表的索引名
show index from 【數據庫名.]表名稱;
20、建表後如何增加某列非空約束
alter table 【數據庫名.]表名稱 modify 字段名 數據類型 not null;
21、建表後如何取得某列非空約束
alter table 【數據庫名.]表名稱 modify 字段名 數據類型;
22、建表後如何增加某列默認值約束
alter table 【數據庫名.]表名稱 modify 字段名 數據類型 default 默認值;
23、建表後如何去掉某列的默認值約束
alter table 【數據庫名.]表名稱 modify 字段名 數據類型;
24、建表後想要給“從表”增加外鍵約束
alter table 【數據庫名.]從表名稱 add foreign key (從表字段) references 主表名(主表字段) 【on update xx】 【on delete xx】;
外鍵必須建立在“從表”
主表被引用(參考)的字段必須是key列
主表被引用字段的數據類型與從表該字段的數據類型要求一致,名稱可以相同也可以不同
在創建外鍵時,如果沒有指定約束策略:on update xx 和on delete xx,默認是restrict,如果要指定,可以分別指定爲:restrict,no action,set null, cascade四種
一旦外鍵建立後,對從表的影響是值的範圍,在添加和修改從表外鍵字段時,值的範圍受主表被引用字段的約束,
一旦外鍵建立後,對主表的影響是在修改、刪除主表被引用字段的數據和表結構是否受約束;取決於選擇約束策略,如果是restrict,那麼主表被引用字段將受到約束,如果選擇set null或cascade,主表將不會受約束,會級聯將從表對應外鍵字段置空或刪除。
25、刪除外鍵
#(1)先查看約束名
select * from information_schema.table_constraints where table_name = '表名稱';
#(2)刪除外鍵約束
alter table 【數據庫名.]表名稱 drop foreign key 外鍵約束名;
#(3)如果還需要刪除因爲外鍵自動創建的索引
#查看索引
show index from 表名稱;
alter table 【數據庫名.]表名稱 drop index 索引名;