Mysql
登录到服务端:select version();
没有登陆到服务端:查看mysql 版本 mysql --version|mysql -V
MySQL的常见命令
-
查看当前所有的数据库 show databases;
-
打开指定的库 use 库名
-
查看当前库的所有表 show tables
-
查看其它库的所有表 show tables from 库名;
-
创建表 create table 表名(
列名 列类型,
列名 列类型,
*** ……***
)
-
查看表结构 desc 表名;
-
查看创建表语句:show create table 表名;
语法规范
-
不区分大小写,但建议关键字大写,表明、列名小写
-
每条命令最好用分号结尾
-
每条命令根据需要,可以进行缩进或换行
-
注释 (解释说明命令)
-
单行注释:#注释文件、-- 注释文字
-
多行注释 /* 注释文字 */
-
查询
-
语法
- select 查询列表 from 表名;
- 查询列表可以是字段、常量值、表达式、函数
- 查询的结果是一个虚拟的表格
- select 查询列表 from 表名;
-
别名
- 使用as 使用空格
-
显示表结构:
- DESC 表名;
-
去重
- select distinct 查询列表 from 表名;
-
+号的作用
-
select concat(‘字段1’,‘字段2’,…) from 表名;
-
select 100+90;两个操作数都为数值型,则做加法运算
-
select ‘123’+9;其中一方为字符型,试图将字符型转换成数值型,
如果转换成功,则继续做加法运算.
-
select ‘mike’+90;如果转换失败,则字符型数值转换成0
-
select null+10;只要其中一方为null,则结果肯定为null
-
-
ifnull(字段,0)//判断该字段是否为空
条件查询
-
语法
select 查询列表 from 表名 where 筛选条件;
-
模糊查询
like
select 查询列表 from 表名 where like ‘%字符%’;or like _字符_
ESCODE ‘字符’ 自定义转意字符
·between and·
select 查询列表 from 表名 where 字段 between ‘条件1’ and ‘条件2’;
in
is null:判断null值 is not null :不为空
<=> 安全等于:不仅能判断null,还能判断普通数值。
函数
单行函数
字符函数
- concat(str1,str2,…) :连接字符串
- lower(str) :大写变小写 upper(str):小写变大写
- trim(str): 去掉字符串两边的空格
- substr(str,pos):截取字符串
- instr(str,substr):返回字串在当前字符串的第一次起始位置索引
- lpad(str,len,‘填充字符’) 用指定字符在字符串左侧填充
- rpad 右填充
- replace(str,from_str,to_str)替换
- ifnull(str,‘替换的字符’) 判断该字段是否为空,如果为空则替换为对应的字符。
- length(str)获取参数值的字节个数
数学函数
- round(x,d) 四舍五入
- ceil(x)向上取整,返回>=该参数的最小整数
- floor(x)向下取整,返回<=该参数的最小整数
- truncate(x,d)截断
- mod(x,x)取余
日期函数
- now() 返回当前日期+时间
- curdate() 返回当前日期,不包括时间
- curtime() 返回当前时间,不包括日期
- str_to_date(‘date’,‘format’)将日期格式的字符转换成指定格式的日期
- date_format(date,format) 将日期转换成字符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mmSSYpga-1633334860555)(E:\桌面\成绩\MySQL.png)]
- datediff(date,date) 计算前后日期相差天数
- monthname 以英文形式返回月
其他函数
version() 查看版本
database() 查看当前库
user() 当前用户
流程控制函数
-
if(10>5,‘大’,‘小’)
-
case函数:
一、 类似java的(switch-case)
case 要判断的字段或表达式
when 常量1 then 要显示的值或语句;
…
else 要显示的值或语句
end
二、 类似于 多重if
case
when 条件1 then 要显示的值或语句;
when 条件2 then 要显示的值或语句;
…
else 要显示的值或语句
end
分组函数
sum求和 、avg平均值、max最大值、min最小值、count 计算个数
特点
-
sum、avg一般用于处理数值
max、min、count可以处理任何数据
-
他们都忽略null值
-
可以和distinct搭配,实现去重
语法
select 分组函数,列(要求出现在group by的后面)
from 表
【where 筛选条件】
group by 分组的列表
【order by子句】【having 筛选条件】
sql92
等值连接
- 多表等值连接的结果为多表的交集部分
- n表连接,至少需要n-1个连接条件
- 多表对顺序没有要求
- 一般需要为表起别名
- 可以搭配前面介绍的所有子句使用,比如排序、分组、筛选
sql99
语法:
select 查询列表
from 表1 别名 【连接类型】
join 表2 别名
on 连接条件
【where 筛选条件】
【group by 分组】
【having 筛选条件】
【order by 排序列表】
对顺序没有要求
4. 一般需要为表起别名
5. 可以搭配前面介绍的所有子句使用,比如排序、分组、筛选
sql99
语法:
select 查询列表
from 表1 别名 【连接类型】
join 表2 别名
on 连接条件
【where 筛选条件】
【group by 分组】
【having 筛选条件】
【order by 排序列表】