1、建表
CREATE TABLE Student(
Cno CHAR(4) PRIMARY KEY,
Cname char(40) not null,
Cpno CHAR(4),
FOREIGN KEY Cpno REFERENCES Course(Cno)
);
注意: 主鍵的一種寫法和外鍵的寫法,還有一些約束(not null, autoincreament, unique...)
CREATE TABLE SC(
Sno CHAR(9),
Cno CHAR(4),
Grade INTEGER,
PRIMARY KEY(Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
注意: 兩個主鍵的定義的方法和外鍵的定義方法。
2、修改表
ALTER TABLE <表名>
#用於增加新列和新的完整性約束條件
[ADD <新列名> <數據類型> [完整性約束]]
#刪除制動的完整性約束條件
[DROP <完整性約束名>]
#修改原有的列定義
[ALTER COLUMN <列名><數據類型>]
ALTER TABLE Student ADD S_entrance DATE;
ALTER TABLE Student ALTER COLUMN Sage INT;
ALTER TABLE Course ADD UNIQUE(Cname);
3、刪除表
DROP TABLE <表名> [RESTRICT | CASCADE];
注意: 1、RESTRICT 刪除表是有限制條件的
2、CASCADE刪除表沒有限制條件,刪除基本表的同時,相關的依賴對象(如:
視圖)也會被刪除。
4、數據查詢
SELECT [ALL | DISTINCT] <目標列表達式>[, <目標列表達式>]...
FROM <表名或視圖名> [, <表名或視圖名>]...
[ WHERE <條件表達式> ]
[ GROUP BY <列名1> [ HAVING <條件表達式> ]]
[ ORDER BY <列名2> [ASC | DESC]]
常用的查詢條件:查詢條件 |
謂詞 |
比較 |
=, >, <. >=, <=, !=, <>, !>, !<; NOT+上述比較運算符 |
確定範圍 |
BETWEEN AND, NOT BETWEEN AND |
確定集合 |
IN, NOT IN |
字符匹配 |
LIKE, NOT LIKE |
空值 |
IS NULL, IS NOT NULL |
多重條件(邏輯運算) |
AND, OR, NOT |
字符匹配:
1、‘%’(百分號)代表任意長度(可以是0)的字符串
2、 ‘_' (下劃線)代表任意單個字符
3、 如果用戶要查詢的字符串本身就含有通配符 % 或 _,那麼就要用ESCAPE '<換碼字符>'
SELECT * FROM Course WHERE Cname like 'DB\_%i_ _' ESCAPE '\'; #第一個_是普通字符,後面兩個是通配符
5、插入數據
INSERT
INTO <表名> [ (<屬性列1> [ ,<屬性列2 >...]) ]
VALUES( <常量1> [, <常量列2>...]);
注意: 可以插入子查詢的結果。
6、修改數據
UPDATE <表名>
SET <列名1> = <表達式1> [, <列名2> = <表達式2>]...
[WHERE <條件>];
注意: 可以帶子查詢的修改數據
7、刪除數據
DELETE
FROM <表名>
[WHERE <條件>];
注意: 如果沒有條件,那麼刪除操作將是刪除這個表中的數據,但是這個表的仍然在,只是沒有了數據。