基於Mysql常用語句總結

隨着這幾天對Mysql的學習,發現其中的語句真的是越來越多了。。。於是呢,就打算對目前所學的東西做個簡單的總結。

DQL語言部分

DQL是Data Query Language的縮寫,意爲數據查詢語言,select是這部分最重要的關鍵字,查詢語句及函數調用都與他密切相關,下面是一條查詢語句總的框架

select 查詢列表
from1
連接類型 join2
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 條目數;
級連刪除
delete1,2 from1 連接類型 join2 on 連接條件 where 篩選條件;
方式三
truncate table 表名;
修改單表的記錄
update 表名 set 字段名1=1,字段名2=2,... where 篩選條件;
修改多表的記錄
update1 連接類型 join2 別名 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;

先寫到這,後續再更新吧

發佈了41 篇原創文章 · 獲贊 15 · 訪問量 3517
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章