一、定義模式 CREATE CREATE CREATE 💁♀️
CREATE SCHEMA “S-T” AUTHORIZATION WANG
CREATE SCHEMA TEST AUTHORIZATION WANG
CREATE TABLE TAB1 (COL1 SMALLINT,
COL2 INT,
COL3 CHAR(20),
COL4 NUMERIC(10,3),
COL5 DECIMAL(5,2),
);
或者
CREATE TABLE TEST.TAB2 (COL1 SMALLINT,
…
);
如果不指認是誰的模式則默認爲dbo的,如果省略第一行代碼,那麼新建的表屬於dbo模式(dbo.TAB1);加上後則是TEST.TAB1。
二、刪除模式 DROP DROP DROP👩🌾
DROP SCHEMA ZHANG CASCADE
刪除模式語句如下:
DROP SCHEMA <模式名><CASCADE|RESTRICT>;其中CASCADE(級聯)和RESTRICT(限制)兩者必選其一。
三、定義基本表
建表的同時通常還可以定義與該表有關的完整性約束條件。
CREATE TABLE Student
( Sno CHAR(9) PRIMARY KEY,
/*列級完整性約束條件,Sno是主碼 */
Sname CHAR(20) UNIQUE,
/ *Sname取唯一值 */
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
PRIMARY KEY意思是主碼;UNIQUE意思是取唯一值,此時不能取一樣的名字,否則就會違反列級的約束,輸入失敗。
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
/* 列級完整性約束條件,Cno是主碼*/
Cname CHAR(40) NOT NULL,
/* 列級完整性約束條件,Cname不能取空值 */
Cpno CHAR(4),
/ * Cpno的含義是先修課 */
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
/ *表級完整性約束條件,Cpno是外碼,被參照表是Course,被參照列是Cno */
);
說明參照表和被參照表可以是同一個表。
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
/ *主碼由兩個屬性構成,必須作爲表級完整性進行定義 */
FOREIGN KEY(Sno) REFERENCES Student(Sno),
/ *表級完整性約束條件,Sno是外碼,被參照表是Student */
FOREIGN KEY(Cno) REFERENCES Course(Cno)
/ *表級完整性約束條件,Cno是外碼,被參照表是Course */
);
四、修改基本表 ALTER ALTER ALTER 👩🔬
ALTER TABLE Student ADD S_entrance DATE;
不管基本表中原來是否已有數據,新增加的列一律爲空值。
ALTER TABLE Student ALTER COLUMN Sage INT;
不管原來是啥類型,新的只會把舊的覆蓋掉:
ALTER TABLE Course ADD UNIQUE(Cname);
五、刪除基本表
DROP TABLE Student CASCADE;
基本表定義被刪除,數據被刪除
表上建立的索引、視圖、觸發器等一般也將被刪除
先創建基於Student的視圖IS_Student:
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept=‘IS’;
然後如圖:
代碼絕對沒有複製粘貼嗷!