SQL常用的增刪改查語句、視屏筆記_第1頁
SQL常用的增刪改查語句、視屏筆記_第2頁
SQL常用的增刪改查語句、視屏筆記_第3頁
SQL常用的增刪改查語句、視屏筆記_第4頁
SQL常用的增刪改查語句、視屏筆記_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SQL:結(jié)構(gòu)化查詢語言,是國際化標準組織采納的標準數(shù)據(jù)庫語言作用:數(shù)據(jù)庫管理員可以用利用次語言操作數(shù)據(jù)庫系統(tǒng),即:SQL是一種能夠被數(shù)據(jù)庫系統(tǒng)讀懂的操作語言。TSQL是微軟公司針對SQL Server這種關(guān)系數(shù)據(jù)庫所定義的一種SQL語言,用戶可以完成Server數(shù)據(jù)庫中的所有操作。SQL的分類:(1):數(shù)據(jù)定義語言,DDL用來創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫中的各種對象數(shù)據(jù)庫中的對象包括:表、視圖、索引、存儲過程、觸發(fā)器DDL常用的命令包括:create、alter、drop(2):數(shù)據(jù)操縱語言,DML可以完成對數(shù)據(jù)庫中數(shù)據(jù)的查詢、更新、刪除、插入的功能DML常用的命令包括:select、update、de

2、lete、insert(3)數(shù)據(jù)控制語言,DCLDCL常用的命令包括:grant、revoke、deny(4)數(shù)據(jù)類型1、數(shù)字數(shù)據(jù)類型a、整型數(shù)據(jù)類型:bigint、int、smallint、tinyintb、浮點數(shù)據(jù)類型:float、realc、固定精度數(shù)據(jù)類型:decimal、numericd、貨幣數(shù)據(jù)類型:money、smallmoney將數(shù)據(jù)格式轉(zhuǎn)換成字符串方法:STR(ID;-ID為數(shù)據(jù)類型,STR(ID為字符串2、字符數(shù)據(jù)類型:varchar、char、text、nchar、nvarchar、ntext區(qū)別char和varchar數(shù)據(jù)類型:char數(shù)據(jù)類型是存放固定長度的字符Var

3、char數(shù)據(jù)類型是存放動態(tài)長度的字符char(14,實際放入到數(shù)據(jù)庫的字符長度為14個字符,如果實際存儲的長度小于定義的長度,那么數(shù)據(jù)庫會在次字符串后面加上3個空格1、insert 語句:insert語句是屬于SQL語言中的DML作用:為表插入數(shù)據(jù)你向一個表中插入一條新記錄,但有一個字段沒有提供數(shù)據(jù)。在這種情況下,有下面的四種可能:1、如果該字段有一個缺省值(默認值),該值會被使用。2、如果該字段可以接受空值,而且沒有缺省值,則會被插入空值。3、如果該字段不能接受空值,而且沒有缺省值,就會出現(xiàn)錯誤。你會收到錯誤信息:The column in table mytable may not be

4、null.4、如果該字段是一個標識字段,那么它會自動產(chǎn)生一個新值。當你向一個有標識字段的表中插入新記錄時,只要忽略該字段,標識字段會給自己賦一個新值。使用INSERT語句可向文本型字段中插入數(shù)據(jù)。但是,如果你需要輸入很長的字符串,你應(yīng)該使用WRITETEXT語句。語法:insert into 表名(列名1,列名2,. values(值1,值2,.注意:(列名1,列名2,.可以不寫,這樣的話,插入的values(值1,值2,.中的值必須包含表中的所有列,不然會報錯。把INSERT 語句與SELECT 語句結(jié)合起來,可以添加多個記錄。像這樣:代碼:INSERT mytable (first_col

5、umn,second_columnSELECT another_first,another_secondFROM anothertable WHERE another_first=Copy Me!這個語句從anothertable拷貝記錄到mytable.只有表anothertable中字段another_first的值為Copy Me!的記錄才被拷貝。2、update 語句它也是屬于SQL語句中的DML, 可以修改表的數(shù)據(jù),使用WHERE子句來選擇更新特定的記錄。需要更新很長的字符串,應(yīng)使用UPDATETEXT語句。如果你不提供WHERE子句,表中的所有記錄都將被更新。語法:update 表

6、名 set 列名1=值1,列名2=值2,.where 條件.update student set sage=20 where sno=s014-修改一列update student set sage=20,set ssex=女 where sno=s014-修改多列逗號隔開3、delete語句也是屬于SQL語句中的DML作用:可刪除表中的一行或多行,在SQL SELECT 語句中可以使用的任何條件都可以在DELECT 語句的WHERE子句 中使用。刪除應(yīng)該表中的所有記錄,應(yīng)使用TRUNCATE TABLE語句。語法:delete from 表名where 條件.delete from stud

7、ent-刪除表student中所有數(shù)據(jù)delete from student where sno = s014-刪除表student中編號是014的一行delete from student where sno >= s013 -刪除表student中編號大于等于013的行4、建立索引Create INDEX index_name ON table_name (column_name說明:對某個表格建立索引后,數(shù)據(jù)庫會對相應(yīng)列進行自然排序,以增加查詢時的速度。4、基本查詢技術(shù):數(shù)據(jù)庫中提供一種可以將表中的數(shù)據(jù)查詢出來的技術(shù),稱為select查詢select查詢技術(shù)的基本語法格式selec

8、t 列名1,列名2,. | from 表名1,表名2where 條件group by分組的列名having聚合函數(shù)比較操作order by 排序的列名(1) 查詢語句中的“*”號代表將表中的列全部顯示出來select * from student(2) 如果只想在查詢中顯示某一列用:select sno sname sage from student注意:“*”和列名只能夠二選一,不能夠同時出現(xiàn)(3) 在查詢的時候可以為表或者列定義別名A:為列定義別名select sno as 學號 ,sname as 姓名 from student或:select 學號=sno, 姓名=sname from

9、 studentB:為表定義別名select sno sname sage ssex from student a好處:當出現(xiàn)多張表聯(lián)系起來作查詢的時候,如果多張表中含有相同的列名的時候,為表定義別名使得查詢比較方便例如:想查詢課程是由哪些老師就是講授的。從課程course表和老師teacher表中查找車tno列相同的數(shù)據(jù)select cname, tname, from course a , teacher bwhere a.tno = b.tno(4)distinct 關(guān)鍵字此關(guān)鍵字是為了去掉列中重復(fù)的值, 對于所有重復(fù)的數(shù)據(jù)行在SELECT返回的結(jié)果集合中只保留一行。select dis

10、tinct sno from sc(5)order by 排序(默認升序語法:order by 列名desc | ascdesc:代表降序排列asc 代表升序排列select *from student order by sname如果不寫排序關(guān)鍵字,默認的是升序select *from student order by sname desc(6)where關(guān)鍵字使用Where作為查詢篩選結(jié)果的一個過程(非常重要語法:where 條件1or | and 條件2條件1可以包括以下內(nèi)容:Where 列名1 列名2 | 數(shù)值 (7top n限制返回的行數(shù)使用TOP n PERCENT選項限制返回的數(shù)

11、據(jù)行數(shù),TOP n說明返回n行,而TOP n PERCENT時,說明n是表示一百分數(shù),指定返回的行數(shù)等于總行數(shù)的百分之幾。例如:代碼:SELECT TOP 2 * FROM testtable代碼:SELECT TOP 20 PERCENT * FROM testtable條件表達式分類:1、 比較條件:(>:大于 <:小于 >=:大于等于 =<:小于等于 <>:不等于 =:登于)例如:找學生年齡大于23歲的同學信息select *from student where sage>232、 邏輯條件(and:與運算 or:或運算 not:非)邏輯操作的用

12、法:Where 條件1 條件2 例如:查找課程編號大于c002的課程由哪些老師講授sSelect *from teacher ,course where teacher.tno = course.tno and o > c002例如:查找選修了課程c002,或者成績大于70的學生有哪些select sname , sage , cno ,score from student a , sc b where a.sno = b.sno and (cno=c002 or score>70例如:not關(guān)鍵字的使用:select *from sc where score not betwee

13、n 70 and 803、 in關(guān)鍵字它是要求查詢的結(jié)果在某幾個值里面select *from sc where score not in(70,90,80select *from course where cno in (c001,c002,c005in還可以應(yīng)用到子查詢中select *from sc where sno in (select sno from student where sno >= s0024、 like關(guān)鍵字like是作為SQL模糊查詢比較常用的一個技術(shù),在like關(guān)鍵字使用中提出兩個比較特殊的符號%:0個或多個任意字符_:任意一個字符例如:a、查找學生表中姓“

14、陳”的同學select * from student where sname like 陳%b、查詢學生表中名字是三個字的學生信息select * from student where sname like _ -內(nèi)三下杠思考題:如果一個列中的內(nèi)容含有下劃線,要去用like來查找含有下劃線的信息,該怎么做?在SQL模糊查詢中提供了一個escape(逃離、躲避、轉(zhuǎn)移關(guān)鍵字,它作為轉(zhuǎn)義符使用select *from student where sname like %$_% escape $“$”是定義的轉(zhuǎn)移符號,那么在$符號后面的下劃線不再是like中的特殊符號,而是一個普通字符5、 all關(guān)鍵

15、字6、 any關(guān)鍵字7、 betweenand 關(guān)鍵字5、聚合函數(shù):只能對表中的數(shù)字類型進行計算,其他類型報錯max、min、count、avg、summax函數(shù)使用:select max(sage from student-求學生表中最大的年齡min函數(shù)使用:select min(sage from student-求學生表中最小的年齡count函數(shù)使用:select count (*from studentselect count (snofrom studentcount(*:可以計算包含null列的記錄數(shù)count(列名:記錄總記錄數(shù)的時候,不去計算null值avg函數(shù)的使用:sele

16、ct avg(sage from student-求學生表中的平均年齡sum函數(shù)的使用:select sum(sage from student-求學生表中的年齡和6、group by子句,它是一個分組函數(shù),可以對某一列相同的值進行分組并求出相應(yīng)的結(jié)果。語法:Select 列名1 ,列名2. from 表名 group by 列名1,列名2例如:求學生表中男女生的總數(shù)Select ssex ,count(ssex from student group by ssex例如:求不同老師總共講授的課程的總數(shù)A. 兩張表的查詢teacher,courseB. 對不同的老師進行一個分組C. 分組后求課程

17、的總數(shù)Select t.tno , tname , count(cno from teacher t , course cwhere t.tno = c.tno group by t.tno , tnamegroyp by 執(zhí)行原理、注意事項:a. 先根據(jù)group by 后的列名進行分組b. 然后根據(jù)count(列名中的列名進行統(tǒng)計c. group by子句經(jīng)常和聚合函數(shù)一起使用d. 在使用group by的時候,如果查詢的列沒有包含在聚合函數(shù)中,那么該列一定要出現(xiàn)在group by子句后面7、 having子句使用having子句的作用非常重要,它是對聚合函數(shù)的值可以進行比較的操作。Hav

18、ing必須放在group by 子句的后面。例如:查詢講兩門課以上的老師信息Select t.tno , tname , count(cno from teacher t , course cWhere t.tno = c.tno group by t.tno , having count(cno >=2創(chuàng)建表的語法creat table 表名(列名_1 數(shù)據(jù)類型 約束條件列名_2 數(shù)據(jù)類型 約束條件)注意:如果定義的表中有多個列,那么需要以英文逗號”,”隔開;表名和列名不能是SQL語言中的關(guān)鍵字Numeric(p,nP代表數(shù)字類型的精度,插入數(shù)據(jù)的的最大長度。整數(shù)位多了會

19、報錯n代表小數(shù)點后面的位數(shù)。小數(shù)后的位數(shù)長度超過n為會四舍五入creat table A_2(a_no numeric(5,2 /最大長度為5位,小數(shù)點后為兩位,insert into A_2 (a_no values (789.298 /789.30insert into A_2 (a_no values (7890.28 /報錯插入日期類型creat table A_3(a_date datatimeinsert into A_3 values (2011-04-02查詢表:select *from 表名select *from A_21、 SQL鏈接查詢含義:復(fù)雜的SQL查詢是基于多張表

20、以上的查詢,就必須考慮多張表的連接查詢是關(guān)系數(shù)據(jù)庫模型的主要特點,也是它區(qū)別于其它類型數(shù)據(jù)庫管理系統(tǒng)的一個標志。SQL鏈接查詢的分類:等值鏈接 外連接 交叉鏈接等值鏈接:兩個SQL語句:第一個:select tname , cname from teacher t , course c where t.tno = c.tno第二個:select tname , cname from teacher t inner join course c on t.tno=c.tno查詢學生所選的課程的分數(shù),要求跟上學生的姓名:select a.sno , sname , o , cname , score

21、 from student asc b , course c where a.sno = b.sno and o = o注意:第二個SQL語句是SQL 92/SQL 99的寫法,這種寫法叫做連接查詢中的內(nèi)連接形式外連接:包括:左外鏈接、右外連接、完全鏈接外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時、右表(右外連接時或兩個表(全外連接時中所有符合搜索條件的數(shù)據(jù)行。使用外連接需要一些關(guān)鍵字:left outer join on (左外連接right outer join on (右外連接full outer join on (完全連接的寫法例子:select *from 表1 le

22、ft outer join 表2 on 表1.列名=表2.列名creat table R(a varchar(5b varchar(5c varchar(5creat table S(c varchar(5d varchar(5left outer join的含義:除了滿足查詢條件的結(jié)果顯示出來,還需將left outer join左側(cè)表中沒有匹配的數(shù)據(jù)顯示出來外連接實戰(zhàn)應(yīng)用:1、 查詢所有同學的學號、姓名、選課數(shù)、總成績?nèi)绻麤]有選課的學生信息,是否也要打印出來作為統(tǒng)計數(shù)據(jù)select a.sno , sname , count(cno , sum(scorefrom student a le

23、ft outer join sc con a.sno = c.sno group by a.sno , sname2、查詢不同老師所教不同課程的平均分select t.tno , tname , o , avg(score from course cleft outer join sc on o = o group by o , t.tno , tnameright outer join的含義:除了滿足查詢條件的結(jié)果顯示出來,還需將right outer join右側(cè)表中沒有匹配的數(shù)據(jù)顯示出來1、 查詢所有同學的學號、姓名、選課數(shù)、總成績?nèi)绻麤]有選課的學生信息,是否也要打印出來作為統(tǒng)計數(shù)據(jù)se

24、lect a.sno , sname , count(cno , sum(score from sc c right outer join student aon a.sno = c.sno group by a.sno , sname2、查詢不同老師所教不同課程的平均分select t.tno , tname , o , avg(score from scright outer join course c on o = o group by o , t.tno , tnamefull outer join的含義:就是左外連接和有外鏈接結(jié)果的和select *from R full outer

25、 join on S on R.c = S.c連接操作中的ON (join_condition 子句指出連接條件,它由被連接表中的列和比較運算符、邏輯運算符等構(gòu)成。無論哪種連接都不能對text、ntext和image數(shù)據(jù)類型列進行直接連接,但可以對這三種列進行間接連接。例如:代碼:SELECT p1.pub_id,p2.pub_id,p1.pr_infoFROM pub_info AS p1 INNER JOIN pub_info AS p2ON DATALENGTH(p1.pr_info=DATALENGTH(p2.pr_info(一內(nèi)連接內(nèi)連接查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較

26、運算符比較被連接列的列值。SQL的子查詢1、 where子查詢select cno , score from sc where score > (select avg (score from scwhere子查詢后面的條件允許寫select語句,那么這個限制條件(“>”符號)后的查詢稱為子查詢。2、 from子查詢結(jié)構(gòu):select *from 表名1 , (select *from 表名2例如:查詢每個學生的課程、成績、總平均分select cno , score , b.cc from sc,(select avg(score as cc from sc bwhere sc.虛

27、表命名為b,查詢出來的平均分命名為cc在from關(guān)鍵字后面出現(xiàn)的查詢句子,我們可以讓他單獨的作為一張?zhí)摫怼?、 in子查詢它是要求查詢的結(jié)果在某幾個值里面select *from sc where score not in(70,90,80select *from course where cno in (c001,c002,c005in還可以應(yīng)用到子查詢中select *from sc where sno ABin (select sno from student where sno >= s0024、 any子查詢>any:大于最小的=any:就是關(guān)鍵字in的作用select

28、* | 列名1 , 列名 , 列名2.from 表名 where 列名 >any 比較條件(子查詢select * | 列名1 , 列名 , 列名2.from 表名 where 列名 select * | 列名1 , 列名 , 列名2.from 表名 where 列名 =any 比較條件(子查詢例如:查詢學生成績大于70,且出去里面最小的學號select distinct a.sno , sname from student a , sc bwhere a.sno = b.sno and b.sno >70and a.sno > any (select sno from sc

29、 where score > 705、 all子查詢語法格式:select * | 列名1 , 列名 , 列名2.from 表名 where 列名 >all 比較條件(子查詢select * | 列名1 , 列名 , 列名2.from 表名 where 列名 select * | 列名1 , 列名 , 列名2.from 表名 where 列名 =all 比較條件(子查詢>all:大于子查詢結(jié)果中最大的數(shù)據(jù)子查詢結(jié)果中 最小的 數(shù)據(jù) =all:沒有任何數(shù)據(jù)S elect * from student where sno > all(select sno from sc w

30、here score >70 6、 嵌套子查詢7、 exists子查詢允許查找特定條件的行,exists后面總是跟一個子查詢,只要只查詢返回了行,exists的值就為true。例:查詢返回在任何一次考試中分數(shù)低于40分得學生studentID和姓名select studentID , name from student s where exists(select studentID from studentExam e Where mark<40 and e.studentID = s.studentID;這里的基礎(chǔ)是一個相關(guān)子查詢返回分數(shù)低于40分得學生的studentID:se

31、lect studentID from studentExam e Where mark<40對student表中的每一行只執(zhí)行一次and e.studentID = s.studentID2.5 修改表:修改表的時候一般有如下操作:1、 修改表中的數(shù)據(jù)類型2、 為表添加列3、 ABC4、 為表添加約束5、 刪除表的約束第一種:為表添加列alter table 表名 add 列名 數(shù)據(jù)類型 約束alter table emp add e_address varchar(20 default成都 /聲明后面插入的數(shù)據(jù)的地址默認為成都,即約束為成都insert into emp (empno

32、,ename,depnovalues (1004,李明,2select * from emp /查詢emp表格中的數(shù)據(jù)第二種:刪除表中的列Alter table 表名 drop column 列名alter table emp drop column e_address注意:1、 如果在刪除表中列的時候,一定要注意此列是否含有約束對象。如果有約束對象,應(yīng)先刪除約束對象,再刪除表中所對應(yīng)的列。2、 刪除表中的約束:alter table 表名 drop constraint 約束名alter table emp drop constraint DF_emp_e_address_002007683

33、、 刪除約束的時候,約束名不要用單引號修飾。第三種:修改表中列的數(shù)據(jù)類型比如:增加varchar的長度alter table 表名 alter column e_name varchar(25第四種:為表添加約束作用:為了更好地保護數(shù)據(jù)庫中數(shù)據(jù)的完整性,存儲數(shù)據(jù)的一致性和正確性的一套機制。alter table 表名 add constraint 約束名 約束類型約束表達式約束的分類:在SQL Server2005中有6種約束:主鍵約束(primary key constraint)第1種主鍵約束定義:在創(chuàng)建表的時候定義主鍵約束:Creat table A_1(a_no int primary

34、 key,-此定義方式,系統(tǒng)會默認生成一個主鍵約束名稱a_name varchar(10-主鍵到底有什么用:-1、一個列被定義成主鍵后,此列中的數(shù)據(jù)不能為NULL-2、被定義成主鍵的列,其數(shù)據(jù)必須是唯一的insert into A_1 values (1,張三-第一個數(shù)字不能為nullinsert into A_1 values (2,李四-第一個數(shù)字不能和1重復(fù)第2種ABCcreat table A_2(a_no int ,a_name varchar(10,constraint PK_A_2 primary key (a_no第3種主鍵約束的定義create table A_3(a_no

35、int,a_name varchar(10 3.2 -如果創(chuàng)建的表中某一列想定義為一個主鍵, -必須滿足一個前提條件,即該列不能為空-如下:聲明表A_3的a_no列不為空alter table A_3 alter co a_no int not null-如下:修改表A_3的a_no列為主鍵約束alter table A_3 add constraint PK_A_3 primary key(a_no唯一性約束(unique constraint)ABC(check constraint) 如果要為表中的某一列定義一個規(guī)則,可以使用check約束。例如:為表A的a_sex定義只能存放“男”或“

36、女”creat table A(a_name varchar(10,a_sex varchar(2 constraint ck_sex check(a_sex=男 or a_sex=女3.3insert into A (a_name,a_sexvalues (李四,女-truevalues (李四,你-false列約束實例:creat table 會員(No smallint not null constraint memberNoChk-列約束是直接跟在后面check(No between 1 and 10000,name varchar(20 not null,address varcha

37、r(60 not null表約束實例:ABC(No smallint not null, name varchar(20 not null,address varchar(60 not null,constraint ChkmemberNo3.5check(No between 1 and 10000列約束與表約束的區(qū)別:列約束是直接跟在后面,而表約束則是表列項寫完后添加約束外部鍵約束(foreign key constraint)外鍵是指用于建立實體與實體之間關(guān)系,當添加、修改、刪除數(shù)據(jù)的時候,他可以保持兩張表的數(shù)據(jù)一致性。外鍵就是針對表與表的關(guān)系確立而設(shè)置的。作用:1、當插入數(shù)據(jù)的時候,如

38、果數(shù)據(jù)在父表中找不到,我們的外鍵就阻止你進行一個插入操作。2、保持兩張表的數(shù)據(jù)一致性外鍵的創(chuàng)建方式:-如何建立外鍵,即外鍵到底建立在哪張表中才是正確的-2、外鍵一定是建在子表中的,且該外鍵是父表中的主鍵的 那 -3、在創(chuàng)建表的時候就可以添加外鍵:將子表某列和父表主鍵關(guān)聯(lián)起來3.6alter table 子表 add constraint FK_C foreign key (子表某列 references 父表檢修密封鎖錠裝置檢查父表主鍵方法1,創(chuàng)建表的時候就定義例如:A和B表是一對多的關(guān)系,那么A表稱為父表,B表稱為子表。為了體現(xiàn)子父關(guān)系,可以使用外鍵。-emp,員工表-dep,部門表-員工表

39、 VS 部門表=> Create table emp(-部門信息(子表empno int primary key,-員工編號ename varchar(10,-員工姓名3.7create table dep(-部門信息(父表depno int primary key,-部門編號dname varchar(10-部門的名稱方法2,創(chuàng)建表的時候,自定義外鍵的名稱create table B(b_no int primary key,b_name varchar(10-B VS C 1:ncreate table C(c_no int primary key,c_name varchar(10

40、,b_no int,斷路器、隔離開關(guān)、接地開關(guān)的操作機構(gòu)檢查constraint FK_C foreign key (b_no references B (b_no 方法3,創(chuàng)建外鍵約束的方法create table B(b_no int primary key,b_name varchar(10create table C(c_no int primary key,c_name varchar(10,b_no int,alter table C add constraint FK_C foreign key (b_no references B (b_no默認約束:dafaultDefaul

41、t可以為表在插入數(shù)據(jù)的時候,指定一個默認的值creat table people(p_id int primary key,p_name varchar(20,p_sexABC男constraint ck_people check (p_sex=男or 9_sex = 女-檢查約束insert into people(p_id,p_name values (1,張三空值(NULL)約束1、 完整性約束,包括:primary key、unique完整性約束的基本語法格式:CONSTRAINT constraint_name(約束名<約束類型>,約束不指定名稱時,系統(tǒng)會給定一個名稱2、

42、 參照性約束,包括:foreign key3、 用戶自定義約束,包括:check default第五種:刪除表中的約束alter table 表名 drop constraint 約束名alter table emp drop constraint DF_emp_e_address_00200768刪除表:刪除表的操作可使用:drop table 表名在使用drop table 的時候,注意一點:如果有字符關(guān)系的表,且用了foreign key 進行約束,那么刪除父表的時候,數(shù)據(jù)庫會提示無法刪除。drop table people日期函數(shù):A、 獲取當前系統(tǒng)時間select getdate(B

43、、 在當前系統(tǒng)時間上增加兩天第一種:select getdate(+21.2 第二種:使用dateadd(函數(shù):它可以在向指定日期加上一段時間的基礎(chǔ)上,返回新的datetime值語法結(jié)構(gòu):dateadd(datepart , number , dateselect dateadd(DD , 2 , getdate(-當前時間加兩天; 其中:datepart:對日期做怎樣的增加,DD:天MM:月;YYYY:年;HH:小時斷路器的空氣壓縮系統(tǒng)檢查date:日期類型的數(shù)據(jù)C、 對兩個時間進行差值比較datediff(函數(shù)語法:datediff(datepart , start , enddatepa

44、rt:代表做差值的單位:年、月、日、時、分、秒start:日期類型數(shù)據(jù)end: 日期類型數(shù)據(jù)select datediff (DD , getdate( , getdate(+5D、 ABC語法結(jié)構(gòu):datepart(datepart , date例如:返回當前系統(tǒng)的時間年份select datepart(yyyy , getdate(-返回年份除了datepart可以返回指定日期的某一部分,還可以用convert函數(shù)完成相應(yīng)功能效果convert(函數(shù)是把日期轉(zhuǎn)換為新數(shù)據(jù)類型的通用函數(shù)語法:convert(數(shù)據(jù)類型,要轉(zhuǎn)換的數(shù)據(jù),轉(zhuǎn)換的格式=convert (datatype,data,st

45、yle例子1:當前日期格式轉(zhuǎn)化為dd/mm/yyselect convert (varchar (10 , getdate( , 103例子2:當前日期格式轉(zhuǎn)化為yyyy-mm-dd hh:mi:ss(24hselect convert ( varchar (30 , getdate( , 120字符函數(shù)1、 len:求字符串長度語法:len(字符串1.3 例子1、查詢學生表中姓名的長度select len(sname , sname from student例子2:查詢學生姓名是3個字的信息select *from student where len(sname = 32、SF6氣體泄漏檢查

46、及氣體分析語法:replace (String1 , String2 , String3String1:要搜索的字符串表達式;String1可以是字符數(shù)據(jù)或二進制數(shù)據(jù)String2:要查找的字符串表達式;ABC可以是字符數(shù)據(jù)或二進制數(shù)據(jù) String3:用于替換的字符串表達式;String3可以是字符數(shù)據(jù)或二進制數(shù)據(jù)select replace(abcdefg,abc,$- $defgselect sname replace(sname,sname,# from student where len(sname=3;3、 substring:求字符串子串函數(shù)1.4 語法:substring(ex

47、pression , start , lengthexpression:是字符串、二進制字符串、文本、圖像、列和包含列的表達式,不要使用包含數(shù)據(jù)函數(shù)的表達式start:指定字符串開始位置的整數(shù),start可以為bigint類型length:一個正整數(shù),指定要返回的expression的字符數(shù)或字節(jié)數(shù),如果length為負。則會返回錯誤,length可以是bigint類型例子1:返回從學生學號第2個字符到最后字符的信息Select sno , substring(sno , 2 , len(sno from studentupper:將字符串轉(zhuǎn)換為大寫語法:upper(字符串ABC例子:sele

48、ct upper(abcdef- ABCDEFlower:將字符串轉(zhuǎn)換為小寫語法:lower(字符串例子:select lower(ABCDEF-abcdef6、 1.5語法:rtrim(字符串例子:select rtrim(abcdef +d-abcdefd7、ltrim: 去掉字符串左邊的空格ABC語法:ltrim(字符串例子:select d + ltrim( abcdef -dabcdef7、 charindex:求字符串中某個字符在整個字符串中的位置語法:charindex(expression1 , expression2 ,start_location參數(shù)解釋:eSF6expre

49、ssion2:代表原串Start_location:查找的起始位置例子1:求abc中a在整個字符串中的位置select charindex(a , abc例子2:從第2位開始查找,a在abcabc中出現(xiàn)的位置1.7select charindex(a , abc電容器檢查視圖的創(chuàng)建方法1、 可視化創(chuàng)建方法(即在對象管理器中創(chuàng)建)2、 通過create view命令來創(chuàng)建視圖create view的語法格式:create view<視圖名> (<視圖屬性列表(列名)> with encryption as <子查詢>with check optionwith

50、encryption: SQL Server對包含create view語句的文本進行加密with check option:強制視圖上執(zhí)行的所有數(shù)據(jù)更新語句都必須符合子查詢中where子句的條件例子:創(chuàng)建能夠查看每個老師所教的課程的視圖create view t_view as select cno , cname , t . tno , tname from course s , teacher t where o = t.tno視圖是基于多張表導(dǎo)出的一張表select * from t_view高壓預(yù)防性試驗基本視圖的修改:如果要讓視圖進行一個插入操作,有時會影響基本的數(shù)據(jù),但需要注意一

51、下幾點內(nèi)容:1、 基于一張表的視圖,可以對試圖進行修改、更新、刪除數(shù)據(jù),則插入的數(shù)據(jù)會影響到基表create view t_student as select sno,sname,ssex from student where sno>s005ABCinsert into t_student values (s014,李曉波,男-會影響基表修改視圖中的數(shù)據(jù)update t_student set ssex=女 where sno = s014 -會影響基表2、 如果生成的視圖包含聚合函數(shù)、其它函數(shù)、distinct、group by、order by、into;不能插入、更新、刪除數(shù)據(jù)c

52、reate view t_student as select sno , ssex , count(ssex counfrom student group by sno , ssex3、 如果生成的視圖是由兩張表以上的查詢生成,不能進行插入。更新、刪除數(shù)據(jù)。Create view t_student as select a.sno , sname , o , cnameFrom student a, course b , sc c where a.sno = c.sno and o = o4、 如果生成的視圖,含有with check option ,一定要滿足查詢條件(where的條件)才能

53、進行插入、更新、刪除數(shù)據(jù)。create view t_student as select sno , sname , sexfrom student where sno<s005 with check optioninsert into t_student values (s015,劉洋,女-報錯sno需小于s005才行修改視圖:通過alter view 進行例如:創(chuàng)建視圖:create view v_t4 as select *from teacher Where tno > t004 with check option查看已建視圖創(chuàng)建腳本的命令sp_helptext t_t4會顯示創(chuàng)建腳本:create view v_t4 as select *from teacher Where tno > t004 with check option修改上面的視圖v_t4腳本為下:把with check option去掉alter view v_t4 as select *fr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論