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)

    附:

    筛选列(投影)

    筛选行(筛选)

    行(记录,元组)

    列(字段,属性)

  • 相关阅读:
    HDOJ 2095 find your present (2)
    HDOJ 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你
    九度 1337 寻找最长合法括号序列
    九度 1357 疯狂地Jobdu序列
    HDOJ 1280 前m大的数
    九度 1343 城际公路网
    九度 1347 孤岛连通工程
    HDOJ 2151 Worm
    九度 1342 寻找最长合法括号序列II
    九度 1346 会员积分排序
  • 原文地址:https://www.cnblogs.com/phantom-k/p/3957026.html
Copyright © 2011-2022 走看看