天天看點

常用SQL語句詳解

常用SQL語句詳解

     到今天為止,人們對關系資料庫做了大量的研究,并開發出關系資料語言,為操作關系資料庫提供了友善的使用者接口。關系資料語言目前有幾十種,具有增加、删除、修改、查詢、資料定義與控制等完整的資料庫操作功能。通常把它們分為兩類:關系代數類和關系演算類。

     在這些語言中,結構化查詢語言SQL以其強大的資料庫操作功能、口語化、易學易用等特點,受到廣泛的應用,成為資料庫應用程式開發的一柄利劍。在資料庫應用程式開發過程中,巧妙地使用SQL語句,可以簡化程式設計,起到事半功倍的效果,本書中有些執行個體也大量使用了SQL語句。它由兩部分組成,資料定義語言(DDL)和資料操作語言(DML)。

     (1) 資料定義語言(DDL)

    資料定義語言用來定義資料庫的各級模式。常用關鍵字有:Create(建立資料表)、Alter(更改資料表)、Drop(删除資料表)。

               建立資料表

                    CREATE TABLE table_name(

                    column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],

                    column2 DATATYPE [NOT NULL],

                    ...

                    )

                    說明:上面的DATATYPE 指的是字段的類型,NUT NULL 指是否為空,PRIMARY KEY 指本表的主鍵。

                    建立索引 

                    CREATE INDEX index_name ON table_name (column_name)

                    說明:為資料表格的某個字段建立索引以增加查詢時的速度。

                    更改資料表 

                    ALTER TABLE table_name ADD COLUMN column_name DATATYPE

                    說明:增加一個字段。

                    ALTER TABLE table_name ADD PRIMARY KEY (column_name)

                    說明:将某個字段設為主鍵。

                    ALTER TABLE table_name DROP PRIMARY KEY (column_name)

                    說明:将某個字段的主鍵定義取消。

                    删除資料表

                    DROP table_name

                    DROP index_name

                    (2) 資料操作語言(DML)

                    資料操作語言(DML)用于操作資料表,如增加、删除、查詢、修改等。常用關鍵字有:Insert(插入資料)、Delete(删除資料)、Select(查詢資料)和Updata(修改資料)。

                    插入資料

                    INSERT INTO table_name(column1,column2,...) VALUES

                  (value1,value2, ...)

                    說明:在插入語句中,若不指明要插入字段則,按表中的字段順序依次插入。另外,插入資料的類型應和所插入字段的類型相比對。

                    INSERT INTO table_name (column1,column2,...) SELECT

                  columnx,columny,...

                    FROM another_table

                    說明:通過一個子查詢将别的表格相應字段的值插入該表格。

                    删除資料

                    DELETE FROM table_name WHERE conditions

                    說明:删除符合條件的記錄。

                    查詢資料

                    SELECT column1,columns2,... FROM table_name

                    說明:把table_name 的相應字段查詢出來。

                    SELECT * FROM table_name WHERE column1 = x AND column2 > y

                    說明:這是一個帶有條件的查詢語句,‘*‘表示查詢所有的字段,WHERE 之後是條件表達式。

                    SELECT column1,column2 FROM table_name ORDER BY column2

                  [DESC]

                    說明:ORDER BY 是指定以某個字段排序,[DESC]是指從大到小排列,若沒有指明,則是從小到大排列。

                    SELECT * FROM table1,table2 WHERE

                  table1.colum1=table2.column1

                    說明:這是一個組合查詢,查詢兩個表格中 column1

字段具有相同值的記錄。作為兩個表中建立關系的字段,其類型必須比對。

                    SELECT COUNT (*) FROM table_name WHERE column_name = x

                    說明:查詢符合條件的記錄數。

                    SELECT SUM(column1) FROM table_name

                    說明:計算column1字段的資料總和。除了SUM之外,還可以用AVG()計算平均值

                  、用MAX()計算最大值、用MIN()計算最小值。

                    SELECT * FROM table_name1 WHERE EXISTS (SELECT * FROM

                  table_name2 WHERE

                    conditions)

                    說明:這條查詢語句用一個子查詢語句作為該查詢語句的條件。EXISTS指是否存在。

                    SELECT * FROM table_name1 WHERE column1 IN (SELECT column1

                  FROM

                    table_name2 WHERE conditions )

                    說明:IN後面接的是一個集合,表示将column1字段的值在集合中的所有記錄從table_name1表中選出來。

                    SELECT * FROM table_name1 WHERE column1 LIKE ‘x%‘

                    說明:該語句為模糊查詢。這裡的“%”是一個通配符,表示将column1字段中以x開頭的所有記錄選出來。

                    SELECT * FROM table_name1 WHERE column1 BETWEEN x AND y

                    說明:BETWEEN 表示 column1 的值介于 x 和 y之間。

                    更改資料

                    UPDATE table_name SET column1=‘x‘ WHERE conditions

                    說明:該語句表示在某種條件下将column1字段的值改為x。若不加條件,則預設該字段全部更改。

                    以上是最基本的SQL文法知識,若想更深層次的了解,請參閱資料庫方面的書籍。