• 数据库select语句基础


    select 语句

    查询所有的内容

    select * from db02.t1;
    

    列出id,name.english列,并指定显示name=li04的行

    select id,name,english from db02.t1 where name='li04';
    
    select id as '编号',name as '姓名',english as '英语成绩' from db02.t1 where name='li04';   as别名
    +--------+--------+--------------+
    | 编号 | 姓名 | 英语成绩 |
    +--------+--------+--------------+
    |      2 | li04   |           99 |
    +--------+--------+--------------+
    

    精确定位 = < >

    select * from t1 where id<3;   列出1,2行
    select * from t1 where id>4;   列出 第5行以上
    select * from t1 where id>=4; 列出第4行以上
    select * from t1 where id<=2; 列出第1
    

    模糊匹配 like ‘%’ ‘_’

    select * from db02.t1 where name like '%l%';   
    select * from db02.t1 where name like 'li__';
    show variables like '%basedir%';   
    show variables like '%socket%'; 
    

    正则表达式

    select * from db02.t1 where name regexp '^l.*'select * from db02.t1 where name regexp '^li[0-9]{1}';  --1次
    select * from db02.t1 where name regexp '^li[0-9]?';    --0次或者1次
    
    select user,host,password from mysql.user where host regexp '\^[0-9].\*[0-9]$';
    select user,host,password from mysql.user where host regexp '^l.*';
    

    排序

    order by asc 升序
    order by desc 降序
    
    select * from t1 order by math asc;       
    select * from t1 order by english desc;
    

    指定某一列做排序

    select * from t1 where id order by id asc;   
    select * from t1 where english order by english desc;
    

    去除重复行 distinct

    select distinct id from t1 ;
    

    聚合group by

    select  * from t1 group by id having id<=2;
    

    合并列: concat

    select concat(user,'@',host) from mysql.user;  把mysql.user表的user和host列合并
    select  concat(path1,'/',homedir)  from t3;  
    

    limit 分页

    select * from t1 limit 0,1;   显示第一行
    select * from t1 limit 1,1;   显示第二行
    select * from t1 limit 6,1;   显示第七行
    
    select * from t1 limit 3;  显示前三行
    
    select * from t1 limit 4,3; 显示5,6,7行
    
    select name,english from t1 order by english desc limit 3;   把english排序并显示name,english的前三行
    

    运算

    select name,sum(english) from t1 ;         计算总和
    select name,avg(english) from t1 ;          计算平均数
    select name,max(english) from t1 ;          计算最大值
    select name,min(english) from t1 ;           计算最小值
    
    select name,(english+math) from t1  order by (english+math) desc limit 1;
    select name,(english+math) as sum from t1  order by sum desc limit 1select name,english from db02.t1 where english in (select max(english) from db02.t1);
    select name,english from db02.t1 order by english desc limit 1;
    

    运算符

    + - =

    select 1 = 1
    返回值为1 --表示为真

    select 1 = 2
    返回值为0 --表示为假

    逻辑
    and
    or
    not and

    函数

    select password(‘’)
    select md5(‘’)
    select sha1(‘’)

    多表查询

    select t1.id,t1.name,t2.socre from t1,t2 where t1.id=t2.id;
    

    左连接

    select * from t1 left outer join t2 on t1.id=t2.id;
    

    右连接

    select * from t1 right outer join t2 on t1.id=t2.id;
    

    内连接

    select * from t1 inner join t2 on t1.id=t2.id;
    

    纵向连接

    select * from t1 inion select * from t2;
    
    select current_user()   '当前登录数据库的用户名';
    select current_time()   '当前的系统时间';
    select current_date()   '当前的日期';
    select count(*) from t1;   '显示表中总行数' 
    select now()  '时间戳';
    
  • 相关阅读:
    完整指南:使用JavaScript从零开始构建中国象棋游戏
    【跨境电商】使用补货电子邮件营销策略来鼓励重复购买
    云原生Service Mesh服务网格简单介绍
    docker-compose安装和初体验
    Linux常用命令
    python面试题三
    Python: 10大Web框架简介
    【2011】408联考操作系统真题整理
    【性能测试】分布式压测之locust和Jmeter的使用
    Yolov5+图像分割+百度AI接口——车牌实时检测识别系统
  • 原文地址:https://blog.csdn.net/u014516208/article/details/139621873