以下针对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...