熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

MS SQL Server 數據庫語法

2013-11-15 14:45:00  來源: SQL Server 

  數據操作

  SELECT 從數據庫表中檢索數據行和列

  INSERT 向數據庫表添加新數據行

  DELETE 從數據庫表中刪除數據行

  UPDATE 更新數據庫表中的數據

  數據定義

  CREATE TABLE 創建一個數據庫表

  DROP TABLE 從數據庫中刪除表

  ALTER TABLE 修改數據庫表結構

  CREATE VIEW 創建一個視圖

  DROP VIEW 從數據庫中刪除視圖

  CREATE INDEX 為數據庫表創建一個索引

  DROP INDEX 從數據庫中刪除索引

  CREATE PROCEDURE 創建一個存儲過程

  DROP PROCEDURE 從數據庫中刪除存儲過程

  CREATE TRIGGER 創建一個觸發器

  DROP TRIGGER 從數據庫中刪除觸發器

  CREATE SCHEMA 向數據庫添加一個新模式

  DROP SCHEMA 從數據庫中刪除一個模式

  CREATE DOMAIN 創建一個數據值域

  ALTER DOMAIN 改變域定義

  DROP DOMAIN 從數據庫中刪除一個域

  數據控制

  GRANT 授予用戶訪問權限

  DENY 拒絕用戶訪問

  REVOKE 解除用戶訪問權限

  事務控制

  COMMIT 結束當前事務

  ROLLBACK 中止當前事務

  SET TRANSACTION 定義當前事務數據訪問特征

  程序化SQL

  DECLARE 為查詢設定游標

  EXPLAN 為查詢描述數據訪問計劃

  OPEN 檢索查詢結果打開一個游標

  FETCH 檢索一行查詢結果

  CLOSE 關閉游標

  PREPARE 為動態執行准備SQL 語句

  EXECUTE 動態地執行SQL 語句

  DESCRIBE 描述准備好的查詢

  局部變量

  declare @id char()

  set @id =

  select @id =

  全局變量

  必須以@@開頭

  IF ELSE

  declare @x int @y int @z int

  select @x = @y = @z=

  if @x > @y

  print x > y 打印字符串x > y

  else if @y > @z

  print y > z

  else print z > y

  CASE

  use pangu

  update employee

  set e_wage =

  case

  when job_level = ’’ then e_wage*

  when job_level = ’’ then e_wage*

  when job_level = ’’ then e_wage*

  else e_wage*

  end

  WHILE CONTINUE BREAK

  declare @x int @y int @c int

  select @x = @y=

  while @x <

  begin

  print @x 打印變量x 的值

  while @y <

  begin

  select @c = *@x + @y

  print @c 打印變量c 的值

  select @y = @y +

  end

  select @x = @x +

  select @y =

  end

  WAITFOR

  例 等待 小時 分零 秒後才執行SELECT 語句

  waitfor delay ’::

  select * from employee

  例 等到晚上 點零 分後才執行SELECT 語句

  waitfor time ’::

  select * from employee

  ***SELECT***

  select *(列名) from table_name(表名) where column_name operator value

  ex:(宿主)

  select * from stock_information where stockid = str(nid)

  stockname = str_name

  stockname like % find this %

  stockname like [azAZ]% ([]指定值的范圍)

  stockname like [^FM]% (^排除指定范圍)

   只能在使用like關鍵字的where子句中使用通配符)

  or stockpath = stock_path

  or stocknumber <

  and stockindex =

  not stock*** = man

  stocknumber between and

  stocknumber in()

  order by stockid desc(asc) 排序desc降序asc升序

  order by by列號

  stockname = (select stockname from stock_information where stockid = )

   子查詢

   除非能確保內層select只返回一個行的值

   否則應在外層where子句中用一個in限定符

  select *from table table

  where tableid *= tableid 左外部連接table中有的而table中沒有得以null表示

  tableid =* tableid 右外部連接

  select stockname from table

  union [all] union合並查詢結果集all保留重復行

  select stockname from table

  ***insert***

  insert into table_name (Stock_nameStock_number) value ("xxx""xxxx")

  value (select Stockname Stocknumber from Stock_table)value為select語句

  ***update***

  update table_name set Stockname = "xxx" [where Stockid = ]

  Stockname = default

  Stockname = null

  Stocknumber = Stockname +

  ***delete***

  delete from table_name where Stockid =

  truncate table_name 刪除表中所有行仍保持表的完整性

  drop table table_name 完全刪除表

  ***alter table*** 修改數據庫表結構

  alter table databaseownertable_name add column_name char() null

  sp_help table_name 顯示表已有特征

  create table table_name (name char() age smallint lname varchar())

  insert into table_name select 實現刪除列的方法(創建新表)

  alter table table_name drop constraint Stockname_default 刪除Stockname的default約束

  統計函數

  AVG 求平均值

  COUNT 統計數目

  MAX 求最大值

  MIN 求最小值

  SUM 求和

  AVG

  use pangu

  select avg(e_wage) as dept_avgWage

  from employee

  group by dept_id

  MAX

  求工資最高的員工姓名

  use pangu

  select e_name

  from employee

  where e_wage =

  (select max(e_wage)

  from employee)

  日期函數

  DAY() 函數返回date_expression_r 中的日期值

  MONTH() 函數返回date_expression_r 中的月份值

  YEAR() 函數返回date_expression_r 中的年份值

  DATEADD( )

  函數返回指定日期date 加上指定的額外日期間隔number 產生的新日期

  DATEDIFF( )

  函數返回兩個指定日期在datepart 方面的不同之處

  DATENAME( ) 函數以字符串的形式返回日期的指定部分

  DATEPART( ) 函數以整數值的形式返回日期的指定部分

  GETDATE() 函數以DATETIME 的缺省格式返回系統當前的日期和時間

  系統函數

  APP_NAME() 函數返回當前執行的應用程序的名稱

  COALESCE() 函數返回眾多表達式中第一個非NULL 表達式的值

  COL_LENGTH(<table_name> <column_name>) 函數返回表中指定字段的長度值

  COL_NAME( ) 函數返回表中指定字段的名稱即列名

  DATALENGTH() 函數返回數據表達式的數據的實際長度

  DB_ID([database_name]) 函數返回數據庫的編號

  DB_NAME(database_id) 函數返回數據庫的名稱

  HOST_ID() 函數返回服務器端計算機的名稱

  HOST_NAME() 函數返回服務器端計算機的名稱

  IDENTITY([ seed increment]) [AS column_name])

  IDENTITY() 函數只在SELECT INTO 語句中使用用於插入一個identity column列到新表中

  ISDATE() 函數判斷所給定的表達式是否為合理日期

  ISNULL( ) 函數將表達式中的NULL 值用指定值替換

  ISNUMERIC() 函數判斷所給定的表達式是否為合理的數值

  NEWID() 函數返回一個UNIQUEIDENTIFIER 類型的數值

  NULLIF( )

  NULLIF 函數在expression_r 與expression_r 相等時返回NULL 值若不相等時則返回expression_r


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22273.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.