欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

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

      時間:2019-05-13 09:12:44下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《SQL結(jié)構(gòu)化查詢語句》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《SQL結(jié)構(gòu)化查詢語句》。

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

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

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

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

      刪除表:Droptable表名

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

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

      三、查詢功能

      SELECT*FROM表名

      WHERE條件

      ORDERBY 字段排序

      GROUPBY 字段分組

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

      INTOTABLE表

      INTOCURSOR臨時表

      INTOARRAY數(shù)組

      第二篇:SQL查詢語句

      SQL查詢語句

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

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

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

      1、查詢(顯示)記錄

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

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

      into table(dbf)文件名;

      into cursor 臨時表名;

      into array 數(shù)組名;

      to file 文件名;

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

      group by 字段名 having 條件;

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

      Select * from 職工 where 工資=(select 工資 from 職工 where 職工號=”E4”)職工(倉庫號C(10),職工號 C(10),工資 N(10,2))

      顯示所有工資大于1500的員工的倉庫號、職工號及所在的城市

      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 職工號!=“E4” AND 工資=(select 工資 from 職工 where 職工號=“E4”)

      alter table 表名

      1)增加字段

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

      2)刪除字段

      alter table student drop colum 身份證號

      3)修改字段名

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

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

      alter table student alter 成績 set check 成績>=0 and 成績<=100;

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

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

      alter table student alter 成績 drop check 注意:

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

      1)同時打開兩個表

      select 倉庫.倉庫號,城市,職工號,工資 from 倉庫,職工;

      where 職工.倉庫號=倉庫.倉庫號 and 工資=1250

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

      接)

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

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

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

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

      成績表(score)

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

      Select sum(成績)from score group by 學(xué)號

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

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

      order by 字段名列表 asc|desc;

      into table(dbf)表名;

      into array 數(shù)組名;

      to file 文件名;

      into cursor 臨時表名

      題目練習(xí)

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

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

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

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

      insert into gongzi from array xy

      第三篇:Sql語句查詢

      sql語句多表連接查詢

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

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

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

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

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

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

      2.外連接查詢

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

      l左外連接LEFT OUTER JOIN

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

      l右外連接RIGHT OUTER JOIN

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

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

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

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

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

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

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

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

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

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

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

      drop database databaseName

      go

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

      drop database dbname 備份sql server

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

      USE master

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

      ---開始備份

      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ù)庫名

      go

      select * into 目的數(shù)據(jù)庫名.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--開始值

      increment by 1--每次加幾

      cache 20;刪除新表

      drop table tabname 增加一個列

      Alter table tabname add colname coltype 刪除一個列

      Alter table tabname drop column colname 添加主鍵

      Alter table tabname add primary key(col)

      說明:刪除主鍵: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 簡單基本的sql語句

      (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 條件表達式”

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

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

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

      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 目標數(shù)據(jù)表 select * from 源數(shù)據(jù)表”(把源數(shù)據(jù)表的記錄添加到目標數(shù)據(jù)表)

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

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

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

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

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

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

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

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

      set rs=conn.excute(sql)

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

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

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

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

      幾個高級查詢運算詞

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

      B: EXCEPT 運算符

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

      C:INTERSECT 運算符

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

      注:使用運算詞的幾個查詢結(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:

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

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

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

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

      begin

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

      end 判斷存儲過程是否存在

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

      dropprocedure[存儲過程名] 判斷臨時表是否存在

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

      droptable#臨時表名 判斷視圖是否存在

      --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 = 默認值或DEFAULT約束 F = FOREIGNKEY約束 L = 日志 FN = 標量函數(shù) IF = 內(nèi)嵌表函數(shù) P = 存儲過程 PK = PRIMARYKEY約束(類型是K)RF = 復(fù)制篩選存儲過程 S = 系統(tǒng)表 TF = 表函數(shù) TR = 觸發(fā)器U = 用戶表 UQ = UNIQUE約束(類型是K)V = 視圖 X = 擴展存儲過程 */ 判斷列是否存在

      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ù)庫中對象

      SELECT* FROM sysobjects WHEREname='對象名'

      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 目標表名:b)(Access可用)

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

      (具體數(shù)據(jù)使用絕對路徑)(Access可用)insert into b(x, y, z)select d,e,f from a in ‘具體數(shù)據(jù)庫’ 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)顯示文章最后時間

      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ù)范圍時包括了邊界值,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’)

      刪除主表沒有的信息

      兩張關(guān)聯(lián)表delete from table1 where not exists(select * from table2 where table1.field1=table2.field1 四表聯(liá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開始時間,getdate())>5 一條sql 搞定數(shù)據(jù)庫頁

      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ù)中對應(yīng)的a最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷產(chǎn)品分析,按科目成績排名,等等。)

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

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

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

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

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

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

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

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

      列示type、vender、pcs字段,以type字段排列,case可以方便地實現(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

      光盤B 2

      光盤A 2

      手機B 3

      手機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)

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

      編輯本段技巧 1=1,1=2的使用 在SQL語句組合時用的較多

      ?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

      我們可以直接寫成

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

      --重建索引

      DBCC REINDEX

      DBCC INDEXDEFRAG

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

      DBCC SHRINKDB

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

      dbcc shrinkdatabase(dbname)

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

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

      go 檢查備份集

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

      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ù)庫名

      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 更改某個表 exec sp_changeobjectowner 'tablename','dbo' 存儲更改全部表

      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)寫入數(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)對于基本表的約束分為列約束和表約束

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

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

      表級約束有四種:主鍵、外鍵、唯

      一、檢查

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

      表約束與列定義相互獨立,不包括在列定義中,通常用于對多個列一起進行約束,與列定義用’,’分隔,定義表約束時必須指出要約束的那些列的名稱。完整性約束的基本語法格式為:

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

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

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

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

      CREATE TABLE table_name

      ({-------列級約束定義

      |column_name AS computed_column_expression-------計算列定義

      |------表級約束定義

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      每個CREATE TABLE語句中每個字段只能定義一個檢查約束。

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

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

      如果定義的缺省值長于其對應(yīng)字段的允許長度,那么輸入到表中的缺省值將被截斷。不能加入到帶有IDENTITY屬性或者數(shù)據(jù)類型為timestamp的字段上。如果字段定義為用戶定義的數(shù)據(jù)類型,而且有一個缺省綁定到這個數(shù)據(jù)類型上,則不允許該字段有缺省約束。5.外部鍵約束

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

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

      CONSTRAINT <約束名>] FOREIGN KEY

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

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

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

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

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

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

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

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

      第五篇:SQL 結(jié)構(gòu)化查詢語言速學(xué)寶典

      第二章

      create database db_sqlserver2--創(chuàng)建db_sqlserver2數(shù)據(jù)庫on

      (name= db_sqlserver2_data,--文件的邏輯名稱

      filename='e:mydatadb_sqlserver2_data.mdf',--數(shù)據(jù)庫文件要保存路徑及文件名

      size=4,--文件的大小

      maxsize=10,--文件可增大到的最大大小filegrowth=10%--文件的自動增量)

      log on

      (name= db_sqlserver2_log,filename='e:mydatadb_sqlserver12_log.ldf',size=1,maxsize=6,filegrowth=1)

      create database db_sqlserver3

      on

      (name=db_sqlserver3_data,--第一個數(shù)據(jù)文件的邏輯名稱filename='e:mydatadb_sqlserver31_data.mdf',size=4,maxsize=10,filegrowth=10%),(name=Mydatabase22_data,--第二個數(shù)據(jù)文件的邏輯名稱filename='e:mydatadb_sqlserver32_data.mdf',size=3,maxsize=10,filegrowth=1)

      log on

      (name=Mydatabase21_log,--第一個日志文件的邏輯名稱filename='e:mydatadb_sqlserver31_log.ldf',size=1,maxsize=6,filegrowth=1),(name=Mydatabase22_log,--第二個日志文件的邏輯名稱filename='e:mydatadb_sqlserver32_log.ldf',size=1,maxsize=6,filegrowth=10%)

      下載SQL結(jié)構(gòu)化查詢語句word格式文檔
      下載SQL結(jié)構(gòu)化查詢語句.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


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

      相關(guān)范文推薦

        無憂SQL語句(除查詢)

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

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

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

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

        問題描述: 為管理崗位業(yè)務(wù)培訓(xùn)信息,建立3個表: S (SID,SNAME,SDEPT,SEX,AGE) SID,SNAME,SDEPT,SEX,AGE 分別代表學(xué)號、學(xué)員姓名、所屬部門、學(xué)員性別、學(xué)員年齡 C (CID,CNAME......

        sql常用語句

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

        SQL語句大全

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

        SQL語句

        SQL語句,用友的SQL2000,通過查詢管理器寫的語句 1、查詢 2、修改 3、刪除 4、插入表名:users 包含字段:id,sname,sage 查詢 select * from users查詢users表中所有數(shù)據(jù) select i......

        常用SQL語句

        一、創(chuàng)建數(shù)據(jù)庫 create database 數(shù)據(jù)庫名 on( name='數(shù)據(jù)庫名_data', size='數(shù)據(jù)庫文件大小', maxsize='數(shù)據(jù)庫文件最大值', filegrowth=5%,//數(shù)據(jù)庫文件的增長率 filename......

        sql語句

        簡單基本的sql語句 幾個簡單的基本的sql語句 選擇:select * from table1 where范圍 插入:insert into table1(field1,field2) values(value1,value2) 刪除:delete from table1......