数据库select语句基础

select 语句

查询所有的内容

bash 复制代码
select * from db02.t1;

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

bash 复制代码
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 |
+--------+--------+--------------+

精确定位 = < >

bash 复制代码
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 '%' '_'

bash 复制代码
select * from db02.t1 where name like '%l%';   
select * from db02.t1 where name like 'li__';
show variables like '%basedir%';   
show variables like '%socket%'; 

正则表达式

bash 复制代码
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.*';

排序

bash 复制代码
order by asc 升序
order by desc 降序

select * from t1 order by math asc;       
select * from t1 order by english desc;

指定某一列做排序

bash 复制代码
select * from t1 where id order by id asc;   
select * from t1 where english order by english desc;

去除重复行 distinct

bash 复制代码
select distinct id from t1 ;

聚合group by

bash 复制代码
select  * from t1 group by id having id<=2;

合并列: concat

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

limit 分页

bash 复制代码
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的前三行

运算

bash 复制代码
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 1;
select 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('')

多表查询

bash 复制代码
select t1.id,t1.name,t2.socre from t1,t2 where t1.id=t2.id;

左连接

bash 复制代码
select * from t1 left outer join t2 on t1.id=t2.id;

右连接

bash 复制代码
select * from t1 right outer join t2 on t1.id=t2.id;

内连接

bash 复制代码
select * from t1 inner join t2 on t1.id=t2.id;

纵向连接

bash 复制代码
select * from t1 inion select * from t2;
bash 复制代码
select current_user()   '当前登录数据库的用户名';
select current_time()   '当前的系统时间';
select current_date()   '当前的日期';
select count(*) from t1;   '显示表中总行数' 
select now()  '时间戳';
相关推荐
睡觉的时候不会困25 分钟前
Redis 主从复制详解:原理、配置与主从切换实战
数据库·redis·bootstrap
JosieBook1 小时前
【远程运维】Linux 远程连接 Windows 好用的软件:MobaXterm 实战指南
linux·运维·windows
程序员的世界你不懂2 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
自学也学好编程2 小时前
【数据库】Redis详解:内存数据库与缓存之王
数据库·redis
福赖2 小时前
《MySQL基础——用户管理》
mysql·用户管理
鳄鱼杆2 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
羚羊角uou3 小时前
【Linux】命名管道
linux·运维·服务器
JAVA不会写3 小时前
在Mybatis plus中如何使用自定义Sql
数据库·sql
IT 小阿姨(数据库)3 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
曾经的三心草3 小时前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器