去这个网站看看
http://www.microsoft.com/china/sql/default.asp

解决方案 »

  1.   

    up; tj_dns(愉快的登山者) 我的小总结:常用SQL语句一、序言
    1、 SQL(Structured Query Language):结构化查询语言,是一种查询和执行语言,而非发展成熟的编程语言。通用,但各种数据库对其支持不同,一般90%~100%。
    2、T-SQL(Tansact- Structured Query Language):SQL Server(SyBase)对SQL 进行了扩展(Oracle对其的扩展叫SQL*plus),增加了程序流控制结构(如IF~ELSE~等),局部变量(@variable_name)和允许DBA创建基于代码的对象(包括存储过程和触发器等功能。)各种数据库有所不同。
    3、T-SQL语句至少包括一个关键字(指示某个操作的词)
    4、SQL语句的执行过程:SQL语句提交给服务器,服务器对SQL语句进行整体语法分析、优化和编译,然后逐条语句执行。
    语法分析时,先检索每个命令和关键字的语法,再验证表和字段名的有效性。二、语句及事例
    1、 基本数据操纵SQL语句
    (1) 查询数据:SELET ID,Name FROM WS_User
    (2) 插入数据:INSERT INTO WS_User (ID,Name) VALUES(1, “JACK”)
    (3) 更新数据:UPDATE WS_User SET Name = “Tom” 
    (4) 删除数据:DELETE WS_User WHERE Name = “Tom”
    (5) 清空表格:TRUNCATE TABLE WS_User
    注:TRUNCATE TABLE tablename 等同 DELETE tablename 但要快。
    2、 扩展(按SQL命令关键字、按其他关键字<WHERE\ORDER BY>)
    利用SQL命令关键字和扩展关键字可以实现复杂的、功能强大的查询。
    (1) 查询数据(SELET):用于检索表和视图中的数据。T-SQL中,还可以检索系统中的信息并设置局部变量的值。(SELECT @@version、SELECT @VAR = “TOM JONE”、 SELECT ‘HELLO!’ 输出语句) SELECT [ ALL | DISTINCT ] 
            [ { TOP integer | TOP integer PERCENT } ] 
            < select_list >
        [ INTO new_table ] 
        [ FROM { < table_source > } [ ,...n ] ] 
        [ WHERE < search_condition > ] 
        [ GROUP BY [ ALL ] group_by_expression [ ,...n ] 
    [ HAVING < search_condition > ]
    [ ORDER BY order_expression [ ASC | DESC ] ] 
    1、 SELET * FROM WS_User
    SELECT UserName,unit FROM WS_User2、 SELECT UserName unit FROM WS_User  //将unit作为列UserName的列名,相当于
    SELECT UserName AS unit FROM WS_User
      

  2.   

    3、 SELET [ALL]DISTINCT UserName,unit FROM WS_User  //ALL是默认的,允许显示重复行,DISTINCT的作用范围是整个选择列表,而非单列。若有多列,确定多列的各种唯一组合。注:除非不得已,一般不要用distinct,因为它要强迫服务器执行额外的排序和处理步骤。4、 SELECT TOP 10 UserName,unit FROM WS_User5、 SELECT TOP 10 PERCENT UserName,unit FROM WS_User  //n必须是整数6、 SELECT * INTO test FROM WS_User  //将结果集重定向到新表中7、 SELECT * INTO test FROM WS_User WHERE 1=2  //创建一个已有表的空拷贝8、 SELECT * FROM WS_User WHERE unitcode =1000 
    [<、>、!=、<>、>=、<=、!<、!>]  OR[AND]9、 SELECT * FROM WS_User WHERE unitcode BETWEEN 1000 AND 1200 \\包含端点值,相当于unitcode>=1000 AND unitcode<=1200 SELECT * FROM WS_User WHERE unitcode NOT BETWEEN 1000 AND 1200 \\不包含端点值,相当于unitcode<1000 OR unitcode>1200
             
    10、 SELECT UserCode FROM WS_User WHERE UserCode [NOT] IN ('0004', '1002', '0007')11、 SELECT * FROM WS_User WHERE (UnitCode LIKE '100%') % 任意字符 SELECT * FROM authors WHERE (au_id LIKE '72_-%') _任意单个字符 SELECT * FROM authors WHERE (au_lname LIKE '[g]%') 
    [abc] 该位置只允许特定字符(例:”B[A-Za-z]ab”允许任意字符) SELECT * FROM authors WHERE (au_lname LIKE ' [^gwmdsr]%') 
    [^]任意一个未在方括号中列出的字符。注:通配符只有在LIKE关键字之后才有意义。否则当作普通实际字符处理。
            
    12、 SELECT * FROM WS_User ORDER BY unitcode,usercode  ASC [DESC]
    ASC 默认 升序 DESC 降序14、SELECT Unit, UserName FROM WS_User GROUP BY Unit, UserName //用于分类统计。例:SELECT type,avg(price) “avg”,sum(price) “sum” FROM titles WHERE type IN (“business”,”mod_cook”)结果:type avg sum
    business 13.73 54.92
    mod_cook 11.49           22.98
      

  3.   

    15、 SELECT type,avg(price) “avg”,sum(price) “sum” FROM titles WHERE type IN (“business”,”mod_cook”) HAVING avg(price)>$20  //可以用HAVING关键字过滤结果集,对函数过滤。16、 SELECT username,doclimit FROM ws_user,ws_unit  //多表查询字段名如不重复则不用加表名区别,否则必须加上。不加WHERE限制,返回所有可能组合(笛卡儿积)。一次可以连接16个表。为避免笛卡儿积在连接N个表时必须指定N-1个条件。17、 SELECT pub_name,title FROM title t,publishers p WHERE t.pub_id=p.pub_id group by pub_name //使用别名18、 SELECT unit FROM ws_unit WHERE unitcode = (SELECT unitcode FROM ws_user WHERE usercode=’ 0004’)  \\子查询,子查询必须只返回一行数据。19、 SELECT type,price FROM titles WHERE price < (SELECT avg(price) FROM titles)  \\在WHERE子句中使用聚集函数。(不能直接用)20、 SELECT city,state FROM authors UNION SELECT city,state FROM publishers  
    \\ 获得多个结果集的逻辑联合。自动删除重复行,union all强制返回所有行。结果集必须有相同的字段数、字段类型(不必严格相同)。


    (3) 插入数据(INSERT):为表加入数据 INSERT [ INTO] { table_name | view_name } 
           [ ( column_list ) ] 
             VALUES 
                ( {expression } [ ,...n] ) 
    1、 INSERT ws_user (username,unit) VALUES (“xue”,”soft-depart”)  //单行
    2、 INSERT INTO ws_user2
    (UserName, Unit, Password, UserType, EncryptCode, UnitCode, UserCode) 
    SELECT UserName, Unit, Password, UserType, EncryptCode, UnitCode, UserCode FROM WS_User  //多行
    (4) 更新数据(UPDATE):修改表中的值,无限制的UPDATE语句修改表中的每一行。一次只可以更新一个表,但可以一次修改多个字段。 UPDATE { table_name | view_name }
    SET{ column_name = { expression | DEFAULT | NULL }
          { [ FROM { < table_source > } [ ,...n ] ] 
    [ WHERE  < search_condition > ] } 1、 UPDATE ws_user SET username = “quan” WHERE username = “xue” //单列2、 UPDATE ws_user SET username = “quan” 
      Unit = “unit”