隨着這幾天對Mysql的學習,發現其中的語句真的是越來越多了。。。於是呢,就打算對目前所學的東西做個簡單的總結。
DQL語言部分
DQL是Data Query Language的縮寫,意爲數據查詢語言,select是這部分最重要的關鍵字,查詢語句及函數調用都與他密切相關,下面是一條查詢語句總的框架
select 查詢列表
from 表1
連接類型 join 表2
on 連接條件
where 分組前篩選
group by 分組列表
having 分組後篩選
order by 排序列表
limit 起始條目索引,條目數;
DML語言部分
DML語言是Data Manipulate Language的縮寫,意爲數據操作語言,主要是對數據做增、刪、改操作
增
方式一
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
方式二
insert into 表名 set 字段名1=值1,字段名2=值2,...;
刪
刪除單表的記錄
delete from 表名 where 篩選條件 limit 條目數;
級連刪除
delete 表1,表2 from 表1 連接類型 join 表2 on 連接條件 where 篩選條件;
方式三
truncate table 表名;
改
修改單表的記錄
update 表名 set 字段名1=值1,字段名2=值2,... where 篩選條件;
修改多表的記錄
update 表1 連接類型 join 表2 別名 on 連接條件 set 字段名1=值1,字段名2=值2,... where 篩選條件;
DML語言部分
DML是Data Define Language的縮寫,意爲數據定義語言,通過這些語句,實現對庫、表的一些列操作
庫
創建庫
create database if not exists 庫名 character set 字符集;
修改庫的字符集
alter database 庫名 character set 字符集;
刪除庫
drop database if exists 庫名;
表
創建表
create table if not exists 表名(
字段名1 字段類型 約束,
字段名2 字段類型 約束,
...
);
修改表
#1.添加列
alter table 表名 add column 列名 類型 first|after 字段名;
#2.修改列的類型或約束
alter table 表名 modify column 列名 新類型 新約束;
#3.修改列名
alter table 表名 change column 舊列名 新列名 類型;
#4.刪除列
alter table 表名 drop column 列名;
#5.修改列名
alter table 表名 rename to 新表名;
刪除表
drop table if exists 表名;
複製表
複製表的結構(不含數據)
create table 表名 like 舊錶名
複製表的結構(含數據)
create table 表名
select 查詢列表 from 舊錶名 where 篩選條件
約束
創建表時添加約束
列級約束
create table 表名(
字段名1 字段類型 primary key,#主鍵
字段名2 字段類型 not null,#非空
字段名3 字段類型 check,#mysql中不支持
字段名4 字段類型 unique,#唯一
字段名5 字段類型 default 默認值,#有默認值
字段名6 字段類型 references 表名(字段名)#外鍵,但這種情況下沒效果
);
表級約束
create table 表名(
字段名1 字段類型 ,
字段名2 字段類型 ,
字段名3 字段類型 ,
字段名4 字段類型 ,
字段名5 字段類型 ,
字段名6 字段類型 ,
constraint 約束名1 primary key(字段名1),
constraint 約束名2 check(字段名3='值1' or 字段名3='值2'),
constraint 約束名3 unique(字段名4),
constraint 約束名4 foreign key(字段名6) references 表名(字段名)
);
修改表時對約束的添加和刪除
#主鍵
alter table 表名 modify column 字段名 字段類型 primary key;
alter table 表名 add primary key(字段名);
alter table 表名 modify column 字段名 字段類型;
alter table 表名 drop primary key;
#非空
alter table 表名 modify column 字段名 字段類型 not null;
alter table 表名 modify column 字段名 字段類型 NULL;
#默認
alter table 表名 modify column 字段名 字段類型 default 默認值;
alter table 表名 modify column 字段名 字段類型;
#唯一
alter table 表名 modify column 字段名 字段類型 unique;
alter table 表名 add unique(字段名);
alter tabble 表名 drop index 索引名;
#外鍵
alter table 表名 add foreign key(字段名) references 表名(字段名);
alter table 表名 drop foreign key 約束名;
添加級連刪除的外鍵
alter table 表名 add constraint 約束名 foreign key(字段名) references 表名(字段名) on delete cascade;
添加級連置空的外鍵
alter table 表名 add constraint 約束名 foreign key
(字段名) references 表名(字段名) on delete set null;
先寫到這,後續再更新吧