尚矽谷李玉婷老師MySQL課程 DDL語言

2021-10-08 23:03:55 字數 4299 閱讀 7606

ddl(data definition language):資料定義語言

庫和表的管理(建立、修改、刪除)

建立:create

修改:alter

刪除:drop

語法

create database 庫名;

//加判斷,增加容錯性

create database if not exists 庫名;

更改庫的字符集

語法

alter database 庫名;

character set 字符集名

語法

drop database 庫名;

//加判斷,增加容錯性

drop database if exists 庫名;

語法

create table 【if not exists】 表名(

欄位名 字段型別【(長度) 約束】,

欄位名 字段型別【(長度) 約束】,

...欄位名 字段型別【(長度) 約束】

);例:建立表book

create table book(

id int, #編號

bname varchar(20) , #書名

price double, #**

authorid int, #作者編號

publisheddate datetime #出版日期

);

alter table 表名 add|drop|modify|change collum 列名 【型別,約束】
alter table 表名

change 【collum】 原欄位名 新欄位名 型別;

例:alter table book change collum publisheddate pubdate datetime;

alter table 表名 modify collum 欄位名 新型別/約束;
alter table 表名 add collum 欄位名 型別;
alter table 表名 drop collum 欄位名;
alter table 表名 rename to 新錶名;
drop table 表名;

//加判斷,增加容錯性

drop table if exists 表名;

create table 複製表名 like 原表名;
create table 複製表名

select 欄位名

from 原表名 【篩選】;

create table 複製表名

select 欄位名

from 原表

where 0;

含義

一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性

分類:六大約束

not null 非空:保證該字段的值不能為空

default 預設:用於保證該字段有預設值

primary key 主鍵:用於保證該欄位具有唯一性並且非空

unique 唯一:用於保證該欄位具有唯一性可以為空

check 檢查(mysql不支援)

foreign key 外來鍵:用於限制兩個表的關係,用於保證該字段的值必須來自於主表的關聯列的值。在從表新增,用於引用主中某列的值。

新增約束的時機:在新增資料之前

約束的新增分類

列級約束:六大約束都可以,但外來鍵無效

表級約束:除非空、預設

主鍵和唯一對比

保證唯一性

是否允許為空

表中可以有多少個

主鍵 primary key是否

至多乙個

唯一 unique是是

可以有多個

外來鍵

在從表設定外來鍵關係

從表的外來鍵列的型別和主表的關聯列的型別要求一致或相容

主表的關聯列必須是乙個key(一般為主鍵或唯一)

插入資料時,先插入主表,再插入從表;

刪除資料時,先刪除從表,在刪除主表。

語法直接在各個欄位名和型別後面追加約束型別即可

只支援:預設、非空、主鍵、唯一

欄位名 字段型別 約束型別
例:

create table stuinfo(

id int primary key,

stuname varchar(20) not null,

gender char(1) check (gender='男' or gender='女'),

seat int unique,

age int default 18,

majorid int references major(id)

);create table major(

id int primary key,

majorname varchar(20)

);

語法在各個欄位的最下面新增

【constraint 約束名】約束型別(欄位名)
例:

create table stuinfo(

id int,

stuname varchar(20),

gender char(1),

seat int,

age int,

majorid int,

constraint pk primary key(id),

constraint uq unique(seat),

constraint ck check(gender='男' or gender='女'),

constraint fk_stu_info foreign key(majorid) references major(id)

);

//列級約束

alter table 表名 modify column 欄位名 型別 約束(非空、預設、主鍵、唯一)

//表級約束

alter table 表名 add 約束(欄位名) (主鍵、唯一)

//新增外來鍵

alter table 表名 add foreign key(欄位名) references 從表名(字段)

刪除非空約束

alter table 表名 modify column 欄位名 型別 null

刪除預設約束

alter table 表名 modify column 欄位名 型別

刪除主鍵

alter table 表名 drop primary key

刪除唯一

alter table 表名 drop index 欄位名

刪除外來鍵

alter table 表名 drop primary key 欄位名

又稱為自增長列

含義

可以不用手動的插入值,系統提供預設的序列值

特點

需要與key(主鍵/唯一)搭配

只能最多有乙個標識列

標識列從型別只能是數值型

語法

欄位名 型別 約束 auto_increment;
alter table 表名 modify column 欄位名 型別 約束 auto_increment;
alter table 表名 modify column 欄位名 型別;

尚矽谷李玉婷老師MySQL課程 TCL語言

tcl transaction control language 事務控制語言 乙個或一組sql語句組成乙個執行單元,這個執行單元全部執行,要麼全部不執行。事務的acid屬性 原子性 要麼都執行,要麼都回滾 一致性 保證資料的狀態操作前和操作後保持一致 隔離性 多個事務同時操作相同資料庫的同乙個資料...

尚矽谷之MySQL基礎

持久化 persistence 把資料儲存到可掉電式儲存裝置中以供之後使用。持久化的大多數時候是將記憶體中的資料儲存在資料庫中,當然也可以儲存在磁碟檔案 xml資料檔案中。方便管理資料 例如 快速的檢索等 db 資料庫 database 即儲存資料的 倉庫 它儲存了一系列有組織的資料。dbms 資料...

MySQL 尚矽谷 筆記2

案例1 查詢工資 12000的員工資訊 select from employees where salary 12000 案例2 查詢部門編號不等於90號的員工名和部門編號 select last name,department id from employees where department ...