sql中容易忽略的用法

    以下针对sqlserver数据库而言

   第一、 PERCENT

    w3cschool中不断的更新着新的知识点。有些感觉都没有这个概念,应该是几乎没有用在工作上的缘故吧如查询数据前面的一半:

    SELECT TOP 50 PERCENT * FROM Table_Name; //占比例(较少用)    SELECT TOP 50  * FROM Table_Name; //升序前50条数据(常用)

    同时可以添加where、in、具体的一些字段等条件对数据进行筛选。

     第二、通配符

    SELECT * FROM Table_Name WHERE Column_Name  LIKE 'L_n_';//_代表任意字符

    SELECT * FROM Table_Name  WHERE Column_Name  LIKE '[bsp]%';//以b或者s开头的字符匹配记录 非则是[!bsp]或者[^bsp]

    SELECT * FROM Table_Name  WHERE Column_Name LIKE '[a-c]%';//以a,b,c开头的字符匹配记录 

   第三 、Column_Name NOT IN 等价于 NOT Column_Name IN

   SELECT * FROM Table_Name    WHERE Column_Name NOT IN(A,B)    等价于  

   SELECT * FROM Table_Name    WHERE NOT Column_Name IN(A,B)

  第四、between and  和 not between and 其中包括了2个边界值在sql server中

  第五、如果列名称包含空格,要求使用双引号或方括号:字段名称跟关键字相同时用方括号[]防止冲突和误读,  full join(少用)

  第六、 INNER JOIN 等于JOIN 、 LEFT JOIN 等于LEFT OUTER JOIN、   RIGHT JOIN 等于 RIGHT OUTER JOIN、

            FULL OUTER JOIN等于FULL JOIN、   FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

  第七、union和union  all的区别[用于多个结果集的合并]:

            *多个结果集显示的时候总是显示第一个select的列名*

           union去除了重复的值,且按一定的默认规则进行排序,

           union all则没有去掉重复,且没有排序,要排序的话需要在后面的结果集上添加如:

           select name from tableA

           union all

           select name from tableB order by name desc

   第八、select into的用法:

       1.用于提取数据到一个新的表,如某些特殊的筛选数据好比:报表。 select */column  into newtable from oldtable  where ...

       2.拷贝数据到指定的数据库。select */column into newtable  in 'backup.mdb' from oldtable  inner join middle on ....

       3.创建新的空表。在where子句中添加不成立的表达式即可如 select */column  into  newtable from oldtable where 1=0

   第九、insert into select 的用法,复制数据到已存在的表

    insert into tableA(columnA,columnB) select columnA,columnB from tableB where...

   

原文地址:https://www.cnblogs.com/professional-NET/p/4771686.html