MySQL day01

MySQL常见命令语句

1.常看当前所有的数据库

show databases;

2.打开指定的库

use 库名;

3.查看当前库的的所有表

show tables;

4.查看其他库的所有表

show tables from 库名;

5.创建表

create table 表名(
			列名 列类型,
			列明 列类型,
			...
			)

6.查看表结构

desc 表名;

7.查看服务器版本

方式一:登录到mysql服务端
select version();
方式二:没有登录mysql服务端
mysql --version
或
mysql --V`在这里插入代码片`

MySQL的语法规范

1.不区分大小写,但建议关键字大写,表名、列名小写
2.每条命令最好用分号结尾
3.每条命令根据需要,可以进行缩进 或换行
4.注释:
单行注释:#注释文字
单行注释:-- 注释文字
多行注释:/* 注释文字 */

MySQL基础

1.去重

SELECT DISTINCT department_id AS id FROM employees;

2.连接

SELECT 
	CONCAT(last_name,first_name) AS 姓名
FROM 
	employees;
	
	#如果有空值,则需要使用IFNULL	
SELECT 
	CONCAT(last_name,',',first_name,',',IFNULL(commission_pct,0)) AS out_put
FROM 
	employees;

3.条件查询

SELECT 
	查询列表
FROM
	表名
WHERE
	筛选条件;

#分类
	一、按条件表达式筛选
	条件运算符:> < = != <> <= >=
	二、按逻辑表达式筛选
	逻辑运算符:
			&& ||and or not
	三、模糊查询
		like
			% 任意多个字符,包含0个字符
			_ 任意单个字符
		between and
		in
		is null

select
	last_name
from
	employees
where
	last_name like '_$_%' ESCAPE '$'; #ESCAPE转义
			

排序查询

SELECT * FROM employees ORDER BY salary DESC;
# DESC 降序
#ASC 升序 省略不写也为升序

字符函数

1.length 获取参数值的字节个数

SELECT LENGHT ('john')

2.concat 拼接字符串

SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;

3.upper、lower 大小写

SELECT CONCAT(UPPER(last_name),'_',LOWER(first_name)) 姓名 FROM employees;

4.substr、substring

SELECT SUBSTR('李莫愁爱上了陆展元',7) out_put; #返回结果为 陆展元

SELECT SUBSTR('李莫愁爱上了陆展元',1,3) out_put; #返回结果为 李莫愁
  1. instr
instr 返回字串第一次出现的索引,如果抄不到返回0
SELECT INSTR('12312ASSASA123','312') AS out_put;

7.trim 去除空格 还可以去除指定字符

SELECT LENGTH(TRIM('           AAA       ')) AS OUT_PUT;

#指定去除
SELECT TRIM('指定字符' FROM '被去除字符的字符串') AS OUT_PUT;
例如:
SELECT TRIM('A' FROM 'AAADAAADD') AS OUT_PUT;

8.lpad 用指定的字符实现左填充指定长度,rpad 用指定的字符实现右填充指定长度

SELECT LPAD('aaa',10,'*')
SELECT RPAD('aaa',10,'*')

9.replace 替换

SELECT REPLACE('aaaaabbbbbbccc','a','z')

数学函数

1.round 四舍五入
SELECT ROUND (-1.55);
SELECT ROUND (1.567,2);

2.ceil 向上取整,返回>=该参数的最小整数
floor 向下取整,返回<=该参数的最大整数

SELECT CEIL (-1.55);
SELECT FLOOR (-1.55);

3.truncate 截断

SELECT TRUNCATE(1.6999,1) ;#结果为1.6

4.mod 取余

MOD(a,b):a-a/b*b
SELECT MOD(10,-3)

日期函数

1.now 返回当前系统日期+时间

SELECT NOW();

2.curdate 返回当前日期,不包含时间

SELECT CURDATE();

3.curtime返回当前时间,不包含日期

SELECT CURTIME();

4.可有获取指定的部分,年、月、日、时、分、秒

SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());

str_to_date:将日期格式的字符转换成指定格式的日期

SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d')

date_format:将日期转换成字符

SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日')

在这里插入图片描述

在这里插入图片描述

其他函数

	SELECT VERSION(); #查看MySQL版本号
	SELECT DATABASE(); #查看当前数据库
	SELECT USER(); #查看当前用户

流程控制函数

1.if函数;if else 的效果

SELECT last_name,commission_pct, IF (commission_pct IS NULL,'有奖金','没奖金') FROM employees;	

2.case函数的使用一: switch case 的效果

case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1
when 常量2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end

例如:
SELECT salary 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
WHEN 50 THEN salary*1.3
ELSE salary
END AS 新工资
FROM employees;


3.case函数的使用二: 类似于 多重if

case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
...
else 要显示的值n或语句n

例如:
SELECT salary,
CASE
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE  'D'
END '工资级别'
FROM
	employees;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值