學習數據庫表的處理綜合

SQL語言基本語句介紹

關係數據庫的主要特點之一就是用表的方式組織數據。表是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;

 

發佈了52 篇原創文章 · 獲贊 16 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章