久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

SQL查詢語(yǔ)句學(xué)習(xí)筆記

時(shí)間:2019-05-13 18:19:43下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《SQL查詢語(yǔ)句學(xué)習(xí)筆記》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《SQL查詢語(yǔ)句學(xué)習(xí)筆記》。

第一篇:SQL查詢語(yǔ)句學(xué)習(xí)筆記

問(wèn)題描述:

為管理崗位業(yè)務(wù)培訓(xùn)信息,建立3個(gè)表:

S(SID,SNAME,SDEPT,SEX,AGE)SID,SNAME,SDEPT,SEX,AGE 分別代表學(xué)號(hào)、學(xué)員姓名、所屬部門(mén)、學(xué)員性別、學(xué)員年齡

C(CID,CNAME)CID,CNAME 分別代表課程編號(hào)、課程名稱

SC(SID,CID,GRADE)SID,CID,GRADE 分別代表學(xué)號(hào)、所選修的課程編號(hào)、學(xué)習(xí)成績(jī)

表結(jié)構(gòu)與數(shù)據(jù)見(jiàn)Data4SqlTest1.sql

要求實(shí)現(xiàn)如下5個(gè)處理:

1.使用標(biāo)準(zhǔn)SQL嵌套語(yǔ)句查詢選修課程名稱為“英語(yǔ)”的學(xué)員學(xué)號(hào)和姓名

2.使用標(biāo)準(zhǔn)SQL Join語(yǔ)句查詢選修課程名稱為“英語(yǔ)”的學(xué)員學(xué)號(hào)和姓名

3.使用標(biāo)準(zhǔn)SQL語(yǔ)句查詢不選修“數(shù)學(xué)”課程的學(xué)員姓名和所屬單位

4.使用標(biāo)準(zhǔn)SQL嵌套語(yǔ)句查詢選修全部課程的學(xué)員姓名和所屬單位

5.查詢選修了課程的學(xué)員人數(shù)

6.查詢選修課程超過(guò)3門(mén)的學(xué)員學(xué)號(hào)和所屬單位

1.使用標(biāo)準(zhǔn)SQL嵌套語(yǔ)句查詢選修課程名稱為“英語(yǔ)”的學(xué)員學(xué)號(hào)和姓名 Java代碼

1.SELECT SNAME,SDEPT FROM S

2.WHERE SID IN(3.SELECT SID FROM C,SC

4.WHERE C.CID=SC.CID

5.AND CNAME='英語(yǔ)')

2.使用標(biāo)準(zhǔn)SQL Join語(yǔ)句查詢選修課程名稱為“英語(yǔ)”的學(xué)員學(xué)號(hào)和姓名 Java代碼

1.SELECT SNAME,SDEPT FROM S

2.JOIN SC ON S.SID=SC.SID JOIN C ON C.CID=SC.CID

3.WHERE CNAME='英語(yǔ)'

3.使用標(biāo)準(zhǔn)SQL語(yǔ)句查詢不選修“數(shù)學(xué)”課程的學(xué)員姓名和所屬單位 Java代碼

1.select SNAME,SDEPT

2.from S

3.where SID not in(4.select SC.SID

5.from SC

6.right join(select S.SID,C.CID from S join C)as T on SC.SID=T.SID

and SC.CID=T.CID join C on T.CID=C.CID

7.where C.CNAME='數(shù)學(xué)' and SC.SID is not null

8.)

或者是:

Java代碼

1.SELECT SNAME,SDEPT FROM S

2.WHERE SID NOT IN(3.SELECT SID FROM SC

4.WHERE CID IN(SELECT CID FROM C WHERE CNAME='數(shù)學(xué)'))

4.使用標(biāo)準(zhǔn)SQL嵌套語(yǔ)句查詢選修全部課程的學(xué)員姓名和所屬單位 Java代碼

1.select SNAME,SDEPT

2.from S

3.where SID in

4.(select S.SID

5.from S

6.inner join SC on S.SID=SC.SID

7.group by S.SID

8.having count(CID)=(select count(1)from C)

9.)

5.查詢選修了課程的學(xué)員人數(shù)

Java代碼

1.SELECT 學(xué)員人數(shù)=COUNT(DISTINCT(SID))FROM SC

6.查詢選修課程超過(guò)3門(mén)的學(xué)員學(xué)號(hào)和所屬單位

Java代碼

1.SELECT SNAME,SDEPT FROM S

2.WHERE SID IN(3.SELECT SID FROM SC

4.GROUP BY SID

5.HAVING COUNT(DISTINCT(CID))>3)

第二篇:SQL查詢語(yǔ)句

SQL查詢語(yǔ)句

第一次:查詢(顯示)、條件、排序、空記錄

第二次:通配符、生成表、文件(記事本)、數(shù)組、臨時(shí)表,數(shù)學(xué)函數(shù)、分組、嵌套查詢

第三次:插入記錄、刪除記錄、更新記錄 第四次:超連接、新建(打開(kāi))數(shù)據(jù)庫(kù)、表的建立、表的刪除、第五次 表結(jié)構(gòu)的修改,添加記錄 顯示同張芳同一天出生的學(xué)生的信息 格式:

1、查詢(顯示)記錄

顯示所有男學(xué)生的學(xué)號(hào),姓名,性別 區(qū)分:字段、條件、表名

Select 字段名列表(*)from 表名; where 條件表達(dá)式;

into table(dbf)文件名;

into cursor 臨時(shí)表名;

into array 數(shù)組名;

to file 文件名;

order by 字段名列表(asc desc);

group by 字段名 having 條件;

顯示所有大于平均分的學(xué)生的學(xué)號(hào)、姓名 顯示同E4掙同樣工資的職工信息

Select * from 職工 where 工資=(select 工資 from 職工 where 職工號(hào)=”E4”)職工(倉(cāng)庫(kù)號(hào)C(10),職工號(hào) C(10),工資 N(10,2))

顯示所有工資大于1500的員工的倉(cāng)庫(kù)號(hào)、職工號(hào)及所在的城市

2、插入記錄

Insert into 表名(字段名列表)values(記錄值)

3、刪除記錄

Delete from 表名 where 條件

4、更新記錄

Update 表名 set 字段名=記錄值; Where 條件

5、表的刪除

drop table 表名

6、表的建立

create table 表名(字段名 數(shù)據(jù)類型(寬度))

7、表結(jié)構(gòu)的修改select * from 職工where 職工號(hào)!=“E4” AND 工資=(select 工資 from 職工 where 職工號(hào)=“E4”)

alter table 表名

1)增加字段

alter table student add 身份證號(hào) c(10)

2)刪除字段

alter table student drop colum 身份證號(hào)

3)修改字段名

alter table student rename colum 出生日期 to 出生年月

4)增加字段有效性規(guī)則

alter table student alter 成績(jī) set check 成績(jī)>=0 and 成績(jī)<=100;

error “成績(jī)輸入錯(cuò)誤,成績(jī)應(yīng)該在0-100之間”

5)刪除字段有效性規(guī)則

alter table student alter 成績(jī) drop check 注意:

以上題目中用到的 SQL語(yǔ)句粘貼到計(jì)事本文件XY.TXT中(每行一條語(yǔ)句)。對(duì)兩個(gè)表操作的方法:

1)同時(shí)打開(kāi)兩個(gè)表

select 倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào),城市,職工號(hào),工資 from 倉(cāng)庫(kù),職工;

where 職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào) and 工資=1250

2)超連接(內(nèi)連接、左連接、右連接、全連

接)

內(nèi)連接:只顯示符合條件的記錄

左連接:顯示符合條件的記錄及第一個(gè)表中不符合條件的記錄

右連接:顯示符合條件的記錄及第二個(gè)表中不符合條件的記錄

全連接:顯示符合條件的記錄及第一、二個(gè)表中不符合條件的記錄

成績(jī)表(score)

學(xué)號(hào)姓名課程名成績(jī) 2001張三計(jì)算機(jī)10 2003張四英語(yǔ)20 2001張三語(yǔ)言30 2005張三數(shù)據(jù)40 2003張四計(jì)算機(jī)50

Select sum(成績(jī))from score group by 學(xué)號(hào)

Select sum(成績(jī))from score group by 課程名

select 字段名列表(*)from 表名;where 條件;

order by 字段名列表 asc|desc;

into table(dbf)表名;

into array 數(shù)組名;

to file 文件名;

into cursor 臨時(shí)表名

題目練習(xí)

實(shí)現(xiàn)以下功能:在考生文件夾下,打開(kāi)“陶的數(shù)據(jù)庫(kù)”的數(shù)據(jù)庫(kù),并利用SQL語(yǔ)句在該數(shù)據(jù)庫(kù)中新建一個(gè)表:gongzi(職工號(hào) c(4),實(shí)發(fā)工資 n(7,0)),將zhigong表中基本工資大于1330(含1330)的記錄存儲(chǔ)在gongzi表中,其中實(shí)發(fā)工資為:基本工資+加班費(fèi)(白天20,晚上30),最后將所有的SQL語(yǔ)句保存到考生目錄下的sqlanswer.txt文件中(自行建立,一行一條語(yǔ)句)

open database 陶的數(shù)據(jù)庫(kù)

create table gongzi(職工號(hào) c(4),基本工資 n(7,2))

select 職工號(hào),基本工資+白班*20+晚班*30 from zhigong;where 基本工資>1350 into array xy

insert into gongzi from array xy

第三篇:Sql語(yǔ)句查詢

sql語(yǔ)句多表連接查詢

在程序開(kāi)發(fā)過(guò)程中,不僅可以對(duì)單一數(shù)據(jù)表進(jìn)行查詢,還可以進(jìn)行多表查詢,用戶通過(guò)多表查詢從多個(gè)表中提取出需要的數(shù)據(jù)。

多表查詢可以分為內(nèi)連接查詢、外連接查詢以及聯(lián)合查詢。

1.內(nèi)連接查詢

連接查詢是指通過(guò)各個(gè)表之間共同列的關(guān)聯(lián)性查詢數(shù)據(jù)。連接查詢分為內(nèi)連接查詢和外連接查詢。內(nèi)連接是將兩個(gè)相互交叉的數(shù)據(jù)集合中重疊部分的數(shù)據(jù)行連接起來(lái),返回表示兩個(gè)數(shù)據(jù)集合之間匹配連接關(guān)系的數(shù)據(jù)行。

可以在FORM子句中使用INNER JOIN?ON?建立內(nèi)連接,也可以在WHERE子句中指定連接條件建立內(nèi)連接,例如:

select a.UserName,b.BookName,b.Datetm from UserInfo as a inner join SellSheet as b on a.UserID= b.UserID

也可以用下面的語(yǔ)句實(shí)現(xiàn)。

select a.UserName,b.BookName,b.Datetm from UserInfo as a,SellSheet as b where a.UserID=b.UserID

2.外連接查詢

外連接是對(duì)內(nèi)連接的擴(kuò)充,除了將兩個(gè)數(shù)據(jù)集合中重疊部分以內(nèi)的數(shù)據(jù)行連接起來(lái)之外,還可以根據(jù)要求返回左側(cè)或右側(cè)數(shù)據(jù)集合中非匹配的數(shù)據(jù),即左外連接(LEFT OUTER JOIN)和右外連接(RIGHT OUTER JOIN)。

l左外連接LEFT OUTER JOIN

左外連接LEFT OUTER JOIN邏輯運(yùn)算符除了返回兩個(gè)數(shù)據(jù)表中滿足連接條件的行,它還返回任何在后一個(gè)數(shù)據(jù)表中沒(méi)有匹配行的前一個(gè)數(shù)據(jù)表中的行。非匹配行的部分字段列作為空值返回。

l右外連接RIGHT OUTER JOIN

右外連接RIGHT OUTER JOIN是左外連接的反向連接。它除了返回兩個(gè)數(shù)據(jù)表中滿足連接條件的行,還返回任何在前一個(gè)數(shù)據(jù)表中沒(méi)有匹配行的后一個(gè)數(shù)據(jù)表中的行。非匹配行的部分字段列作為空值返回。

3.使用UNION進(jìn)行聯(lián)合查詢

使用UNION運(yùn)算符可以進(jìn)行聯(lián)合查詢。UNION運(yùn)算符連接多個(gè)SELECT語(yǔ)句,將兩個(gè)或更多查詢的結(jié)果組合為單個(gè)結(jié)果集,該結(jié)果集包含聯(lián)合查詢中所有查詢的全部行。使用UNION運(yùn)算符遵循的規(guī)則如下:

(1)在使用UNION運(yùn)算符組合的語(yǔ)句中,所有選擇列表的表達(dá)式數(shù)目必須相同(列名、算術(shù)表達(dá)式、聚集函數(shù)等)。

(2)在使用UNION組合的結(jié)果集中的相應(yīng)列必須具有相同數(shù)據(jù)類型,或者兩種數(shù)據(jù)類型之間必須存在可能的隱性數(shù)據(jù)轉(zhuǎn)換,或者提供了顯式轉(zhuǎn)換。例如,在datetime數(shù)據(jù)類型的列和binary數(shù)據(jù)類型的列之間不能使用UNION運(yùn)算符,除非提供了顯式轉(zhuǎn)換,而在money數(shù)據(jù)類型的列和int數(shù)據(jù)類型的列之間可以使用UNION運(yùn)算符,因?yàn)樗鼈兛梢赃M(jìn)行隱性轉(zhuǎn)換。

(3)結(jié)果集中列的名字或者別名是由第一個(gè)SELECT語(yǔ)句的選擇列表決定的。

注意:對(duì)數(shù)據(jù)表進(jìn)行聯(lián)合查詢時(shí),結(jié)果集中行的最大數(shù)量是各表行數(shù)之“和”,而對(duì)數(shù)據(jù)表進(jìn)行連接查詢時(shí),結(jié)果集中行的最大數(shù)量是各表行數(shù)之“積”。

第四篇:SQL語(yǔ)句(百度查詢)

創(chuàng)建數(shù)據(jù)庫(kù)

創(chuàng)建之前判斷該數(shù)據(jù)庫(kù)是否存在

if exists(select * from sysdatabases where name='databaseName')

drop database databaseName

go

Create DATABASE database-name 刪除數(shù)據(jù)庫(kù)

drop database dbname 備份sql server

---創(chuàng)建備份數(shù)據(jù)的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'

---開(kāi)始備份

BACKUP DATABASE pubs TO testBack 創(chuàng)建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根據(jù)已有的表創(chuàng)建新表:

A:go

use 原數(shù)據(jù)庫(kù)名

go

select * into 目的數(shù)據(jù)庫(kù)名.dbo.目的表名 from 原表名(使用舊表創(chuàng)建新表)

B:create table tab_new as select col1,col2… from tab_old definition only 創(chuàng)建序列

create sequence SIMON_SEQUENCE

minvalue 1--最小值

maxvalue ***999999999999--最大值

start with 1--開(kāi)始值

increment by 1--每次加幾

cache 20;刪除新表

drop table tabname 增加一個(gè)列

Alter table tabname add colname coltype 刪除一個(gè)列

Alter table tabname drop column colname 添加主鍵

Alter table tabname add primary key(col)

說(shuō)明:刪除主鍵:Alter table tabname drop primary key(col)創(chuàng)建索引

create [unique] index idxname on tabname(col…。)刪除索引:drop index idxname on tabname

注:索引是不可更改的,想更改必須刪除重新建。創(chuàng)建視圖

create view viewname as select statement

刪除視圖:drop view viewname 簡(jiǎn)單基本的sql語(yǔ)句

(1)數(shù)據(jù)記錄篩選:

sql=“select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]”

sql=“select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名 [desc]”

sql=“select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]”

sql=“select * from 數(shù)據(jù)表 where 字段名 in('值1','值2','值3')”

sql=“select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2”

(2)更新數(shù)據(jù)記錄:

sql=“update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式”

sql=“update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)式”

(3)刪除數(shù)據(jù)記錄:

sql=“delete from 數(shù)據(jù)表 where 條件表達(dá)式”

sql=“delete from 數(shù)據(jù)表”(將數(shù)據(jù)表所有記錄刪除)

(4)添加數(shù)據(jù)記錄:

sql=“insert into 數(shù)據(jù)表(字段1,字段2,字段3 …)values(值1,值2,值3 …)”

sql=“insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表”(把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)

(5)數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):

AVG(字段名)得出一個(gè)表格欄平均值

COUNT(*;字段名)對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)

MAX(字段名)取得一個(gè)表格欄最大的值

MIN(字段名)取得一個(gè)表格欄最小的值

SUM(字段名)把數(shù)據(jù)欄的值相加

引用以上函數(shù)的方法:

sql=“select sum(字段名)as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式”

set rs=conn.excute(sql)

用 rs(“別名”)獲取統(tǒng)計(jì)的值,其它函數(shù)運(yùn)用同上。

查詢?nèi)コ貜?fù)值:select distinct * from table1

(5)數(shù)據(jù)表的建立和刪除:

CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長(zhǎng)度),字段2 類型2(長(zhǎng)度)……)

幾個(gè)高級(jí)查詢運(yùn)算詞

A:UNION 運(yùn)算符 UNION 運(yùn)算符通過(guò)組合其他兩個(gè)結(jié)果表(例如TABLE1 和TABLE2)并消去表中任何重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨UNION 一起使用時(shí)(即UNION ALL),不消除重復(fù)行。兩種情況下,派生表的每一行不是來(lái)自TABLE1 就是來(lái)自TABLE2。

B: EXCEPT 運(yùn)算符

EXCEPT 運(yùn)算符通過(guò)包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng)ALL 隨EXCEPT 一起使用時(shí)(EXCEPT ALL),不消除重復(fù)行。

C:INTERSECT 運(yùn)算符

INTERSECT 運(yùn)算符通過(guò)只包括TABLE1 和TABLE2 中都有的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng)ALL 隨INTERSECT 一起使用時(shí)(INTERSECT ALL),不消除重復(fù)行。

注:使用運(yùn)算詞的幾個(gè)查詢結(jié)果行必須是一致的。使用外連接

A、left outer join:

左外連接(左連接):結(jié)果集既包括連接表的匹配行,也包括左連接表的所有行。

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

B:right outer join:

右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。

C:full outer join:

全外連接:不僅包括符號(hào)連接表的匹配行,還包括兩個(gè)連接表中的所有記錄。編輯本段判斷對(duì)象是否存在 判斷數(shù)據(jù)庫(kù)是否存在

if exists(select* from sysdatabases wherename= '數(shù)據(jù)庫(kù)名')

dropdatabase[數(shù)據(jù)庫(kù)名] 判斷表是否存在

if not exists(select * from sysobjects where [name] = '表名' and xtype='U')

begin

--這里創(chuàng)建表

end 判斷存儲(chǔ)過(guò)程是否存在

if exists(select* from sysobjects whereid = object_id(N'[存儲(chǔ)過(guò)程名]')and OBJECTPROPERTY(id, N'IsProcedure')= 1)

dropprocedure[存儲(chǔ)過(guò)程名] 判斷臨時(shí)表是否存在

if object_id('tempdb..#臨時(shí)表名')isnot null

droptable#臨時(shí)表名 判斷視圖是否存在

--SQL Server 2000

IF EXISTS(SELECT* FROM sysviews WHEREobject_id = '[dbo].[視圖名]'

--SQL Server 2005 IF EXISTS(SELECT* FROM sys.views WHEREobject_id = '[dbo].[視圖名]' 判斷函數(shù)是否存在

if exists(select* from dbo.sysobjects whereid = object_id(N'[dbo].[函數(shù)名]')and xtype in(N'FN', N'IF', N'TF'))

dropfunction[dbo].[函數(shù)名] 獲取創(chuàng)建信息

SELECT[name],[id],crdate FROM sysobjects where xtype='U'

/*

xtype 的表示參數(shù)類型,通常包括如下這些 C = CHECK約束 D = 默認(rèn)值或DEFAULT約束 F = FOREIGNKEY約束 L = 日志 FN = 標(biāo)量函數(shù) IF = 內(nèi)嵌表函數(shù) P = 存儲(chǔ)過(guò)程 PK = PRIMARYKEY約束(類型是K)RF = 復(fù)制篩選存儲(chǔ)過(guò)程 S = 系統(tǒng)表 TF = 表函數(shù) TR = 觸發(fā)器U = 用戶表 UQ = UNIQUE約束(類型是K)V = 視圖 X = 擴(kuò)展存儲(chǔ)過(guò)程 */ 判斷列是否存在

if exists(select* from syscolumns whereid=object_id('表名')and name='列名')

altertable表名dropcolumn列名 判斷列是否自增列

if columnproperty(object_id('table'),'col','IsIdentity')=1

print '自增列'

else

print '不是自增列'

SELECT* FROM sys.columns WHEREobject_id=OBJECT_ID('表名')

AND is_identity=1 判斷表中是否存在索引

if exists(select* from sysindexes whereid=object_id('表名')and name='索引名')

print '存在'

else

print '不存在 查看數(shù)據(jù)庫(kù)中對(duì)象

SELECT* FROM sysobjects WHEREname='對(duì)象名'

select * from table(所要查詢的表名)where coloum(條件)編輯本段提升 復(fù)制表

(只復(fù)制結(jié)構(gòu),源表名:a 新表名:b)(Access可用)

法一:select * into b from a where 1<>1

法二:select top 0 * into b from a 拷貝表

(拷貝數(shù)據(jù),源表名:a 目標(biāo)表名:b)(Access可用)

insert into b(x, y, z)select d,e,f from a;跨數(shù)據(jù)庫(kù)之間表的拷貝

(具體數(shù)據(jù)使用絕對(duì)路徑)(Access可用)insert into b(x, y, z)select d,e,f from a in ‘具體數(shù)據(jù)庫(kù)’ where 條件

例子:。.from b in '“&Server.MapPath(”.“&”data.mdb“ &”' where..子查詢

(表名1:a 表名2:b)

select a,b,c from a where a IN(select d from b 或者: select a,b,c from a where a IN(1,2,3)顯示文章最后時(shí)間

select a.title,a.username,b.adddate from table a,(select max(adddate)adddate from table where table.title=a.title)b 外連接查詢

(表名1:a 表名2:b)

select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 在線視圖查詢

(表名1:a

select * from(Select a,b,c FROM a)T where t.a > 1;between的用法

between限制查詢數(shù)據(jù)范圍時(shí)包括了邊界值,not between不包括

select * from table1 where time between time1 and time2

select a,b,c, from table1 where a not between 數(shù)值1 and 數(shù)值2 in 的使用方法

select * from table1 where a [not] in(‘值1’,’值2’,’值4’,’值6’)

刪除主表沒(méi)有的信息

兩張關(guān)聯(lián)表delete from table1 where not exists(select * from table2 where table1.field1=table2.field1 四表聯(lián)查問(wèn)題

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where.....日程安排提前五分鐘

SQL: select * from 日程安排 where datediff('minute',f開(kāi)始時(shí)間,getdate())>5 一條sql 搞定數(shù)據(jù)庫(kù)頁(yè)

select top 10 b.* from(select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc)a,表名 b where b.主鍵字段= a.主鍵字段 order by a.排序字段

前10條記錄

select top 10 * from table1 where 范圍 選擇排名

選擇在每一組b值相同的數(shù)據(jù)中對(duì)應(yīng)的a最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷(xiāo)產(chǎn)品分析,按科目成績(jī)排名,等等。)

select a,b,c from tablename ta where a=(select max(a)from tablename tb where tb.b=ta.b)

包括所有在TableA 中但不在TableB和TableC 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表

(select a from tableA except(select a from tableB)except(select a from tableC)隨機(jī)取出10條數(shù)據(jù)

select top 10 * from tablename order by newid()隨機(jī)選擇記錄

select newid()刪除重復(fù)記錄

Delete from tablename where id not in(select max(id)from tablename group by col1,col2,...)列出數(shù)據(jù)庫(kù)里的表名

select name from sysobjects where type='U' 列出表里的所有的

select name from syscolumns where id=object_id('TableName')列示排列

列示type、vender、pcs字段,以type字段排列,case可以方便地實(shí)現(xiàn)多重選擇,類似select 中的case。

select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end)FROM tablename group by type

顯示結(jié)果:

type vender pcs

電腦A 1

電腦A 1

光盤(pán)B 2

光盤(pán)A 2

手機(jī)B 3

手機(jī)C 3 初始化表table1

TRUNCATE TABLE table1 選擇從10到15的記錄

select top 5 * from(select top 5 * from(select top 15 * from table order by id asc)table_別名 order by id desc)table_2 order by id

數(shù)據(jù)類型轉(zhuǎn)換

declare @numid int

declare @id varchar(50)

set @numid=2005

set @id=convert(varchar,@numid)

通過(guò)上述語(yǔ)句完成數(shù)據(jù)類型Int轉(zhuǎn)換成varchar,其他轉(zhuǎn)換類似,可參看convert函數(shù)

編輯本段技巧 1=1,1=2的使用 在SQL語(yǔ)句組合時(shí)用的較多

?where 1=1?是表示選擇全部 ?where 1=2?全部不選,如:

if @strWhere!='

begin

set @strSQL = 'select count(*)as Total from [' + @tblName + '] where ' + @strWhere

end

else

begin

set @strSQL = 'select count(*)as Total from [' + @tblName + ']'

end

我們可以直接寫(xiě)成

set @strSQL = 'select count(*)as Total from [' + @tblName + '] where 1=1 and '+ @strWhere 收縮數(shù)據(jù)庫(kù)

--重建索引

DBCC REINDEX

DBCC INDEXDEFRAG

--收縮數(shù)據(jù)和日志

DBCC SHRINKDB

DBCC SHRINKFILE 壓縮數(shù)據(jù)庫(kù)

dbcc shrinkdatabase(dbname)

轉(zhuǎn)移數(shù)據(jù)庫(kù)給新用戶以已存在用戶權(quán)限

exec sp_change_users_login 'update_one','newname','oldname'

go 檢查備份集

RESTORE VERIFYONLY from disk='E:dvbbs.bak' 修復(fù)數(shù)據(jù)庫(kù)

Alter DATABASE [dvbbs] SET SINGLE_USER

GO

DBCC CHECKDB('dvbbs',repair_allow_data_loss)WITH TABLOCK

GO

Alter DATABASE [dvbbs] SET MULTI_USER

GO 日志清除

SET NOCOUNT ON

DECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INT

USE tablename--要操作的數(shù)據(jù)庫(kù)名

Select @LogicalFileName = 'tablename_log',--日志文件名

@MaxMinutes = 10,--Limit on time allowed to wrap log.@NewSize = 1--你想設(shè)定的日志文件的大小(M)

--Setup / initialize

DECLARE @OriginalSize int

Select @OriginalSize = size

FROM sysfiles

Where name = @LogicalFileName

Select 'Original Size of ' + db_name()+ ' LOG is ' +

CONVERT(VARCHAR(30),@OriginalSize)+ ' 8K pages or ' +

CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+ 'MB'

FROM sysfiles

Where name = @LogicalFileName

Create TABLE DummyTrans

(DummyColumn char(8000)not null)

DECLARE @Counter INT,@StartTime DATETIME,@TruncLog VARCHAR(255)

Select @StartTime = GETDATE(),@TruncLog = 'BACKUP LOG ' + db_name()+ ' WITH TRUNCATE_ONLY'

DBCC SHRINKFILE(@LogicalFileName, @NewSize)

EXEC(@TruncLog)

--Wrap the log if necessary.WHILE @MaxMinutes > DATEDIFF(mi, @StartTime, GETDATE())--time has not expired

AND @OriginalSize =(Select size FROM sysfiles Where name = @LogicalFileName)

AND(@OriginalSize * 8 /1024)> @NewSize

BEGIN--Outer loop.Select @Counter = 0

WHILE((@Counter < @OriginalSize / 16)AND(@Counter < 50000))

BEGIN--update

Insert DummyTrans VALUES('Fill Log')

Delete DummyTrans

Select @Counter = @Counter + 1

END

EXEC(@TruncLog)

END

Select 'Final Size of ' + db_name()+ ' LOG is ' +

CONVERT(VARCHAR(30),size)+ ' 8K pages or ' +

CONVERT(VARCHAR(30),(size*8/1024))+ 'MB'

FROM sysfiles

Where name = @LogicalFileName

Drop TABLE DummyTrans

SET NOCOUNT OFF 更改某個(gè)表 exec sp_changeobjectowner 'tablename','dbo' 存儲(chǔ)更改全部表

Create PROCEDURE dbo.User_ChangeObjectOwnerBatch

@OldOwner as NVARCHAR(128),@NewOwner as NVARCHAR(128)

AS

DECLARE @Name as NVARCHAR(128)

DECLARE @Owner as NVARCHAR(128)

DECLARE @OwnerName as NVARCHAR(128)

DECLARE curObject CURSOR FOR

select 'Name' = name,'Owner' = user_name(uid)

from sysobjects

where user_name(uid)=@OldOwner

order by name

OPEN curObject

FETCH NEXT FROM curObject INTO @Name, @Owner

WHILE(@@FETCH_STATUS=0)

BEGIN

if @Owner=@OldOwner

begin

set @OwnerName = @OldOwner + '.' + rtrim(@Name)

exec sp_changeobjectowner @OwnerName, @NewOwner

end

--select @name,@NewOwner,@OldOwner

FETCH NEXT FROM curObject INTO @Name, @Owner

END

close curObject

deallocate curObject

GO SERVER中循環(huán)寫(xiě)入數(shù)據(jù)

declare @i int

set @i=1

while @i<30

begin

insert into test(userid)values(@i)

set @i=@i+1

end 在SQL Server中有5種約束:

主鍵約束(primary key constraint)唯一性約束(unique constraint)檢查約束(check constraint)缺省約束(default constraint)

外部鍵約束(foreign key constraint)SQL SERVER中,(1)對(duì)于基本表的約束分為列約束和表約束

約束是限制用戶輸入到表中的數(shù)據(jù)的值的范圍,一般分為列級(jí)約束與表級(jí)約束。

列級(jí)約束有六種:主鍵Primary key、外鍵foreign key、唯一 unique、檢查 checck、默認(rèn)default、非空/空值 not null/ null

表級(jí)約束有四種:主鍵、外鍵、唯

一、檢查

列約束是對(duì)某一個(gè)特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名;

表約束與列定義相互獨(dú)立,不包括在列定義中,通常用于對(duì)多個(gè)列一起進(jìn)行約束,與列定義用’,’分隔,定義表約束時(shí)必須指出要約束的那些列的名稱。完整性約束的基本語(yǔ)法格式為:

[ CONSTRAINT <約束名> ] <約束類型> 約束名:約束不指定名稱時(shí),系統(tǒng)會(huì)給定一個(gè)名稱。(2)列級(jí)約束與表級(jí)約束的區(qū)別

如果完整性約束涉及到該表的多個(gè)屬性列,必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí)。簡(jiǎn)而言之:

列級(jí)約束:列級(jí)約束是行定義的一部分,只能應(yīng)用于一列上。

表級(jí)約束:表級(jí)約束是獨(dú)立于列的定義,可以應(yīng)用在一個(gè)表中的多列上。(3)列級(jí)約束與表級(jí)約束在SQL中的用法(即如何在SQL中定義約束)在創(chuàng)建表時(shí)定義約束:

CREATE TABLE table_name

({-------列級(jí)約束定義

|column_name AS computed_column_expression-------計(jì)算列定義

|------表級(jí)約束定義

}[,….n])一個(gè)約束定義為列級(jí)約束還是表級(jí)約束???

根據(jù)實(shí)際需要和設(shè)計(jì)者思路確定。如primary key,當(dāng)只涉及到一列時(shí),定義為列級(jí)約束;當(dāng)涉及到多列時(shí),則定義為表級(jí)約束。

Prinmary key定義為列級(jí)約束時(shí),相應(yīng)SQL語(yǔ)句: Stu_id上建立的主鍵pk_1為列級(jí)約束 CREATE TABLE student(Stu_id int constraint pk_1 primary key,Stu_name varchar(8), ….)當(dāng)定義為表級(jí)約束時(shí),相應(yīng)SQL語(yǔ)句: CREATE TABLE student(Stu_id int NOT NULL, Stu_id上建立的主鍵pk_1為的表級(jí)約束 Stu_name varchar(8), Constraint pk_1 primary key(Stu_id),….)各約束具體說(shuō)明: 主鍵約束

PRIMARY KEY約束 PRIMARY KEY約束用于定義基本表的主鍵,起唯一標(biāo)識(shí)作用,其值不能為NULL,也不能重復(fù),以此來(lái)保證實(shí)體的完整性。PRIMARY KEY與UNIQUE約束類似,通過(guò)建立唯一索引來(lái)保證基本表在主鍵列取值的唯一性,但它們之間存在著很大的區(qū)別:

①在一個(gè)基本表中只能定義一個(gè)PRIMARY KEY約束,但可定義多個(gè)UNIQUE約束; ②對(duì)于指定為PRIMARY KEY的一個(gè)列或多個(gè)列的組合,其中任何一個(gè)列都不能出現(xiàn)空值,而對(duì)于UNIQUE所約束的唯一鍵,則允許為空。

注意:不能為同一個(gè)列或一組列既定義UNIQUE約束,又定義PRIMARY KEY約束。PRIMARY KEY既可用于列約束,也可用于表約束。PRIMARY KEY用于定義列約束時(shí),其語(yǔ)法格式如下:

CONSTRAINT <約束名> PRIMARY KEY PRIMARY KEY用于定義表約束時(shí),即將某些列的組合定義為主鍵,其語(yǔ)法格式如下:

[CONSTRAINT <約束名>]S PRIMARY KEY(<列名>[{<列名>}])2.唯一性(UNIQUE)約束

UNIQUE約束用于指明基本表在某一列或多個(gè)列的組合上的取值必須唯一。

定義了UNIQUE約束的那些列稱為唯一鍵,系統(tǒng)自動(dòng)為唯一鍵建立唯一索引,從而保證了唯一鍵的唯一性。

唯一鍵允許為空,但系統(tǒng)為保證其唯一性,最多只可以出現(xiàn)一個(gè)NULL值。UNIQUE既可用于列約束,也可用于表約束。UNIQUE用于定義列約束時(shí),其語(yǔ)法格式如下:

[CONSTRAINT <約束名>] UNIQUE 唯一性約束用于指定一個(gè)或者多個(gè)列的組合的值具有唯一性,以防止在列中輸入重復(fù)的值。當(dāng)使用唯一性約束時(shí),需要考慮以下幾個(gè)因素: ①使用唯一性約束的字段允許為空值。②一個(gè)表中可以允許有多個(gè)唯一性約束。③可以把唯一性約束定義在多個(gè)字段上。

④唯一性約束用于強(qiáng)制在指定字段上創(chuàng)建一個(gè)唯一性索引。⑤缺省情況下,創(chuàng)建的索引類型為非聚簇索引。

unique約束是用來(lái)確保不受主鍵約束列上的數(shù)據(jù)的唯一性.unique與primary key的區(qū)別在于:(1)unique約束主要用于非主鍵的一列或多列上要求數(shù)據(jù)唯一.(2)unique約束允許該列上存在NULL值,而主鍵決不允許出現(xiàn).(3)可以在一個(gè)表創(chuàng)建多個(gè)unique約束,而在一個(gè)表上只能夠設(shè)置一個(gè)主鍵 3.檢查約束

CHECK約束用來(lái)檢查字段值所允許的范圍,如,一個(gè)字段只能輸入整數(shù),而且限定在0-100的整數(shù),以此來(lái)保證域的完整性。

CHECK既可用于列約束,也可用于表約束,其語(yǔ)法格式為:

[CONSTRAINT <約束名>] CHECK(<條件>)一個(gè)列級(jí)檢查約束只能與限制的字段有關(guān);一個(gè)表級(jí)檢查約束只能與限制的表中字段有關(guān)。一個(gè)表中可以定義多個(gè)檢查約束。

每個(gè)CREATE TABLE語(yǔ)句中每個(gè)字段只能定義一個(gè)檢查約束。

當(dāng)執(zhí)行INSERT語(yǔ)句或者UPDATE語(yǔ)句時(shí),檢查約束將驗(yàn)證數(shù)據(jù)。檢查約束中不能包含子查詢。4.缺省約束

使用缺省約束時(shí),應(yīng)該注意以下幾點(diǎn): 每個(gè)字段只能定義一個(gè)缺省約束。

如果定義的缺省值長(zhǎng)于其對(duì)應(yīng)字段的允許長(zhǎng)度,那么輸入到表中的缺省值將被截?cái)唷2荒芗尤氲綆в蠭DENTITY屬性或者數(shù)據(jù)類型為timestamp的字段上。如果字段定義為用戶定義的數(shù)據(jù)類型,而且有一個(gè)缺省綁定到這個(gè)數(shù)據(jù)類型上,則不允許該字段有缺省約束。5.外部鍵約束

外部鍵約束用于強(qiáng)制參照完整性,提供單個(gè)字段或者多個(gè)字段的參照完整性。FOREIGN KEY約束指定某一個(gè)列或一組列作為外部鍵,其中,包含外部鍵的表稱為從表(參照表),包含外部鍵所引用的主鍵或唯一鍵的表稱主表(被參照表)。

系統(tǒng)保證從表在外部鍵上的取值要么是主表中某一個(gè)主鍵值或唯一鍵值,要么取空值。以此保證兩個(gè)表之間的連接,確保了實(shí)體的參照完整性。FOREIGN KEY既可用于列約束,也可用于表約束,其語(yǔ)法格式為:

CONSTRAINT <約束名>] FOREIGN KEY

REFERENCES <主表名>(<列名>[{<列名>}])當(dāng)使用外部鍵約束時(shí),應(yīng)該考慮以下幾個(gè)因素: ①外部鍵約束提供了字段參照完整性。

②外部鍵從句中的字段數(shù)目和每個(gè)字段指定的數(shù)據(jù)類型必須和REFERENCES從句中的字段相匹配。

③外部鍵約束不能自動(dòng)創(chuàng)建索引,需要用戶手動(dòng)創(chuàng)建。

④用戶想要修改外部鍵約束的數(shù)據(jù),必須有對(duì)外部鍵約束所參考表的SELECT權(quán)限或者REFERENCES權(quán)限。

⑤參考同一表中的字段時(shí),必須只使用REFERENCES子句,不能使用外部鍵子句。⑥一個(gè)表中最多可以有31個(gè)外部鍵約束。⑦在臨時(shí)表中,不能使用外部鍵約束。⑧主鍵和外部鍵的數(shù)據(jù)類型必須嚴(yán)格匹配。6.NULL 約束

(1)NULL/NOT NULL 是否允許該字段的值為NULL。NULL值不是0也不是空白,更不是填入字符串?NULL?,而是表示?不知道?、?不確定?或?沒(méi)有數(shù)據(jù)?的意思。

當(dāng)某一字段的值一定要輸入才有意義的時(shí)候,則可以設(shè)置為NOT NULL。如主鍵列就不允許出現(xiàn)空值,否則就失去了唯一標(biāo)識(shí)一條記錄的作用 只能用于定義列約束,其語(yǔ)法格式如下:

[constraint <約束名> ][null|not null]

第五篇:SQL結(jié)構(gòu)化查詢語(yǔ)句

SQL結(jié)構(gòu)化查詢語(yǔ)句

一、數(shù)據(jù)定義功能

創(chuàng)建表:Createtable 表名(字段名……)修改表:Altertable表名

刪除表:Droptable表名

二、數(shù)據(jù)操縱功能

數(shù)據(jù)插入:Insertinto 表名values(…,…,)數(shù)據(jù)更新:Update表名Set表達(dá)式 Where 條件 數(shù)據(jù)刪除:DeleteFrom 表名Where 條件

三、查詢功能

SELECT*FROM表名

WHERE條件

ORDERBY 字段排序

GROUPBY 字段分組

函數(shù):SUM()AVG()COUNT()MAX()MIN()去向:

INTOTABLE表

INTOCURSOR臨時(shí)表

INTOARRAY數(shù)組

下載SQL查詢語(yǔ)句學(xué)習(xí)筆記word格式文檔
下載SQL查詢語(yǔ)句學(xué)習(xí)筆記.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    無(wú)憂SQL語(yǔ)句(除查詢)

    【64一1】用命令新建一個(gè)名為“外匯”的數(shù)據(jù)庫(kù),并將該命令存儲(chǔ)于one.txt中; CREATE DATABASE 外匯 【22一3】使用SQL語(yǔ)句創(chuàng)建一個(gè)名為"分組情況表"的自由表,"分組情況表"有兩個(gè)......

    SQL Server查詢語(yǔ)句學(xué)習(xí)心得

    SQL Server查詢語(yǔ)句學(xué)習(xí)心得 李臻敏 摘要:數(shù)據(jù)庫(kù)技術(shù)已經(jīng)廣泛地滲透到各個(gè)領(lǐng)域,數(shù)據(jù)庫(kù)應(yīng)用技術(shù)也已經(jīng)成為計(jì)算機(jī)必修課程,SQL Server2005是Microsoft 公司推出的數(shù)據(jù)庫(kù)服務(wù)產(chǎn)品......

    sql語(yǔ)句學(xué)習(xí)

    一、選擇題 1、SQL語(yǔ)言是語(yǔ)言。——(SQL特點(diǎn))(易) A)層次數(shù)據(jù)庫(kù) B)網(wǎng)絡(luò)數(shù)據(jù)庫(kù) C)關(guān)系數(shù)據(jù)庫(kù)D)非數(shù)據(jù)庫(kù) 答案:C 2、SQL語(yǔ)言具有兩種使用方式,分別稱為交互式SQL和。 ——(SQL語(yǔ)言使......

    sql語(yǔ)句學(xué)習(xí)_經(jīng)典大全_推薦

    sql語(yǔ)句學(xué)習(xí) ? 數(shù)據(jù)定義語(yǔ)言(DDL): 1)創(chuàng)建數(shù)據(jù)庫(kù)(create):create database database-name; eg. create database test; 2)刪除數(shù)據(jù)庫(kù):drop database dbname; eg.drop database test; 3......

    SQL基本操作語(yǔ)句筆記

    一、SQL基本操作語(yǔ)句(DML):Insert,Select,Update,Delete 1、INSERT語(yǔ)句:將一行記錄插入到指定的一個(gè)表中。 1.1語(yǔ)法: INSERTINTOtable[(column { ,column})]ALUES(columnvalue [{,co......

    .Net+SQL Server企業(yè)應(yīng)用性能優(yōu)化筆記3——SQL查詢語(yǔ)句

    在上一篇文章中我們使用了幾種方法來(lái)確定瓶頸,找到瓶頸,下面再回顧一下: LoadRunner壓力測(cè)試+Windows計(jì)數(shù)器,這種方法主要是找出大概的性能問(wèn)題是在哪臺(tái)服務(wù)器,主要是哪個(gè)資源緊......

    sql常用語(yǔ)句

    //創(chuàng)建臨時(shí)表空間create temporary tablespace test_temp tempfile 'E:oracleproduct10.2.0oradatatestservertest_temp01.dbf'size 32m autoextend on next 32m maxs......

    SQL語(yǔ)句大全

    SQL練習(xí)一、 設(shè)有如下的關(guān)系模式, 試用SQL語(yǔ)句完成以下操作: 學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系) 課程(課程號(hào),課程名,學(xué)分,學(xué)期,學(xué)時(shí)) 選課(學(xué)號(hào),課程號(hào),成績(jī)) 1. 求選修了課程號(hào)為“C2”......

主站蜘蛛池模板: 国产成人亚洲精品青草天美| 日韩午夜理论免费tv影院| 久久97超碰色中文字幕总站| 亚洲中文无码a∨在线观看| 小辣椒福利视频导航| 国内精品自在自线| 又嫩又硬又黄又爽的视频| www国产亚洲精品久久麻豆| 无遮挡h肉动漫在线观看| 奇米影视7777狠狠狠狠色| 无码人妻精品一区二区三区下载| 羞羞影院午夜男女爽爽在线观看| 午夜131美女爱做视频| 久久国产乱子伦免费精品无码| 中文字幕精品亚洲无线码vr| 亚洲中文无码av在线| 久久久久国产精品嫩草影院| 丰满少妇人妻无码专区| 国产超薄肉色丝袜视频| 欧洲精品免费一区二区三区| 免费人成在线观看网站品爱网| 无码办公室丝袜ol中文字幕| 亚洲另类春色国产精品| 久久无码人妻一区二区三区午夜| 亚洲成在人线av品善网好看| 国产麻豆一精品av一免费软件| 亚洲国产老鸭窝一区二区三区| 亚洲中文字幕无码一区二区三区| 亚洲区小说区图片区qvod| 亚洲国产欧美在线人成大黄瓜| 无码高潮少妇毛多水多水免费| 欧美成人怡红院一区二区| 国产在线高清视频无码| 精品一区二区三区在线观看视频| 人妻少妇久久久久久97人妻| 日本韩国的免费观看视频| 久久久久久亚洲精品中文字幕| 狠狠躁夜夜躁人人爽天天| 日本一卡2卡3卡4卡无卡免费网站| 久久久久青草大香综合精品| 一本久久伊人热热精品中文字幕|