誰可以給我全部的SQL查詢語句
一、 簡單查詢 簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子句。
它們分別說明所查詢列、查詢的 表或視圖、以及搜索條件等。例如,下面的語句查詢testtable表中姓名為“張三”的nickname字段和email字段。
SELECT nickname,email FROM testtable WHERE name='張三' (一) 選擇列表 選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部變量和全局變量)等構成。 1、選擇所有列 例如,下面語句顯示testtable表中所有列的數據: SELECT * FROM testtable 2、選擇部分列并指定它們的顯示次序查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。
例如: SELECT nickname,email FROM testtable 3、更改列標題 在選擇列表中,可重新指定列標題。定義格式為: 列標題=列名 列名 列標題如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列標題: SELECT 昵稱=nickname,電子郵件=email FROM testtable (二) FROM子句 FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。
在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列 所屬的表或視圖。
例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定: SELECT username,* FROM usertable,citytable WHERE *=* 在FROM子句中可用以下兩種格式為表或視圖指定別名: 表名 as 別名 表名 別名 例如上面語句可用表的別名格式表示為: SELECT username,* FROM usertable a,citytable b WHERE *=* SELECT不僅能從表或視圖中檢索數據,它還能夠從其它查詢語句所返回的結果集合中查詢數據。 例如: SELECT *_fname+*_lname FROM authors a,titleauthor ta (SELECT title_id,title FROM titles WHERE ytd_sales>10000 ) AS t WHERE *_id=*_id AND *_id=*_id 此例中,將SELECT返回的結果集合給予一別名t,然后再從中檢索數據。
(三) 使用WHERE子句設置查詢條件 WHERE子句設置查詢條件,過濾掉不需要的數據行。例如下面語句查詢年齡大于20的數據: SELECT * FROM usertable WHERE age>20 WHERE子句可包括各種條件運算符: 比較運算符(大小比較):>、>=、=、<、<=、<>、!>、!< 范圍運算符(表達式值是否在指定的范圍):BETWEEN…AND… NOT BETWEEN…AND… 列表運算符(判斷表達式是否為列表中的指定項):IN (項1,項2……) NOT IN (項1,項2……) 模式匹配符(判斷值是否與指定的字符通配格式相符):LIKE、NOT LIKE 空值判斷符(判斷表達式是否為空):IS NULL、NOT IS NULL 邏輯運算符(用于多條件的邏輯連接):NOT、AND、OR 1、范圍運算符例:age BETWEEN 10 AND 30相當于age>=10 AND age<=30 2、列表運算符例:country IN ('Germany','China') 3、模式匹配符例:常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配。
可用于char、 varchar、text、ntext、datetime和smalldatetime等類型查詢。 可使用以下通配字符: 百分號%:可匹配任意類型和長度的字符,如果是中文,請使用兩個百分號即%%。
下劃線_:匹配單個任意字符,它常用來限制表達式的字符長度。 方括號[]:指定一個字符、字符串或范圍,要求所匹配對象為它們中的任一個。
[^]:其取值也[] 相同,但它要求所匹配對象為指定字符以外的任一個字符。 例如: 限制以Publishing結尾,使用LIKE '%Publishing' 限制以A開頭:LIKE '[A]%' 限制以A開頭外:LIKE '[^A]%' 4、空值判斷符例WHERE age IS NULL 5、邏輯運算符:優先級為NOT、AND、OR (四)查詢結果排序 使用ORDER BY子句對查詢返回的結果按一列或多列排序。
ORDER BY子句的語法格式為: ORDER BY {column_name [ASC|DESC]} [,…n] 其中ASC表示升序,為默認值,DESC為降序。ORDER BY不能按ntext、text和image數據類型進行排 序。
例如: SELECT * FROM usertable ORDER BY age desc,userid ASC 另外,可以根據表達式進行排序。 二、 聯合查詢 UNION運算符可以將兩個或兩個以上上SELECT語句的查詢結果集合合并成一個結果集合顯示,即執行聯 合查詢。
UNION的語法格式為: select_statement UNION [ALL] selectstatement [UNION [ALL] selectstatement][…n] 其中selectstatement為待聯合的SELECT查詢語句。 ALL選項表示將所有行合并到結果集合中。
不指定該項時,被聯合查詢結果集合中的重復行將只保留一行。聯合查詢時,查詢結果的列標題為第一個查詢語句的列標題。
因此,要定義列標題必須在第一個查詢語句中定義。要對聯合查詢結果排序時,也必須使用第一查詢語句中的列名、列標題或者列序號。
在使用UNION 運算符時,應保證每個聯合查詢語句的選擇列表中有相同數量的表達式,并且每個查詢選擇表達式應具有相同。
SQL查詢語句中選擇列表怎么做
選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部變量和全局變量)等構成。
1、選擇所有列 例如,下面語句顯示testtable表中所有列的數據: SELECT * FROM testtable 2、選擇部分列并指定它們的顯示次序 查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。 例如: SELECT nickname,email FROM testtable 3、更改列標題 在選擇列表中,可重新指定列標題。
定義格式為: 列標題=列名 列名 列標題 如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列標題: SELECT 昵稱=nickname,電子郵件=email FROM testtable 4、刪除重復行 SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數據行,默認為ALL。 使用DISTINCT選項時,對于所有重復的數據行在SELECT返回的結果集合中只保留一行。
5、限制返回的行數 使用TOP n [PERCENT]選項限制返回的數據行數,TOP n說明返回n行,而TOP n PERCENT時,說明n是表示一百分數,指定返回的行數等于總行數的百分之幾。 例如: SELECT TOP 2 * FROM testtable SELECT TOP 20 PERCENT * FROM testtable。
SQL查詢語句,高手進
--1、查詢“001”課程比“002”課程成績高的所有學生的學號;select * from (select sid,score from SC where Cid='1') Student,(select Sid,score from SC where Cid='2') Course--2、查詢平均成績大于60分的同學的學號和平均成績; select Sid,avg(score) from SC group by Sid having avg(score)>60--3、查詢所有同學的學號、姓名、選課數、總成績;select Sid,Sname,Cid,score from Student inner join SC on(*=*) inner join Course on (*=*)--4、查詢姓“李”的老師的個數;select count(*) from Teacher where Tname like '李%'--5、查詢沒學過“葉平”老師課的同學的學號、姓名;--select Sid,Sname from Student inner join SC on (*=*) inner join Course on(*=*) inner join Teacher on (*=*) where * is null--6、查詢學過“”并且也學過編號“”課程的同學的學號、姓名;select SID,Sname--7、查詢學過“葉平”老師所教的所有課的同學的學號、姓名;select Sid,Sname from Student where Sid in (select Sid from SC ,Course ,Teacher where *=* AND *=* AND *='葉平' group by Sid having count(*)=(select count(Cid) from Course,Teacher where *=* AND Tname='葉平'))--8、查詢課程編號“”的成績比課程編號“”課程低的所有同學的學號、姓名;--9、查詢所有課程成績小于60分的同學的學號、姓名;Select *,* from Student,SC where *=* and *<60--10、查詢沒有學全所有課的同學的學號、姓名; select *,* from Student,SC where *=* group by *,* having count(Cid) <(select count(Cid) from Course) 交個朋友吧!好在大家都是學程序的。
sql簡單查詢語句
。
。為點分真不容易1 select * from StuInfo2 select 考號,姓名,語文,數學,英語 from StuMarks3 select s1.考號,s1.姓名,s1.性別,s2.計算機基礎,*數據庫 from StuInfo s1 left join StuMarks s2 on s1.學號=s2.學號 where 專業名!='計算機'4 select 姓名,學號 from StuMarks where 語文>60 and 數學>60 and 英語>60 and 計算機基礎>60 and SQL數據庫>605 select max(語文),min(數學),avg(英語) from StuMarks6 select 姓名,語文,數學,英語 from StuMarks where (語文+數學+英語+計算機基礎+SQL數據庫)>4007 select 姓名,SQL數據庫 from StuMarks order by SQL數據庫 desc。
SQL查詢語句有哪些
查詢語句只有一種SELECT 。
FROM WHERE 。 (GROUP BY 。
ORDER BY 。)只是根據想要的結果不一樣,而查詢的內容會稍有修改。
比如FROM的表名,可以不是一張表,而是一個SELECT查詢的結果作為一張表。同樣,查詢統計分組匯總,可以增加SUM(), MIN(), MAX()等函數配合group by使用進行分組統計。
WHERE 條件除了簡單的連接之外,也有IN, NOT IN, EXISTS, NOT EXISTS等。還有,兩個SELECT集合可以使用UNION, UNION ALL, MINUS等進行集合的加或者減的操作。
總之如果是查詢,就離不開SELECT 。 FROM 。
WHERE。 這樣的基本形式。