會員登錄 - 用戶注冊 - 網(wǎng)站地圖 Office中國(office-cn.net),專業(yè)Office論壇
當(dāng)前位置:主頁 > 技巧 > 其它(Other) > 其它技巧 > 正文

SQL基礎(chǔ):常用SQL語句詳解 (轉(zhuǎn))

時間:2009-06-11 08:57 來源:本站原創(chuàng) 作者:yanglilibaobao () 閱讀:
到今天為止,人們對關(guān)系數(shù)據(jù)庫做了大量的研究,并開發(fā)出關(guān)系數(shù)據(jù)語言,為操作關(guān)系數(shù)據(jù)庫提供了方便的用戶接口。關(guān)系數(shù)據(jù)語言目前有幾十種,具有增加、刪除、修改、查詢、數(shù)據(jù)定義與控制等完整的數(shù)據(jù)庫操作功能。通常把它們分為兩類:關(guān)系代數(shù)類和關(guān)系演算類。

在這些語言中,結(jié)構(gòu)化查詢語言SQL以其強(qiáng)大的數(shù)據(jù)庫操作功能、口語化、易學(xué)易用等特點(diǎn),受到廣泛的應(yīng)用,成為數(shù)據(jù)庫應(yīng)用程序開發(fā)的一柄利劍。在數(shù)據(jù)庫應(yīng)用程序開發(fā)過程中,巧妙地使用SQL語句,可以簡化編程,起到事半功倍的效果,本書中有些實(shí)例也大量使用了SQL語句。它由兩部分組成,數(shù)據(jù)定義語言(DDL)和數(shù)據(jù)操作語言(DML)。
(1) 數(shù)據(jù)定義語言(DDL)
數(shù)據(jù)定義語言用來定義數(shù)據(jù)庫的各級模式。常用關(guān)鍵字有:Create(建立數(shù)據(jù)表)、Alter(更改數(shù)據(jù)表)、Drop(刪除數(shù)據(jù)表)。
建立數(shù)據(jù)表
  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)
  說明:為數(shù)據(jù)表格的某個字段建立索引以增加查詢時的速度。
  更改數(shù)據(jù)表 
  ALTER TABLE table_name ADD COLUMN column_name DATATYPE
  說明:增加一個字段。
  ALTER TABLE table_name ADD PRIMARY KEY (column_name)
  說明:將某個字段設(shè)為主鍵。
  ALTER TABLE table_name DROP PRIMARY KEY (column_name)
  說明:將某個字段的主鍵定義取消。
  刪除數(shù)據(jù)表
  DROP table_name
  DROP index_name
  (2) 數(shù)據(jù)操作語言(DML)
  數(shù)據(jù)操作語言(DML)用于操作數(shù)據(jù)表,如增加、刪除、查詢、修改等。常用關(guān)鍵字有:Insert(插入數(shù)據(jù))、Delete(刪除數(shù)據(jù))、Select(查詢數(shù)據(jù))和Updata(修改數(shù)據(jù))。
  插入數(shù)據(jù)
  INSERT INTO table_name(column1,column2,...) VALUES
(value1,value2, ...)
  說明:在插入語句中,若不指明要插入字段則,按表中的字段順序依次插入。另外,插入數(shù)據(jù)的類型應(yīng)和所插入字段的類型相匹配。
  INSERT INTO table_name (column1,column2,...) SELECT
columnx,columny,...
  FROM another_table
  說明:通過一個子查詢將別的表格相應(yīng)字段的值插入該表格。
  刪除數(shù)據(jù)
  DELETE FROM table_name WHERE conditions
  說明:刪除符合條件的記錄。
  查詢數(shù)據(jù)
  SELECT column1,columns2,... FROM table_name
  說明:把table_name 的相應(yīng)字段查詢出來。
  SELECT * FROM table_name WHERE column1 = x AND column2 > y
  說明:這是一個帶有條件的查詢語句,‘*‘表示查詢所有的字段,WHERE 之后是條件表達(dá)式。
  SELECT column1,column2 FROM table_name ORDER BY column2
[DESC]
  說明:ORDER BY 是指定以某個字段排序,[DESC]是指從大到小排列,若沒有指明,則是從小到大排列。
  SELECT * FROM table1,table2 WHERE
table1.colum1=table2.column1
  說明:這是一個組合查詢,查詢兩個表格中 column1
字段具有相同值的記錄。作為兩個表中建立關(guān)系的字段,其類型必須匹配。
  SELECT COUNT (*) FROM table_name WHERE column_name = x
  說明:查詢符合條件的記錄數(shù)。
  SELECT SUM(column1) FROM table_name
  說明:計(jì)算column1字段的數(shù)據(jù)總和。除了SUM之外,還可以用AVG()計(jì)算平均值
、用MAX()計(jì)算最大值、用MIN()計(jì)算最小值。
  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。若不加條件,則默認(rèn)該字段全部更改。
  以上是最基本的SQL語法知識,若想更深層次的了解,請參閱數(shù)據(jù)庫方面的書籍

(責(zé)任編輯:admin)

頂一下
(0)
0%
踩一下
(0)
0%
推薦內(nèi)容
發(fā)表評論
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
評價: