mysql学习笔记

一.mysql基础命令

(1)查看当前所有数据库:show database;
(2)打开指定的库:use 库名;
(3)查看当前库的所有表:show tables;
(4)查看其它库的所有表:show tables from 库名;
(5)查看表结构:desc 表名;
(6)查看服务器版本号:select version();
doc命令:mysql --version 或 mysql --V

二.mysql语法规范
(1)不区分大小写,但建议关键字大写,表名、字段小写
(2)每条命令最好用分号结尾
(3)每条命令根据需要 可以缩进或换行

三.注释
(1)单行注释:#文件,-- 文字
(2)多行注释:/* 文字 */

四.mysql中 + :运算符
(1)select 100+90:-两个操作数都是数值型,则做加法运算
(2)select '123'+90:-其中有一方为字符串,试图将字符串转换为数值型
-如果转换成功,则做加法运算
select 'jho'+90:-如果转换失败,则将字符串转换成0
select null+10: -其中有一方为null,则结果肯定为null

五.like关键字:-一般和通配符一起使用
(1)%:匹配多个字符,包括0个
(2)_:匹配单个字符
(3)\:转义字符
(4)escape:自定义转义字符:escape '$'

六.单行函数
概念:类似于Java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处;隐藏了实现细节,提高代码的重用性
调用:select 函数名 from 表
特点:
①叫什么
②干什么
分类:字符函数 数字函数 日期函数 其他函数 流程配置函数

1.字符函数:
show variables like '%char%'查询使用哪个类型
(1)length:获取参数数值的字节个数,Utf8的字母站一个字节,汉字三个字节
(2)concat:拼接字符串,select concat(last_name,'_',firset_name) 姓名 from employees;
(3)upper\lower:转换大小写,函数可以嵌套函数
(4)substr substring:索引从1 开始,截取从指定索引处后面所有字符;截取从指定索引处指定字符长度的字符。
(5)instr:返回字符串第一次出现的索引,如果找不到返回0
(6)trim:去掉前后空格,若是想去掉某些不是空格的,可以使用trim('a' from'aaazhaojinchaoaaa')
(7)lpad:用指定的字符实现左填充指定长度
(8)rpad:用指定的字符实现右填充指定长度
当长度小于字符长度时,截取长度大小的字符。
(9)replace 替换

2.数学函数
(1)round:四舍五入,select round(1.65);先计算数值,最后加上-,
-1.55返回-2; 返回两位小数,末尾为0时不显示;

(2)ceil:向上取整,返回一个》=该参数的最小整数
select ceil(-7.78)返回-7
(3)floor:向下取整,返回小鱼等于该参数的最大整数
select ceil(-7.78)返回-8
(4)truncate:截断
select truncate
(5)mod:取余

3.日期函数
(1)now:返回当前系统日期+时间
(2)curdate:返回系统当前日期,不返回时间
(3)curtime:返回当前系统中的时间,不返回日期
(4)year:年
(5)month:月,数字
(6)monthname:月,英文
(7)day:日
(8)hour:时
(9)minute:分秒
(10)second:
(11)str_to_date:将日期格式的字符转换成指定格式的日期
(12)date-format:转换成字符串

4.其他函数
select version():查看数据库版本
select database();查看数据库名称
select user():查看数据库用户

5.流程控制函数
(1)if函数: if else 的效果
(2)case函数的使用:
使用一、Switch case的效果 case后边紧跟着字段或表达式 适合等值判断
使用二、多重if,case后边没有加东西 适合区间判断

七、分组函数
1.sum:-对数值型字段求和,忽略null值
2.avg:-对数值型字段求平均数,忽略null值
3.max:-对任意类型字段求最大值,忽略null值
4.min:-对任意类型字段求最小值,忽略null值
5.count:-对任意类型字段求个数,忽略null值
-效率
在MYISAM存储引擎下,count(*)的效率最高,内部有个计数器,直接返回个数
在INNODB存储引擎下,count(*)和count(1)差不多,比count(字段)高一下
6.-分组函数可以和distinct搭配使用:去重,如sum(distinct 字段名称)

八、分组查询:GROUP BY
数据源 位置 关键字

分组前筛选 原始表 group by字句的前面 where

分组后筛选 分组后的结果集 group by字句的前面 having

1.-分组函数做为条件肯定放在having字句中
2.-能用分组前筛选,优先考虑使用分组前筛选
3.-group by、having支持别名,where不支持别名
4.-按照多个字段分组,放在group by后面,用逗号隔开,不分顺序

转载请注明来源! https://www.cnblogs.com/icanner

posted @ 2018-09-07 15:45  icanner  阅读(173)  评论(0编辑  收藏  举报