数据库系统原理之SQL(四)


1. 数据更新

插入数据

  1. INSERT…VALUES语句

    #插入多条数据
    insert [into] table_name (column_name,...) values ({expr | DEFAULT},...),{....}
    expr:可以是常量、变量、表达式、也可以是null
    DEFAULT:该列的默认值
  2. INSERT…SET语句

    #插入一条数据
    insert [into] table_name set column_name="张三",column_age=12
  3. INSERT…SELECT语句

    #插入子查询出的数据,子查询的字段数量数据类型要和插入表的字段一致
    insert [into] table_name [(column_name,...)] select
  • 删除数据

    DELETE FROM table_name [WHERE where_condition] [ORDER BY …] [LIMIT row_count]
  • 修改数据

    #修改数据,字段=值,条件,
    UPDATE table_name SET column_name={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}]
    [WHERE where_condition] [ORDER BY …] [LIMIT row_count]
  • 查询数据

    1. SELECT 语句

      SELECT [ ALL | DISTINCT | DISTINCTROW ]
      select_expr[,expr...] -- 需要查询的字段
      FROM table_name -- 查询的表,数据来源
      [where where_condition] -- 查询条件
      [GROUP BY {column_name | expr | position } -- 对查询的数据分组,
      [ASC|DeSC],...[WITH ROLLUP]]
      [HAVING where_condition] -- 指定组的选择条件
      [ORDER BY {column_name | expr | position } -- 对查询的结果进行排序
      [ASC | DESC ]...]
      [LIMIT {[offset row_count | row_count OFFSET offset }] -- 限制行数
    2. 别名

      • 用select查询的时候可以为查询的字段设置别名,如:

        SELECT class_name as name from class

        查询班级名称并为字段class_name设置别名name

      • 可以为表设置别名,如:

        SELECT * FROM t_class as class where class.name="张三"

        查询班级里面名字是张三的人,from的时候设置t_class的别名是class ,后面就可以直接使用别名

    3. 替换查询结果集中的数据

      • 查询班级中同学的信息,并且把0代表女,1代表男,直接输出中文

        SELECT id,name,age,
        case
        where sex=0 then "女" -- 如果sex是1,则输出女
        where sex=1 then "男" -- 如果sex是0,则输出男
        else "未确定" --否正输出未确定
        end [as] "性别" -- 设置别名为性别
        from class
    4. 交叉连接,又称笛卡尔积

      select * from table_1 [CROSS JOIN] table_2
    5. 内连接,inner join ....on

      -- 需要inner join连接用on连接两张表的外键,以形成连接关系
      select * from table_1 inner join table_2 on table_1.A=table_2.A
    6. 外连接——左外连接(以左边表为基表)left join

      select * from table_1  left join table_2 on table_1.A=table_2.A
    7. 外连接——右外连接(以右边表为基表)right join

      select * from table_1  right join table_2 on table_1.A=table_2.A
    8. where子句条件查询

      • between,把查询范围确定在某个范围内

        -- 查询年龄在18到20之间的学生
        select * from students where age between 18 and 20
      • in,列出所有指定条件的值

        -- 查询年龄是18,19,20的学生
        select * from students where age in (18,19,20);
        -- 查询任意所选课程成绩高于80分的学生的学号和姓名信息
        SELECT studentNo,studentName
        FROM tb_student
        WHERE studentNo IN(SELECT studentNo FROM tb_score WHERE score›80);
    9. Group By 子句

      select * from students group by class
    10. HAVING子句(过滤分组)查询班级人数大于60的学生

      select * from students group by class having count(*) >= 60
    11. order by子句,排序。ASC升序,DESC降序

      SELECT * FROM students ORDER BY age DESC,score DESC;
    12. limit 子句,从第6个同学查询出10个同学

      select * from students limit 5,10

数据库系统原理之SQL(四)的更多相关文章

  1. 数据库系统原理之SQL(三)

    数据库系统原理之SQL(三) 1. SQL的组成 1. 数据查询 2. 数据定义 3. 数据操作 4. 数据控制 2. 数据定义语言 CREATE创建数据库或数据库对象 创建数据库 ~~~ CREAT ...

  2. 数据库系统原理(第四章:SQL与关系数据库基本操作 )

    一.SQL概述 sql是结构化查询语言(Structured Query Language,SQL)是专门用来与数 据库通信的语言,它可以帮助用户操作关系数据库. SQL的特点: SQL不是某个特定数 ...

  3. Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx

    Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx 1.1. 数据库的类型,网状,层次,树形数据库,kv数据库.oodb2 1.2. Er模型2 1.3. Sql2 ...

  4. php面试专题---Mysql索引原理及SQL优化

    php面试专题---Mysql索引原理及SQL优化 一.总结 一句话总结: 注意:只写精品 1.为表设置索引要付出代价 是什么? 存储空间:一是增加了数据库的存储空间 修改插入变动索引时间:二是在插入 ...

  5. 数据库系统原理——ER模型与关系模型

    原文链接: http://blog.csdn.net/haovip123/article/details/21614887 犹记得第一次看<数据库系统原理>时看天书的感觉,云里雾里:现在已 ...

  6. JAVA-Unit01: 数据库原理 、 SQL(DDL、DML)

    Unit01: 数据库原理 . SQL(DDL.DML) SQL语句是不区分大小写的,但是行业里习惯将关键字与分关键字用大小写岔开以提高可读性. SELECT SYSDATE FROM dual DD ...

  7. WebSocket原理与实践(四)--生成数据帧

    WebSocket原理与实践(四)--生成数据帧 从服务器发往客户端的数据也是同样的数据帧,但是从服务器发送到客户端的数据帧不需要掩码的.我们自己需要去生成数据帧,解析数据帧的时候我们需要分片. 消息 ...

  8. Vue双向绑定的实现原理系列(四):补充指令解析器compile

    补充指令解析器compile github源码 补充下HTML节点类型的知识: 元素节点 Node.ELEMENT_NODE(1) 属性节点 Node.ATTRIBUTE_NODE(2) 文本节点 N ...

  9. RocketMQ架构原理解析(四):消息生产端(Producer)

    RocketMQ架构原理解析(一):整体架构 RocketMQ架构原理解析(二):消息存储(CommitLog) RocketMQ架构原理解析(三):消息索引(ConsumeQueue & I ...

随机推荐

  1. 对云信SDK的研究1

    1.云信大部分用了jq 2.很多接口 3.是可以文档很健全

  2. Swagger+SpringBoot整理

    maven依赖 1 <dependency> 2 <groupId>io.springfox</groupId> 3 <artifactId>sprin ...

  3. js 定义函数

    //AA(); //可执行 function AA() { test(); //报错 var test = function test() { console.log(); } } AA(); //可 ...

  4. asp.net+批量下载附件

    asp.net 下载文件几种方式 protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方 ...

  5. codevs 1057 津津的储蓄计划 2004年NOIP全国联赛提高组 x

     时间限制: 1 s  空间限制: 128000 KB   题目描述 Description 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花 ...

  6. 【CF1243D&CF920E】0-1 MST(bfs,set)

    题意:给定一张n个点的完全图,其中有m条边权为1其余为0,求最小生成树的权值和 n,m<=1e5 思路:答案即为边权为0的边连接的联通块个数-1 用set存图和一个未被选取的点的集合,bfs过程 ...

  7. 论文阅读:FlexGate: High-performance Heterogeneous Gateway in Data Centers

    摘要: 大型数据中心通过边界上的网关对每个传入的数据包执行一系列的网络功能,例如,ACL被部署来阻止不合格的流量,而速率限制被用于防止供应商过度使用带宽,但是由于流量的规模巨大,给网关的设计和部署带来 ...

  8. B. Array K-Coloring

    B. Array K-Coloring 给定一个数组 要求对元素进行染色,满足相同元素颜色一定不同,且所有颜色要全部用完 #include<bits/stdc++.h> using nam ...

  9. 不属于java语言鲁棒性特点的是

      A:java能检查程序在编译和运行时的错误 B:java能运行虚拟机实现跨平台 C:java自己操纵内存减少了内存出错的可能性 D:java还实现了真数组,避免了覆盖数据的可能 鲁棒性(Robus ...

  10. android和网络连接相关的类URL,URLConnection,HttpURLConnection,HttpClient

    这几个类都是用于和服务器端的连接,有些功能都能够实现,关系是: 一.URL URL标识着网络上的一个资源:该类包含一些URL自身的方法,如获取URL对应的主机名称,端口号,协议,查询字符串外,还有些方 ...