zoukankan      html  css  js  c++  java
  • ●查询语句

    DDL(数据定义语言)

      Create、Drop、Alter

    DML(数据操纵语言)

      CRUD(增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete))

    DCL(数据控制语言)

    增加数据

      insert into 表 values ('值')    --into可以省略,值可以写多个,用逗号隔开,不过要对应列

      例:insert into fruit values ('k008','梨','3','莱阳','3','100','')

        insert  fruit(Ids,Name,Source,Price) values ('k008','梨','莱阳','3')    --增加数据时,当说明了表的列名,那么后面的值必须与之对应

    删除数据

      delete from 表    --清空表内数据

      truncate table 表    --截断表

      以上两种方式都可以清空表内数据,不同之处在于,truncate不会产生日志,并且可以初始化自增长列。

      删除指定数据:

      delete from 表 where 条件表达式     --条件表达式一般是:列名 运算符 值。多个条件可以用and或or连接

      例:delete from Fruit where Name='梨'

    修改数据

      update 表 set 列名=值,列名=值,…… where 条件表达式

      例:update Fruit set Price=3,Stack=4 where Name='葡萄'

    查询

      查询表中多个列

      select 列,列,…… from 表

      用符号*查询全部列

      select * from 表

      查询结果中添加列

      select Price as '价格',Price*Weight as '总价',…… from fruit    --查询结果中修改列的显示名称,列名处可以写表达式,as可以省略;此处总价为添加列

      where,根据条件查询

      select 列名 from 表 where 条件表达式

      例:select name from fruit where price between 2 and 5    --从表fruit(水果)中查找price(单价)在2跟5之间的name(名称)

        上一行中  price between 2 and 5  相当于  price>=2 and price<=5

      用dictinct消除重复部分

      例:select distinct dept_id from employee where e_wage>7000    --列出工资大于7000的员工所属部门的编号

      用in关键字

      例:select name from fruit where price in (2,3)    --查询价格为2或3的水果名称。如果值是字符串,那么要加单引号

        上一行中  price in (2,3)   相当于  price=2 or price=3

      使用通配符,where子句中用like进行字符串匹配查询

      %    表示零个或多个字符    ‘a%’,‘a’后面可接任意字符串

      _    代表一个字符        ‘a_b’,‘a’与‘b’中间可以有一个字符

      []    表示在某一范围的字符   [0-9],0到9之间的字符

      [^ ]   表示不再某一范围的字符

      例:select e_name,dept_id from employee where like '王_'    --查找公司中姓王且全名为两个字的员工的姓名及所在部门的编号

      用order子句对结果排序,默认排序为升序,如果要按降序排序,那么在列名后边添加desc(默认升序是asc)

      例:select e_name from employee where job_level='2' order by e_wage    --查询工作级别为2的员工的姓名,查询结果按工资排序

      例:select p_id,p_name,cost,quantity from products where dept_id='1003' order by cost desc,quantity    --查询有编号1003部门生产的产品编号、名称、成本、库存数量,结果按成本降序、库存数量升序排列

      统计函数

        AVG(),算术平均值,只适用于数值型的列

        例:select AVG(price) as '平均价' from fruit    --求各种水果单价的平均值

        COUNT(),返回与选择表达式匹配的列中不为NULL 值的数据个数。COUNT(*)指定了与判别式匹配的所有行,COUNT(列名) 则指定了列值的个数。

        例:select COUNT(name) from fruit

        MAX(),返回最大值,适用于数值型、字符型、日期型的列

        例:select MAX(price) from fruit

        MIN(),返回最小值,适用于数值型、字符型、日期型的列

        例:select MIN(price) from fruit

        SUM(),求和,()里可以进行运算。只适用于数值型的列

        例:select SUM(price) from fruit

      查询结果分组

        group子句

        select后边只能跟统计函数或跟 group by 后边儿的列相同

        例:select name,price from fruit group by price    --按价格分组,并显示名字跟价格

        having子句

        例:select dept_id, count(*) from employee where e_wage >= 6000 group by dept_id having count(*) > 1    --查询有多个员工的工资不低于6000 的部门编号

        where用于分组前筛选数据,having用于分组后筛选数据。

      在select语句中where,group by,having子句和统计函数的执行次序如下:
      1、Where子句从数据源中去掉不符合其搜索条件的数据行;
      2、group by 子句搜集数据行到各个组中;统计函数为各个组计算统计值;
      3、having子句去掉不符合其组搜索条件的各组数据行。
     

    begin tran

    (修改数据的语句)

    rollback    --修改数据出错时,rollback返回(begin tran)

    附:

    筛选列(投影)

    筛选行(筛选)

    行(记录,元组)

    列(字段,属性)

  • 相关阅读:
    哈夫曼(Huffman)编码
    面向对象的3个基本要素和5个基本设计原则(整理)
    面向对象设计原则OO
    Java多线程中start()和run()的区别
    HBase入门
    SparkGraphXTest.scala
    IntellijIdea中常用的快捷键
    SparkSQLTest.scala
    SparkStreamingTest.scala
    (转)理解POST和PUT的区别,顺便提下RESTful
  • 原文地址:https://www.cnblogs.com/phantom-k/p/3957026.html
Copyright © 2011-2022 走看看