(3)操作表語言DDL

2021-10-24 22:15:38 字數 2240 閱讀 7985

create database if ont exists a;

drop database if exists a;

create table a(

名字 型別 約束

);create table if not exists stu(

name varchar(20),

id int;

age int

);int 整型 int(10)表示顯示寬度為10位 還有tinyint smallint bigint

double/float 浮點型 double(5,2)表示最多5位,最少兩位小數最大值為999.99

decimal 浮點型用來表示錢,不會損失精度

char(4) 固定長度字串 字元個數為10 即使不夠也會補齊 效率更高

varchar(10) 可變長度字串 最大為10,不夠則就不夠

text 字串 用來儲存較長的文字

date yyyy-mm-dd

time hh:mm:ss

datetime yyyy-mm-dd hh:mm:ss 9個位元組,從2023年開始

timestamp 一樣,但4個位元組,從2023年開始儲存

blob二進位制型別用於儲存資料

1.not null 限制其為必填項

2.default若沒有插入值,則顯示預設值

3.primary key主鍵 為了限制唯一,乙個表只有乙個主鍵(即使有多個也是合起來算乙個,三個欄位都重複才算重複)預設不能為空 可以跟在型別後面,也可以單獨指定誰為主鍵 它可以加入屬性自增長 auto_increment primary key auto_increament 如果在新增資料的時候資料寫null,那它也會自己增加。需要設定在主鍵或者唯一鍵上

4.unique唯一鍵 用於限制字段值唯一,與主鍵不同的是唯一鍵欄位可以有多個,可以為空(可以有兩個null,不認為這是重複)

5.check 用於限制字段值必須滿足的條件(mysql不支援)

6.foreign key外來鍵(用於限制表之間的關係,使得引用的外鍵值在引用的表中必須存在才能賦值)就是另一張表的主鍵 比如員工表中的部門id,部門id就是部門表的主鍵,此時部門表為主表,員工表為從表,要求型別一致,但名稱無要求,不是跟在型別後面,而是型別後面加逗號,約束在下一行

constraint fk_e_c foreign key (majorid )references major(id) 就是約束fk_e_c(這個不起名會預設乙個名字)是從表中的字段majorid引用了major表中的id

1,2,3,4,5都為列級約束,也就是直接加到資料型別後面 名字 型別 約束,

3,4,6為表級約束 表級約束要放在下一行 名字 型別,

約束比如外來鍵為 constraint fk foreign key(id1) references a(id2)

主鍵為primary key(id),

唯一約束為constraint uq unique(name),

表之間的關係

在設計外來鍵的時候要考慮表和表之間的關係,

如果是一對一 則有乙個是主表有乙個是從表 主表中可以沒有從表資訊 但從表要有主表資訊,所以要為從表設定外來鍵

如果是一對多 從不同的角度看主表和從表的關係是不明確的,可以多方創造外來鍵

如果是多對多 乙個學生可以有多個老師,乙個老師可以有多個學生,可以建立第三張表,這張表中既有學生表外來鍵也有老師表外來鍵

alter table add/modify/change/drop column 字段 字段型別 約束

1.修改表名

alter table a rename to b;

2.新增字段

alter table a add column age timestamp not null

3.修改欄位名

alter table a change column age birthtime datetime;

4.修改字段型別

alter table a modify column birthday timestamp

5.刪除字段

alter table a drop column birthday;

drop table if exists a;

create table b like a;//複製表結構

create table b select * from a//複製表結構加資料

create table bselect name,age from a where 1=2;//僅複製表的這倆結構但不複製資料

Oracle基礎 建表語句(DDL)

1.建立表 語法 create table table name filed name datatype not null,filed name datatype not null,filed name datatype,filed name datatype not null,constraint...

Oracle基礎 建表語句(DDL)

1.建立表 語法 create table table name filed name datatype not null,filed name datatype not null,filed name datatype,filed name datatype not null,constraint...

DDL觸發器捕獲建表語句

sql2005 ddl觸發器捕獲激發觸發器的 transact sql 語句 create trigger safety on database for create table as select eventdata value event instance tsqlcommand command...