手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

SQL基本要領

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

[or column3 <> zzz]
------------------------------------------------------------------
整合性的查詢:
SELCET count (*) FROM table_name WHERE column_name = xxx
//查詢符合條件的資料共有幾筆。
SELCET SUM(column1) FROM table_name
說明:
1.計算出總和,所選的欄位必須是可數的數字形態。
2.除此以外還有 avg() 是計算平均、max()、min()計算最大最小值的
整合性查詢。
------------------------------------------------------------------
組合查詢
組合查詢是指所查詢得資料來源並不隻有單一的表格,而是聯合一個以上
的表格纔能夠得到結果的。
SELCET * FROM table1,table2 WHERE table1.colum1=table2.column1
說明:
1.查詢兩個表格中其中 column1 值相同的資料。
2.當然兩個表格相互比較的欄位,其資料形態必須相同。
3.一個復雜的查詢其動用到的表格可能會很多個。
------------------------------------------------------------------
復合性的查詢
SELCET * FROM table_name1 WHERE exists ( SELCET * FROM
table_name2 WHERE conditions )
說明:1.where 的 conditions 可以是另外一個的 query。
2.exists 在此是指存在與否。
SELCET * FROM table_name1 WHERE column1 IN ( SELCET column1
FROM table_name2 WHERE conditions )
說明:1. in 後面接的是一個集合,表示column1 存在集合裡面。
2. select 出來的資料形態必須符合 column1。
------------------------------------------------------------------
其他查詢
SELCET * FROM table_name1 WHERE column1 LIKE 'x%'
//說明:like 必須和後面的'x%' 相呼應表示以 x為開頭的字串。
SELCET * FROM table_name1 WHERE column1 IN ('xxx','yyy',..)
//說明:in 後面接的是一個集合,表示column1 存在集合裡面。
SELCET * FROM table_name1 WHERE column1 BETWEEN xx AND yy
//說明:between 表示 column1 的值介於 xx 和 yy 之間。
SELCET * FROM 程式基本資料 WHERE 陽上姓名 LIKE "% 楊 %";
//過濾不特定"徐"的資料
SELCET * FROM Table WHERE Name LIKE "*徐*"
//過濾特定"徐"之中的資料
SELCET full_name,hire_dat,phone_exit FROM table_name
WHERE lase_name LIKE 'Le#%' ESCAPE '#';
//ESCAPE 比對符號要檢查lase_name是否內含'Le#% 的字串
SELCET full_name,hire_dat,phone_exit FROM table_name
WHERE lase_name LIKE 'L%';
//lase_name LIKE 'L%' 代表第一個字母須以L字母為開頭其餘可任意字串

//lase_name NOT LIKE 'L%' 代表第一個字母不得為L字母
//lase_name LIKE 'L%' 代表第一個字母須以L字母為開頭其餘可任意字串
//lase_name LIKE 'L__' 姓氏須三個字元第一個字元為 L
(底線字元'_'類似DOS下的'?'字元)
//lase_name LIKE '%'代表任何內含'ee'字串
//lase_name LIKE '%e'最後一個字元須為'e'
------------------------------------------------------------------
資料篩選
資7料單一搜尋
SELCET full_name, hire_date,phone_exit FROM table_name
WHERE dept_no=600 //顯示部門代號等於600的所有員工....
SELCET full_name,hire_dat,phone_exit FROM table_name
WHERE phone_exit IS NULL
//列出所有沒有分機號碼的員工姓名(雇員)
SELCET full_name,hire_dat,phone_exit FROM table_name
WHERE phone_exit IS NOT NULL
//列出所有有分機號碼的員工姓名<非NULL值>
------------------------------------------------------------------
資料多重搜尋
SELCET full_name,phone_exit FROM table_name
WHERE phone_exit IS NULL AND hire_date > '20-jan-1992';
//未有分機且進入公司(雇員)日期之後員工
<多資料表連結>
SELCET full_name, job_country, currency FROM table_name,
table_name1 WHERE job_country = table_name1
SELCET full_name, job_country, currency FROM table_name,
LEFT JOIN country ON job_country = table_name1
------------------------------------------------------------------
搜尋資料範圍
SELCET full_name,salary FROM table_name
WHERE salary BETWEEN 100000 AND 200000;
//列出薪資在100000至200000的員工
SELCET full_name,salary FROM table_name
WHERE salary >= 100000 AND salary <= 200000;
//比較運算的查詢語言
SELCET full_name,job_country FROM table_name//集合成員運算(IN子句)
WHERE job_country IN('Italy France')//義大利及法國員工
------------------------------------------------------------------
資料排序結果
單一排序資料
SELCET full_name,salary,dept_no FROM table_name ORDER BY dept_no
//依各部門代號順序列出員工姓名及薪資
SELCET column1,column2 FROM table_name order by column2 [desc]
//說明:order by 是指定以某個欄位做排序,[desc]是指從大到小排列,
若沒有指明,則是從小到大排列
SELCET * FROM Table Order By Age Desc;
//以年齡欄反排序
多欄排序資料
SELCET full_name,salary,dept_no FROM table_name ORDER BY
dept_no, salary DESC;
//部門代號由小而大,薪資由大而小輸出所有員工姓名
------------------------------------------------------------------
SQL合計函數(aggregate function)
AVG :平均值
COUNT:筆數
MIN :最小值
MAX :最大值
SUM :加總值
SELECT dept_no COUNT(salary)FROM table_name //錯誤的
SELECT dept_no MAX(salary)FROM table_name //錯誤的
SELECT dept_no MAX(salary)FROM table_name GROUP BY dept_no//正確的
< COUNT 的應用 >
SELECT COUNT(*)FROM table_name WHERE dept_no = 100

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!