表的建立 插入資料 修改資料
刪除資料 表結構的修改 表的刪除
查詢語句
表的建立
關係資料庫的主要特點之一就是用表的方式組織資料。表是SQL語言存放資料、尋找資料以及更新資料的基本資料結構。在SQL語言中,表有嚴格的定義,它是一種二維表,對於這種表有如下規定:
1)每一張表都有一個名字,通常稱為表名或關係名。表名必須以字母開頭,最大長度為30個字元。
2)一張表可以由若干列組成,列名唯一,列名也稱作屬性名稱。
3)表中的一行稱為一個元組,它相當於一條記錄。
4)同一列的資料必須具有相同的資料類型。
5)表中的每一個列值必須是不可分割的基本資料項目。
注意:當使用者需要新的資料結構或表存放資料時,首先要產生一個表。
文法:
CREATE TABLE 表名 [資料表條件約束]
(列名1 資料類型 [預設值1,列約束1]
(列名2 資料類型 [預設值2,列約束2]
…
列名n 資料類型 [預設值n,列約束n]
[TABLESPACE 資料表空間名稱]
[STORAGE (存貯的子句)]
[ENABLE 約束名]
[DISABLE 約束名]
插入資料
當一個表建立成時,它裡面沒有資料,通過向表中扡入資料,建成表的執行個體。
語句句法:
INSERT INTO 表名[(列名1,…)]
VALUES(值1,值2,…,值n)
[子查詢];
假設有一張表Student如下所示:
NO NAME AGE
1001 A 12
1002 B 14
將新學生E增加到上表中,並按照表的結構將資訊添加完整,需要如下語句:
INSERT INTO STUDENT VALUSE(1003, 'E',12);
修改資料
對錶中已有資料進行修改,語句句法:
UPDATE 表名SET 列名1=運算式1,列名2=運算式2,…
WHERE 條件;
例如:對下表Student
NO NAME AGE
1001 A 12
1002 B 14
將B的年紀改為18;應該執行以下語句:
UPDATE STUDENT SET AGE=18 WHERE NAME='B';
刪除資料
刪除表中已有資料,不能刪除不存在的資料。
語句句法:
DELETE FROM 表名 WHERE 條件;
例如:
對下面Student表進行刪除,要刪除其中年紀為12的學生;
NO NAME AGE
1001 A 12
1002 B 14
DELETE FROM STUDENT WHERE AGE=12;
表結構的修改
在已存在的表中增加新列,語句句法:
ALTER TABLE 表名 ADD(新列名 資料類型(長度));
例如:
ALTER TABLE STUDENT ADD (DEPARTMENT CHAR(8));
b.增加已有列的資料類型。
例如:
ALTER TABLE STUDENT MODIFY(NAME VARCHAR2(25));
表的刪除
將已經存在的表刪除,語句句法:
DROP TABLE表名;
例如:
DROP TABLE EMP;
查詢語句
SELECT命令的文法為:
SELECT [DISTINCT|ALL] {*|模式名.] {表名|視圖名|
快照名] .*…| {運算式[列別名]…} } [, [模式名. ] {表名|
視圖名|} .*…| 運算式[列別名] ]…
FROM [模式名.] {表名|視圖名|快照名} [@資料庫鏈名] [表別名]
[, [模式名.] {表名|視圖名|快照名} [@資料庫鏈名]
[表別名] ]…
[WHERE條件]
[START WITH條件 CONNECT BY 條件]
[GROUP BY運算式[,運算式] …[HAVING條件]
[UNION|UNION ALL |INTERSECT|MINUS]SELECT命令
[ORDER BY{運算式|位置} [ASC|DESC] [, {運算式|位置[ASC|DESC]}]…]
例如:對於STUDENT表:
NO NAME AGE
1001 AE 12
1002 BT 14
(1) 查詢年紀為12的學生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE=12;
(2) 查詢年紀在12至16歲之間的學生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE BETWEEN 12 AND 16;
(3) 查詢年紀不在12至16歲之間的學生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE NOT BETWEEN 12 AND 16;
(4) 查詢所有姓名以A開頭的學生的姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE NAME LIKE 'A%';
(5) 列出所有學生年紀的和,年紀的平均值,最大值,最小值,最大值與最小值之間的差值;
SELECT AVG(AGE), SUM(AGE), MAX(AGE), MIN(AGE), MAX(AGE)-MIN(AGE);
(6) 將所有學生按學號順序降序排列;
SELECT * FROM STUDENT ORDER BY NO DESC;
(7) 將所有學生按學號順序升序排列;
SELECT * FROM STUDENT ORDER BY NO ASC;