七、select使用
select单独使用
1、配合MySQL内置变量使用
SELECT @@port; #查看端口
SELECT @@basedir; #查看软件路径
SELECT @@datadir; #查看数据路径
SELECT @@socket; #查看socket文件路径
SELECT @@server_id; #查看server_id,跟主从有关,取值大小1到2^32-1之间的整数
参考资料: 关于server_id引发的问题
参考资料:server_id取值范围
2、配合MySQL内置函数使用
SELECT NOW(); #查询当前时间
SELECT DATABASE(); #查询当前使用的数据库的名称
SELECT USER(); #查询当前登录MySQL数据库用户名
SELECT CONCAT("hello world"); #输出hello world
SELECT CONCAT(USER,"@",HOST) FROM mysql.user; #显示允许登录的用户名跟地址
SELECT GROUP_CONCAT(USER,"@",HOST) FROM mysql.user; #一行显示允许登录的用户名跟地址
select通用语法
注意:单表操作语法顺序是固定的。
select 列
from 表
where 条件
group by 条件
having 条件
order by 条件
limit
快速了解表结构
在生产环境中快速了解一个表是做什么的如下几点
#跟研发人员搞好关系
#找到领导要ER图,确定多表之间的关系
#查看表结构,注意注释
desc city;
show create table city;
#查看前五行表数据
select * from city limit 5;
单表子句
1、from
#查询指定列数据
select sname,intime from stu;
#查询所有列数据
select * from stu;
2、where
#查询中国(CHN)所有城市信息
SELECT * FROM city WHERE countrycode='CHN';
#where配合比较操作符> < >= <= <>
#查询人口小于100的城市
SELECT * FROM city WHERE population<100;
#where配合逻辑运算符and or in
#查询中国人口数量大于500w的城市信息
SELECT * FROM city WHERE countrycode='CHN' AND population>5000000;
#查询中国或美国城市信息
SELECT * FROM city WHERE countrycode='CHN' OR countrycode='USA';
#以上等同于in,性能是一样的
SELECT * FROM city WHERE countrycode IN ('CHN' ,'USA');
#where配合like子句进行模糊查询%
#%不能放在guang前面,因为不走索引,性能会很差
SELECT * FROM city WHERE district LIKE 'guang%';
#where配合between and
#查询世界上人口数量大于100w小于200w的城市信息
SELECT * FROM city WHERE population >1000000 AND population <2000000;
SELECT * FROM city WHERE population BETWEEN 1000000 AND 2000000;
数学计算
select支持数学运算
mysql> select concat(10/15*100,"%");
+-----------------------+
| concat(10/15*100,"%") |
+-----------------------+
| 66.6667% |
+-----------------------+
1 row in set (0.00 sec)
学习来自:郭老师博客,老男孩深标DBA课程 第三章
今天的学习是为了以后的工作更加的轻松!