DML(數據定義語言) 插入語句 方式一:經典的插入語句 * 語法: insert into 表名(列名,...) values(值1,...); 方式二: 語法: insert into 表名 set 列名=值,列名=值,...... 方式一和方式二對比: 方式一支持插入多行,方式二不支持; 方式 ...
DML(數據定義語言)
插入語句
方式一:經典的插入語句 *
語法:
insert into 表名(列名,...) values(值1,...);
方式二:
語法:
insert into 表名
set 列名=值,列名=值,......
方式一和方式二對比:
- 方式一支持插入多行,方式二不支持;
- 方式一支持子查詢,方式二不支持;
修改語句
修改單表的記錄*
語法:
update 表名(1)
set 列=新值,列=新值,......
where 篩選條件;(2)
修改多表的記錄(補充)
SQL92語法:
update 表1 別名,表2 別名
set 列=值,......
where 連接條件
and 篩選條件;
SQL99語法:
update 表1 別名
inner join 表2 別名
on連接條件
set 列=值,......
where 篩選條件;
刪除語句
方式一:delete
單表刪除(*)
語法:
delete from 表名 where 篩選條件;
多表刪除(補充)
SQL92語法:
delete 表1的別名,表2的別名
from 表1 別名,表2 別名
where 連接條件
and 篩選條件;
SQL99語法:
delete 表1的別名 ,表2的別名
from 表1 別名
join 表2 別名 on 連接條件
where 篩選條件;
方式二:truncate
語法:
truncate table 表名;
delete和truncate對比:
- delete可以加where條件,truncate不能加
- truncate刪除,效率高一點
- 加入要刪除的表中有自增長列,如果用delete刪除後,再插入數據,自增長列的值從斷點開始,而truncate刪除後,再插入數據自增長列的值從1開始
- truncate刪除沒有返回值,delete刪除有返回值
- truncate刪除不能回滾,delete刪除可以回滾
DDL(數據定義語言)
概念
對庫和表的管理
庫的管理
- 創建
- 修改
- 刪除
表的管理
- 創建
- 修改
- 刪除
創建 create
修改 alter
刪除 drop
庫的創建
語法:
create database [if not exists]庫名;
表的創建(*)
語法:
create table 表名(
列名 列的類型 [(長度) 約束],
列名 列的類型 [(長度) 約束],
...
)
常見的數據類型
- 數值型:整型
int
、bigint
;小數:定點數DECIMAL
類型,NUMERIC
類型;浮點數float
,double
- 字元型:較短的文本
char
、varchar
;較長的文本text
、二進位blob
- 日期型:
date
、datetime
、timestamp
常見的約束條件
not null
:非空default
:預設primary key
:主鍵unique
:唯一check
:檢查約束(mysql中不支持)foreign key
:外鍵
主鍵和唯一的對比
- 保證唯一性
- 是否允許為空
- 一個表中可以有多少個
- 是否允許組合
TCL
概念
事務:一個或一組sql語句組成一個執行單元,這個執行單元要麼全部執行,要麼全部不執行。
事務特性:ACID
- 原子性:一個事務不可再分割,要麼都執行要麼都不執行
- 一致性:一個事務執行會使數據從一個一致狀態切換到另一外一個一致狀態
- 隔離性:一個事務的執行不受其他事務的干擾
- 持久性:一個事務一旦提交,則會永久的改變資料庫的數據
至此,我們的MySQL的基礎就學完了,附上一張思維導圖幫助各位複習理解,有喜歡的記得點個關註哦