• 数据库查询语句(DQL)


    DQL:
    数据库执行DQL语言不会对数据库中的数据发生任何改变,而是让数据库发送查询结果到客户端。

    *执行语句不改变表内容

    查询表格所有列:select * from 表名;

    查询某一列内容:select 列名 from 表名 ;

    查询指定多列内容:select 列名1 ,列名2,... from 表名;

    where :

    使用运算符
    =, !=, <, >, <=, >=
    between...and: 介于...和...之间
    and 且
    or 或
    in /not in # 在in内的/除了in内的
    is /is not # 类似于python中的身份运算符,常用于判断null值

    like :

    _   :  匹配单个任意字符
    % :匹配0-n个人任意字符【n大于等于1】 == 正则表达式的+
    

    as ( 起别名 ):

    select 字段 as 别名    	# 将字段名字换成别名 并输出到控制台,不会改变原有表格属性
    

    distinct(去重) :

    select distinct  字段 from 表名 ;     # 将字段的数据去重   
    

    order by ( 升降序 ) :

    # asc 升序  
    # desc 降序
    select * from 表名 order by 字段 asc/desc ;	 
    

    聚合函数:

    select 聚合函数 from 表名 ;
        count (统计出现的次数) :
    select count(*) from 表名 where 条件;
    # 统计表格中分数大于80的个数  
    select count(*) from 表名 where  score>80 ;
    

    sum (求和): sum(字段)
    select sum(age) from student ;
    max(最大值) :max(字段)
    min(最小值) : mix(字段)
    avg (求平均数) : avg(字段)

    group by (分组查询):

    # 查询以某个字段为分组,计算分组内的数据,比如每个组多少个
    group by 分组的字段
    

    having: 有...,表示条件,类似于where

    where 必须在 group by 前面 因为group by后面的过滤条件是 having
    where 后面不可以使用聚合函数, having 后面可以使用聚合函数

    多表联查:

    union 去除重复记录(去重)
    union all 获取所有的结果 (并集)
    

    前提:列表之间的字段类型,列数必须相同
    去重: select * from 表一 union select * from 表二 ;
    并集: select * from 表一 union all select * from 表二 ;

    表连接:

    select * from 表一,表二 ;      # 会输出笛卡尔积 即两个集合相乘
    

    解决方法:
    select (想要查看的字段,可以用 student.id(表,字段) 写入)from 表名 where 两个表中的相同的参数(去重);

    内连接 :

    inner join on == join on     on相当于where
    特点:查询结果必须满足条件,
             on条件后面的两个字段名必须一样,相当于表一和表二都必须拥有这个字段
    select 表.字段 from  表一 join 表二  on 表一.字段=表二.字段 ;
    等价于
    select 表.字段 from  表一 , 表二  on 表一.字段=表二.字段 ;
    

    外连接 :

    left join on  左外连接
    right join on 右外连接
    select 表.字段 from  表一 left join 表二  on 表一.字段=表二.字段 ;
    
    select 表.字段 from  表一 right join 表二  on 表一.字段=表二.字段 ;
    

    SQL书写顺序:select => from => where => group by => having => order by => limit
    SQL执行顺序:from => where => group by => having => order by => select => limit

  • 相关阅读:
    如何在perl中一次执行多条shell命令
    Spring.netAOP 搭建网站通知服务(1)
    使用Spring.net AOP 实现积分服务
    我得第一帖@2011
    ADO.NET+存储过程+事务的一个奇怪问题,求探讨
    (一)项目说明及程序框架说明——.NET开发完整案例(企业邮箱系统)
    2.系统设置网站配置网站信息配置
    .NET企业邮箱系统项目说明及文章索引——20118.13更新
    .Net内容管理系统开发实例项目说明及文章索引——2011825更新
    后端小记录
  • 原文地址:https://www.cnblogs.com/lance-lzj/p/14017193.html
Copyright © 2020-2023  润新知