SQL高级

作者: icessun | 来源:发表于2018-07-21 22:30 被阅读7次

    规定返回要查询的个数 【top 子句】
    oracle中:select * from persons where ROWNUM < 5
    mySQL中:select * from persons LIMIT 5
    搜索指定列的指定模式【like操作符】
    select * from persons where city like ‘N%’ [查找以N开头的city,%N:表示以N结尾的city;%N%:表示city中包含N的;NOT LIKE:不包含]
    where子句中规定多个值【in操作符】
    select * from persons where name in ('icessun','icessun1',....)
    选取介于两个值之间的数据【between操作符】
    select * from persons where name [not] between 'icessun' and 'icessun1' (以字母顺序显示介于icessun 和icessun1 中的name数据)
    给列取别名,或者表取别名【as操作符】
    select name as a from persons
    select p.name from persons as p[也可以省略as]
    根据两个或者多个表中的数据,进行查询【join操作符】
    left join:即使右表没有匹配,也从左表返回所有行
    select * from persons left join jobs on persons.id = jobs.id order by persons.id
    left join 会从左表中返回所有匹配行,即使右表中没有匹配的数据
    right join:即使左表没有匹配,也从右表中返回所有行
    full join:只要其中一个表存在匹配,就返回匹配行
    join(inner join) :表中至少有一个匹配,则返回行
    select * from persons inner join jobs on persons.id = jobs.id order by persons.id
    内连接,相当于查询多个表,并且这几个表中都有关系,才能查询到结果
    合并两个或者多个select语句的结果集【UNION 操作符】
    union 内部的select语句必须拥有相同数量的列,列也必须要有相似的数据类型;每条select语句的列的顺序必须相同
    union 默认 不允许重复的值; union all 允许重复的值
    union 连接的结果集中的列,默认是第一个select语句中的列名
    select name from persons union (all) select name from persons1
    创建表的备份backup【select into 语句】
    从一个表中选取数据,然后插入到另一个表中,对当前记录的存档
    select * into 表1 from 表2
    in子句:可以向数据库里面拷贝一张表 select * into 表1 in 'backup.db' from 表2:把查询出来的数据插入到表1中,再把表1拷贝到backup数据库里面
    select * into 表1 from 表2 inner join 表3 on 表2.id = 表2.id order by 表2.id
    创建数据表:create table 表名称 (列名称1 数据类型1,列名称2 数据类型2,.....)
    创建数据库:create database my_db
    表中数据的约束:在创建表的时候,对表中数据的一种约束
    not null :不能为空
    一个数据表中,只能有一个主键 primary key,对列起作用;可以有多个unique key :唯一约束数据表中的每一条数据,和primary key 的作用差不多
    外键 foreign key :每一个表的外键指向其他表的主键 ,用来预防破坏表之间的链接动作
    创建视图【view】
    create view 视图名称 as select * from persons where persons.name = 'icessun';然后直接去操作这个视图:select * from 视图名称
    基于sql语句结果集的可视化表,总是显示最近sql语句执行的结果集数据
    删除视图:drop view 视图名称
    更新视图:重新执行一遍创建视图的代码就行
    日期函数【date】处理
    保证插入的日期格式和数据库中的日期格式匹配
    最好是保留日期的全部,而不是日期的一部分
    Is Null 和 Is Not Null
    null:可以作为未知或者不适用的占位符,不能和0比较,不等价,也就是说,不能用运算符号来比较,只能适用 is null 或者 is not null
    select * from persons where persons.age is not null
    可以直接在select 语句中进行四则运算
    select p.age*3 from persons p // 对所有的查询的age,都乘以3

    相关文章

      网友评论

          本文标题:SQL高级

          本文链接:https://www.haomeiwen.com/subject/lqpkmftx.html