1. DDL (Data Definition Language)數(shù)據(jù)定義語言,用于操作數(shù)據(jù)庫和表
createalterdroptruncate
auto_increment 自增
truncate 刪除表并重新創(chuàng)建,而delete是只刪除表中的數(shù)據(jù)
#創(chuàng)建數(shù)據(jù)庫
create databse 數(shù)據(jù)庫名稱;
#刪除數(shù)據(jù)庫
drop database 數(shù)據(jù)庫名稱;
#創(chuàng)建表(以user表為例)
create table user(id int primary key auto_increment,...);
#修改表名
alter table user rename to user2;
#添加表字段
alter table user add username varchar(20);
#修改表字段
alter table user change username name varchar(20);
#修改字段類型
alter table user modify name int;
#刪除表字段
alter table user drop name;
#刪除表
drop table user;
常用的命令
#切換數(shù)據(jù)庫
use 數(shù)據(jù)庫名稱;
#顯示數(shù)據(jù)庫中所有表
show tables;
#查看表結(jié)構(gòu)
desc user;
#查看表的建表語句
2. DML(Data Manipulation Language)數(shù)據(jù)操縱語言:適用范圍:對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行一些簡單操作,如insert,delete,update,select等.
- 插入
#1.插入表中對應(yīng)的所有字段
insert into user values(字段值...) ;
#2.插入指定的字段
insert into user(字段...) values(字段值...);
- 更新
update user set 字段=字段值 where 條件;
- 刪除
delete from user where 條件;
- 查詢
select ... from 表名 where 條件 group by 分組字段 having 條件 order by 排序字段;
#分頁查詢
select ... limit m,n;(從索引m開始向后查找n條數(shù)據(jù))
select ... limit n; (相當(dāng)于上面的[0,n])
3.多表查詢
-
內(nèi)連接
-
顯式
#a,b為表名 select a.*,b.* from a [inner] join b on 條件; -
隱式
#a,b為表名 select a.*,b.* from [outer] a,b where 條件;
-
-
外連接
-
左外連接
select a.*,b.* from a left join b on 條件;以a為主,展示所有數(shù)據(jù),根據(jù)條件關(guān)聯(lián)查詢b表;滿足條件展示,否則的話顯示NULL;右外連接類似,只不過是以b為主。
-
子查詢
一個查詢依賴另一個查詢。
4. MySQL事務(wù)
事務(wù)是一組不可被分割執(zhí)行的SQL語句集合,如果有必要,可以撤銷。 MySQL中事務(wù)默認(rèn)是自動提交(見下圖),每執(zhí)行一條sql語句都會提交一次事務(wù)

默認(rèn)是自動提交
- 關(guān)閉自動事務(wù).
set autocommit = off;
- 手動開啟一個事務(wù)
#開啟事務(wù)
start transaction;
#事務(wù)提交(提交之前所執(zhí)行的sql語句)
commit;
#事務(wù)回滾(清空之前的操作,撤銷)
rollback;