Happy New Year (*^__^*)

          SQL語法大全

          --數(shù)據(jù)操作
          SELECT --從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列
          INSERT --向數(shù)據(jù)庫表添加新數(shù)據(jù)行
          DELETE --從數(shù)據(jù)庫表中刪除數(shù)據(jù)行
          UPDATE --更新數(shù)據(jù)庫表中的數(shù)據(jù)
          --數(shù)據(jù)定義
          CREATE TABLE --創(chuàng)建一個數(shù)據(jù)庫表
          DROP TABLE --從數(shù)據(jù)庫中刪除表
          ALTER TABLE --修改數(shù)據(jù)庫表結構
          CREATE VIEW --創(chuàng)建一個視圖
          DROP VIEW --從數(shù)據(jù)庫中刪除視圖
          CREATE INDEX --為數(shù)據(jù)庫表創(chuàng)建一個索引
          DROP INDEX --從數(shù)據(jù)庫中刪除索引
          CREATE PROCEDURE --創(chuàng)建一個存儲過程
          DROP PROCEDURE --從數(shù)據(jù)庫中刪除存儲過程
          CREATE TRIGGER --創(chuàng)建一個觸發(fā)器
          DROP TRIGGER --從數(shù)據(jù)庫中刪除觸發(fā)器
          CREATE SCHEMA --向數(shù)據(jù)庫添加一個新模式
          DROP SCHEMA --從數(shù)據(jù)庫中刪除一個模式
          CREATE DOMAIN --創(chuàng)建一個數(shù)據(jù)值域
          ALTER DOMAIN --改變域定義
          DROP DOMAIN --從數(shù)據(jù)庫中刪除一個域
          --數(shù)據(jù)控制
          GRANT --授予用戶訪問權限
          DENY --拒絕用戶訪問
          REVOKE --解除用戶訪問權限
          --事務控制
          COMMIT --結束當前事務
          ROLLBACK --中止當前事務
          SET TRANSACTION --定義當前事務數(shù)據(jù)訪問特征
          --程序化SQL
          DECLARE --為查詢設定游標
          EXPLAN --為查詢描述數(shù)據(jù)訪問計劃
          OPEN --檢索查詢結果打開一個游標
          FETCH --檢索一行查詢結果
          CLOSE --關閉游標
          PREPARE --為動態(tài)執(zhí)行準備SQL 語句
          EXECUTE --動態(tài)地執(zhí)行SQL 語句
          DESCRIBE --描述準備好的查詢
          ---局部變量
          declare @id char(10)
          --set @id = ’10010001’
          select @id = ’10010001’

          ---全局變量
          ---必須以@@開頭

          --IF ELSE
          declare @x int @y int @z int
          select @x = 1 @y = 2 @z=3
          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 = ’1’ then e_wage*1.08
          when job_level = ’2’ then e_wage*1.07
          when job_level = ’3’ then e_wage*1.06
          else e_wage*1.05
          end

          --WHILE CONTINUE BREAK
          declare @x int @y int @c int
          select @x = 1 @y=1
          while @x < 3
          begin
          print @x --打印變量x 的值
          while @y < 3
          begin
          select @c = 100*@x + @y
          print @c --打印變量c 的值
          select @y = @y + 1
          end
          select @x = @x + 1
          select @y = 1
          end

          --WAITFOR
          --例 等待1 小時2 分零3 秒后才執(zhí)行SELECT 語句
          waitfor delay ’01:02:03’
          select * from employee
          --例 等到晚上11 點零8 分后才執(zhí)行SELECT 語句
          waitfor time ’23:08:00’
          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 ’[a-zA-Z]%’ --------- ([]指定值的范圍)
          stockname like ’[^F-M]%’ --------- (^排除指定范圍)
          --------- 只能在使用like關鍵字的where子句中使用通配符)
          or stockpath = ’stock_path’
          or stocknumber < 1000
          and stockindex = 24
          not stock*** = ’man’
          stocknumber between 20 and 100
          stocknumber in(10,20,30)
          order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
          order by 1,2 --------- by列號
          stockname = (select stockname from stock_information where stockid = 4)
          --------- 子查詢
          --------- 除非能確保內層select只返回一個行的值,
          --------- 否則應在外層where子句中用一個in限定符
          select distinct column_name form table_name --------- distinct指定檢索獨有的列值,不重復
          select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
          select stockname , "stocknumber" = count(*) from table_name group by stockname
          --------- group by 將表按行分組,指定列中有相同的值
          having count(*) = 2 --------- having選定指定的組

          select *
          from table1, table2
          where table1.id *= table2.id -------- 左外部連接,table1中有的而table2中沒有得以null表示
          table1.id =* table2.id -------- 右外部連接

          select stockname from table1
          union [all] ----- union合并查詢結果集,all-保留重復行
          select stockname from table2

          ***insert***

          insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
          value (select Stockname , Stocknumber from Stock_table2)---value為select語句

          ***update***

          update table_name set Stockname = "xxx" [where Stockid = 3]
          Stockname = default
          Stockname = null
          Stocknumber = Stockname + 4

          ***delete***

          delete from table_name where Stockid = 3
          truncate table_name ----------- 刪除表中所有行,仍保持表的完整性
          drop table table_name --------------- 完全刪除表

          ***alter table*** --- 修改數(shù)據(jù)庫表結構

          alter table database.owner.table_name add column_name char(2) null .....
          sp_help table_name ---- 顯示表已有特征
          create table table_name (name char(20), age smallint, lname varchar(30))
          insert into table_name select ......... ----- 實現(xiàn)刪除列的方法(創(chuàng)建新表)
          alter table table_name drop constraint Stockname_default ---- 刪除Stockname的default約束

          ***function(/*常用函數(shù)*/)***

          ----統(tǒng)計函數(shù)----
          AVG --求平均值
          COUNT --統(tǒng)計數(shù)目
          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)

          --STDEV()
          --STDEV()函數(shù)返回表達式中所有數(shù)據(jù)的標準差

          --STDEVP()
          --STDEVP()函數(shù)返回總體標準差

          --VAR()
          --VAR()函數(shù)返回表達式中所有值的統(tǒng)計變異數(shù)

          --VARP()
          --VARP()函數(shù)返回總體變異數(shù)

          ----算術函數(shù)----

          /***三角函數(shù)***/
          SIN(float_expression) --返回以弧度表示的角的正弦
          COS(float_expression) --返回以弧度表示的角的余弦
          TAN(float_expression) --返回以弧度表示的角的正切
          COT(float_expression) --返回以弧度表示的角的余切
          /***反三角函數(shù)***/
          ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
          ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
          ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
          ATAN2(float_expression1,float_expression2)
          --返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
          DEGREES(numeric_expression)
          --把弧度轉換為角度返回與表達式相同的數(shù)據(jù)類型可為
          --INTEGER/MONEY/REAL/FLOAT 類型
          RADIANS(numeric_expression) --把角度轉換為弧度返回與表達式相同的數(shù)據(jù)類型可為
          --INTEGER/MONEY/REAL/FLOAT 類型
          EXP(float_expression) --返回表達式的指數(shù)值
          LOG(float_expression) --返回表達式的自然對數(shù)值
          LOG10(float_expression)--返回表達式的以10 為底的對數(shù)值
          SQRT(float_expression) --返回表達式的平方根
          /***取近似值函數(shù)***/
          CEILING(numeric_expression) --返回>=表達式的最小整數(shù)返回的數(shù)據(jù)類型與表達式相同可為
          --INTEGER/MONEY/REAL/FLOAT 類型
          FLOOR(numeric_expression) --返回<=表達式的最小整數(shù)返回的數(shù)據(jù)類型與表達式相同可為
          --INTEGER/MONEY/REAL/FLOAT 類型
          ROUND(numeric_expression) --返回以integer_expression 為精度的四舍五入值返回的數(shù)據(jù)
          --類型與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型
          ABS(numeric_expression) --返回表達式的絕對值返回的數(shù)據(jù)類型與表達式相同可為
          --INTEGER/MONEY/REAL/FLOAT 類型
          SIGN(numeric_expression) --測試參數(shù)的正負號返回0 零值1 正數(shù)或-1 負數(shù)返回的數(shù)據(jù)類型
          --與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型
          PI() --返回值為π 即3.1415926535897936
          RAND([integer_expression]) --用任選的[integer_expression]做種子值得出0-1 間的隨機浮點數(shù)

          ----字符串函數(shù)----
          ASCII() --函數(shù)返回字符表達式最左端字符的ASCII 碼值
          CHAR() --函數(shù)用于將ASCII 碼轉換為字符
          --如果沒有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數(shù)會返回一個NULL 值
          LOWER() --函數(shù)把字符串全部轉換為小寫
          UPPER() --函數(shù)把字符串全部轉換為大寫
          STR() --函數(shù)把數(shù)值型數(shù)據(jù)轉換為字符型數(shù)據(jù)
          LTRIM() --函數(shù)把字符串頭部的空格去掉
          RTRIM() --函數(shù)把字符串尾部的空格去掉
          LEFT(),RIGHT(),SUBSTRING() --函數(shù)返回部分字符串
          CHARINDEX(),PATINDEX() --函數(shù)返回字符串中某個指定的子串出現(xiàn)的開始位置
          SOUNDEX() --函數(shù)返回一個四位字符碼
          --SOUNDEX函數(shù)可用來查找聲音相似的字符串但SOUNDEX函數(shù)對數(shù)字和漢字均只返回0 值
          DIFFERENCE() --函數(shù)返回由SOUNDEX 函數(shù)返回的兩個字符表達式的值的差異
          --0 兩個SOUNDEX 函數(shù)返回值的第一個字符不同
          --1 兩個SOUNDEX 函數(shù)返回值的第一個字符相同
          --2 兩個SOUNDEX 函數(shù)返回值的第一二個字符相同
          --3 兩個SOUNDEX 函數(shù)返回值的第一二三個字符相同
          --4 兩個SOUNDEX 函數(shù)返回值完全相同

          QUOTENAME() --函數(shù)返回被特定字符括起來的字符串
          /*select quotename(’abc’, ’{’) quotename(’abc’)
          運行結果如下
          ----------------------------------{
          {abc} [abc]*/

          REPLICATE() --函數(shù)返回一個重復character_expression 指定次數(shù)的字符串
          /*select replicate(’abc’, 3) replicate( ’abc’, -2)
          運行結果如下
          ----------- -----------
          abcabcabc NULL*/

          REVERSE() --函數(shù)將指定的字符串的字符排列順序顛倒
          REPLACE() --函數(shù)返回被替換了指定子串的字符串
          /*select replace(’abc123g’, ’123’, ’def’)
          運行結果如下
          ----------- -----------
          abcdefg*/

          SPACE() --函數(shù)返回一個有指定長度的空白字符串
          STUFF() --函數(shù)用另一子串替換字符串指定位置長度的子串

          ----數(shù)據(jù)類型轉換函數(shù)----
          CAST() 函數(shù)語法如下
          CAST() (<expression> AS <data_ type>[ length ])
          CONVERT() 函數(shù)語法如下
          CONVERT() (<data_ type>[ length ], <expression> [, style])

          select cast(100+99 as char) convert(varchar(12), getdate())
          運行結果如下
          ------------------------------ ------------
          199 Jan 15 2000

          ----日期函數(shù)----
          DAY() --函數(shù)返回date_expression 中的日期值
          MONTH() --函數(shù)返回date_expression 中的月份值
          YEAR() --函數(shù)返回date_expression 中的年份值
          DATEADD(<datepart> ,<number> ,<date>)
          --函數(shù)返回指定日期date 加上指定的額外日期間隔number 產生的新日期
          DATEDIFF(<datepart> ,<number> ,<date>)
          --函數(shù)返回兩個指定日期在datepart 方面的不同之處
          DATENAME(<datepart> , <date>) --函數(shù)以字符串的形式返回日期的指定部分
          DATEPART(<datepart> , <date>) --函數(shù)以整數(shù)值的形式返回日期的指定部分
          GETDATE() --函數(shù)以DATETIME 的缺省格式返回系統(tǒng)當前的日期和時間

          ----系統(tǒng)函數(shù)----
          APP_NAME() --函數(shù)返回當前執(zhí)行的應用程序的名稱
          COALESCE() --函數(shù)返回眾多表達式中第一個非NULL 表達式的值
          COL_LENGTH(<’table_name’>, <’column_name’>) --函數(shù)返回表中指定字段的長度值
          COL_NAME(<table_id>, <column_id>) --函數(shù)返回表中指定字段的名稱即列名
          DATALENGTH() --函數(shù)返回數(shù)據(jù)表達式的數(shù)據(jù)的實際長度
          DB_ID([’database_name’]) --函數(shù)返回數(shù)據(jù)庫的編號
          DB_NAME(database_id) --函數(shù)返回數(shù)據(jù)庫的名稱
          HOST_ID() --函數(shù)返回服務器端計算機的名稱
          HOST_NAME() --函數(shù)返回服務器端計算機的名稱
          IDENTITY(<data_type>[, seed increment]) [AS column_name])
          --IDENTITY() 函數(shù)只在SELECT INTO 語句中使用用于插入一個identity column列到新表中
          /*select identity(int, 1, 1) as column_name
          into newtable
          from oldtable*/
          ISDATE() --函數(shù)判斷所給定的表達式是否為合理日期
          ISNULL(<check_expression>, <replacement_value>) --函數(shù)將表達式中的NULL 值用指定值替換
          ISNUMERIC() --函數(shù)判斷所給定的表達式是否為合理的數(shù)值
          NEWID() --函數(shù)返回一個UNIQUEIDENTIFIER 類型的數(shù)值
          NULLIF(<expression1>, <expression2>)
          --NULLIF 函數(shù)在expression1 與expression2 相等時返回NULL 值若不相等時則返回expression1 的值

          sql中的保留字

          action add aggregate all
          alter after and as
          asc avg avg_row_length auto_increment
          between bigint bit binary
          blob bool both by
          cascade case char character
          change check checksum column
          columns comment constraint create
          cross current_date current_time current_timestamp
          data database databases date
          datetime day day_hour day_minute
          day_second dayofmonth dayofweek dayofyear
          dec decimal default delayed
          delay_key_write delete desc describe
          distinct distinctrow double drop
          end else escape escaped
          enclosed enum explain exists
          fields file first float
          float4 float8 flush foreign
          from for full function
          global grant grants group
          having heap high_priority hour
          hour_minute hour_second hosts identified
          ignore in index infile
          inner insert insert_id int
          integer interval int1 int2
          int3 int4 int8 into
          if is isam join
          key keys kill last_insert_id
          leading left length like
          lines limit load local
          lock logs long longblob
          longtext low_priority max max_rows
          match mediumblob mediumtext mediumint
          middleint min_rows minute minute_second
          modify month monthname myisam
          natural numeric no not
          null on optimize option
          optionally or order outer
          outfile pack_keys partial password
          precision primary procedure process
          processlist privileges read real
          references reload regexp rename
          replace restrict returns revoke
          rlike row rows second
          select set show shutdown
          smallint soname sql_big_tables sql_big_selects
          sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
          sql_small_result sql_big_result sql_warnings straight_join
          starting status string table
          tables temporary terminated text
          then time timestamp tinyblob
          tinytext tinyint trailing to
          type use using unique
          unlock unsigned update usage
          values varchar variables varying
          varbinary with write when
          where year year_month zerofill

          posted on 2007-12-27 16:39 cyanbomb 閱讀(371) 評論(2)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          Feedback

          # re: SQL語法大全 2007-12-31 16:54 拉拉

          請問:從表中刪除指定列,在界面的表中要立即顯示刪除,且同時數(shù)據(jù)庫中的相應列也要刪除。要怎樣實現(xiàn)?  回復  更多評論   

          # re: SQL語法大全 2008-01-04 10:54 cyanbomb

          刪除列應該為: ALTER TABLE 表名 DROP COLUMN 列名
          為什么要在編程的時候動態(tài)刪除一列?數(shù)據(jù)結構設計的時候就應該考慮到了吧?
          刪除一列可能造成很多后續(xù)問題,比如關聯(lián)等問題。  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 鄯善县| 团风县| 靖宇县| 高清| 彭泽县| 无极县| 凭祥市| 合肥市| 前郭尔| 周口市| 永胜县| 黄骅市| 望江县| 吴江市| 中方县| 江阴市| 新巴尔虎左旗| 岑溪市| 汉阴县| 信阳市| 中方县| 方城县| 云和县| 隆子县| 新建县| 屯门区| 钦州市| 隆化县| 北海市| 青龙| 当阳市| 屯门区| 抚远县| 合作市| 林西县| 广昌县| 四川省| 临汾市| 蒙阴县| 桃源县| 上蔡县|