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

    一、简单查询

    1.最简单查询(查所有数据)
    select * from 表名   注意:* 代表所有列,并不是代表所有行
    例:select * from test

    2.查询指定列
    select 列名,列名 from 表名
    例:select code,name from test

    3.修改结果集的列名 as
    select 列名 as '显示的字' from 表名
    例:select code as '代号',name as '姓名' from test

    4.条件查询
    select * from 表名 where 条件
    例:select * from test where code='n003'

    5.多条件查询
    或者 or:select * from 表名 where 条件 or 条件
    例:select * from test where code='p003' or nation='n001'

    并且 and:select * from 表名 where 条件 and 条件
    例:select * from test where code='p004' and nation='n001'

    6.范围查询 (某一列的内容是谁到谁之间的数据)
    例:两种写法:查找汽车价格在40到60之间

    (1)select * from car where price>=40 and price>=60
    (2)select * from car where price between 40 and 60

    7.离散查询
    查询汽车价格在(10、20、30、40、50、60)中出现的信息 in
    例:两种写法

    (1)select * from car where price=10 or price=20 or price=30 or price=40 or price=50 or price=60

    (2)select * from car where price in(10,20,30,40,50,60)

    不在(10、20、30、40、50、60)中出现的信息 not in
    例:select * from car where price not in(10,20,30,40,50,60)

    8.模糊查询(关键字查询)like
    %:任意n个字符
    _:任意一个字符

    查询汽车表名称中包含奥迪
    例:select * from car where name like '%奥迪%'

    查询汽车表名称第二个字符为“马”的汽车
    例:select * from car where name like '_马%'

    9.排序查询 order by
    升序 asc,可省略
    例:汽车表中价格列升序

    select * from car order by price asc

    降序 desc(从高到低)
    例:汽车表中油耗列降序

    select * from car order by oil desc

    先a列升序后b列降序
    例:汽车表中先将a列升序后将b列降序

    select * from car order by a,b desc

    10.去重查询 distinct
    例:查找汽车表中型号一样的去重

    select distinct brand from car

    11.分页查询

    一页显示m条数据 当前是第n页
    limit (n-1)*m,m

    一页显示10条数据 当前是第二页 跳过多少条,取多少条
    例:select * from chinastates limit 10,10


    12.聚合函数(统计函数) 
    (1)总数 count(*):查询数据总条数
    例:select count(*) from chinastates

    count(主键列 areacode)
    例:select count(areacode) from chinastates

    (2)求和 sum(求价格和列)
    例:select sum(price) from car

    (3)求平均 avg(求价格平均列)
    例:select avg(price) from car

    (4)取最大值、最小值(价格列)
    例:

    select max(price) from car 
    select min(price) from car

    13.分组查询 group by
    查询汽车表中每个系列下有多少汽车
    例:select brand,count(*) from car group by brand

    查询汽车表中卖的汽车数量大于3的系列    注意:  group by....having(条件)
    例:select brand from car group by brand having count(*)>3

    二、高级查询


    1.连接查询,对结果集列的扩展
    select * from info,nation      #形成很大的冗余(笛卡尔积)
    多张表的列有重名的,要写表名,然后写列名,格式如下:表名.列名
    两种方式:
    (1)select * from info,nation where info.nation=nation.code

    select info.code,info.name,sex,nation.name,birthday from info,nation where 
    info.nation=nation.code

    (2)select * from info join nation on info.nation=nation.code

    2.联合查询,对结果集行的扩展, 列的数量要相同 union
    select code,name from info
    union
    select code,name from nation

    3.子查询
    父查询:外层查询
    子查询:里查询(查询结果作为父查询的条件)

    (1)无关子查询:子查询在执行时和父查询没有关系(子查询可单独执行)
    a.查询民族为汉族的所有人员信息
    父查询:select * from info where nation=()
    子查询:select code from nation where name='汉族'
    合并后就是结果:
    select * from info where nation=(select code from nation where name='汉族')

    b.查询系列名是“宝马5系”的所有汽车信息
    select * from car where brand=(select brand_code from brand where brand_name='宝马5系')

    (2)相关子查询:子查询在执行时和父查询有关系(子查询不可单独执行)
    a.查询汽车表中油耗小于该系列平均油耗的所有汽车信息
    父查询:select * from car where oil<(该系列平均油耗)
    子查询:select avg(oil) from car where brand=该系列
    合并后就是结果:
    select * from car as a where oil<(select avg(oil) from car as b where b.brand=a.brand)
    注意:用as修改表名时不用加引号''

  • 相关阅读:
    atom 安装插件列表
    django学习
    windows 安装 python3
    python3 监控代码变化 自动重启 提高开发效率
    git无法pull仓库refusing to merge unrelated histories
    python 项目部署virtualenv
    python 多线程并发threading & 任务队列Queue
    python logging 日志使用
    jupyter 教程
    mysql 替换数据库字段内容
  • 原文地址:https://www.cnblogs.com/jc535201285/p/6768868.html
Copyright © 2011-2022 走看看