SQL总结(一)
来源:互联网 发布:function use php 编辑:程序博客网 时间:2024/06/07 17:33
SQL进阶
最近写sql比较多,以前没有详细总结过,现在把经常用的sql语法总结下。相关资料来自于W3School。
SQL TOP
top字句可以规定查询的返回条数。
SELECT TOP number|percent column_name(s)FROM table_name
这个经常用在分页中。可以规定具体的条数,也可以规定百分比。
具体条数:
SELECT TOP N * FROM TableA
百分比:
SELECT TOP N PERCENT * FROM TableA
SQL LIKE
like用来找到内容符合一定条件的返回结果。
//查找最后一个字符是L的SELECT * FROM table where column_name like '%L' //查找第一个字符是L的SELECT * FROM table where column_name like 'L%'//查找中间有字符是L的SELECT * FROM table where column_name like '%L%'
SQL 通配符
和其他语言的通配符一样,SQL的通配符也是用来匹配字段的,和like连用。
‘%’的用法介绍过了,下面总结下其他的通配符。
‘_’用来替代单个字符。
‘[ ]’作为存放多个单字符,可以理解为数组。
//查找以某个字符开头的,L结尾的内容SELECT * FROM TABLE where column_name like '_L'//匹配掉某些字符,可能查出D2D3d这种内容SELECT * FROM TABLE where column_name like 'D_D_d'//用多个单字符匹配SELECT * FROM TABLE where column_name like '[ABC]%'//匹配不包含某几个单字符的内容SELECT * FROM TABLE where column_name like '[!ABC]%'
总体来说SQL的通配符还是比较简单的,使用的时候根据情况自由发挥就好。
SQL IN
sql in相比于通配符,进一步规定了查询的内容。
SELECT * FROM TABLE where column_name in ('value1','value2','value3',...)
SQL Between
Between规定一个查询的范围。一般来说是between valueA and valueB,查询结果会包含两个边界值,但是某些数据库可能不包含边界值,所以在使用之前要了解所用数据库。
SELECT * FROM TABLE where column_name BETWEEN A and B
SQL Alias
SQL Alias 可以为表或者列指定一个别名,这样书写起来会很方便,尤其是对于表名或者列名较长的情况来说。
//表的别名SELECT * from TABLE as tb_a where tb_a.id = '1'//列的别名SELECT Username as name from TABLE
SQL Join
inner join
inner join 在表中存在至少一个匹配时,返回某一行。
//user通过join获取userinfo匹配select user.username as name,userinfo.u_school as schoolfrom user inner join userinfo on user.u_id = userinfo.u_id
left join
返回左边指定的行,不管右边的表有没有内容。
//user通过left join获取userinfo匹配select user.username as name,userinfo.u_school as schoolfrom user left join userinfo on user.u_id = userinfo.u_id
right join
返回右边指定的行,不管左边的表有没有内容。不再举例。
full join
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
SQL UNION
SQL UNION将两个查询的结果合并,但是这两个查询的结果必须拥有相同数量的列。列也必须拥有相似的数据类型。
SELECT column_name(s) FROM table_name1UNION //一般不允许重复,如果要求显示重复值,可以用UNION ALLSELECT column_name(s) FROM table_name2
SQL SELECT INTO
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
SELECT *INTO Persons_backupFROM Persons
在mysql中不支持该用法,所以可以这样写:
CREATE TABLE `user_backup` (SELECT `user`.username FROM `user`)
SQL ALTER TABLE
SQL ALTER TABLE 用于在已有的表中修改数据。
//在user表中新建user_moreinfo列ALTER TABLE user ADD user_moreinfo VARCHAR(20)//在user表中删除user_moreinfo列
- 常用SQL总结(一)
- SQL 命令总结(一)
- SQL总结(一)
- SQL总结(一)
- 总结一波sql
- SQL注射总结(一)
- SQL学习总结(一)
- SQL语句写法总结一
- 常用SQL语句总结<一>
- SQL 知识总结(一)
- sql练习总结(一)
- SQL Profile 总结(一)
- SQL Profile 总结(一)
- 数据库SQL优化总结一
- sql server学习总结一
- SQL Server知识总结一
- SQL语句总结一(MS SQL Server)
- SQL总结(一)SQL的分类
- CDS 未对齐访问异常 【2】
- 抓包软件fiddler
- ArrayList
- collectd types.db
- SQL Server系列(2)--T-SQL语句
- SQL总结(一)
- VS中配置通用的VC++目录和lib目录
- 我为什么没有分享Java学习方法
- Android AutoLayout全新的适配方式 堪称适配终结者
- 1013 数素数 (20)
- apache的poi读写excel
- 如何在SpringMVC中获取request对象
- 数字视频编码概述(熵编码/Huffman编码)
- JQ---Table隔行变色