七、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课程 第三章

posted @ 2021-02-02 17:02  努力吧阿团  阅读(337)  评论(0编辑  收藏  举报