常用命令

1、查看版本:select version();
2、查看数据库中有哪些库:show databases;
3、进入某一个库:use mysql;
4、查看有哪些表:show tables;
5、在本库中查看其他库里的表:show tables from test;
6、查看当前在哪个数据库中:select database();
7、没有表,进行创建:create table  stuinfo (name  verchar(20), age interger);
8、查看表结构:desc stuinfo;
9、插入数据:insert into  stuinfo (name,age) values ('jor', 21);
10、查询数据:select * from stuinfo;

数据库规则

1、不区分大小写
2、结尾加分号
3、单行注解 # 。。。。或 -- 。。。。
   多行注解/* 多行注解*/

DQL语言(data query language)

一、基础查询语句
1、select 查询列表 from 表;
	-查询列表可以是:表中字段、常量值、表达式、函数。
	-查询结果是一个虚拟的表格。
表中字段:
select * from stuinfo;
常量值:返回常量值
select 100;
表达式:返回结果
select 100*98;
函数:
select version();
2、起别名
	好处:便于阅读、区分重名列
方式一:使用as
	select first_name as 名,second_name as 姓 from stuinfo;
方式二:使用空格
	select first_name 名,second_name 姓 from stuinfo;
如果别名是关键字用引号引起来:
	select first_name “out put” from stuinfo;
3、去重
	#查询员工设计的所有部门编号
	select distinct department_id from employees;
4、+ 号的作用
	/*Java中的+号
		运算符
		连接符
		MySql中只能做运算符:select 100+99;
		如果一方为字符型 ,select '123'+90;
		试图将字符转换成数值型, 成功继续计算,失败认为0,继续计算。
	*/
	#案例:查询员工姓和名,显示:姓名
	null和任何字段拼接都为null;
	可以使用函数:ifnull(last_name,0);
	拼接函数:concat(str1,str2);
	select concat(last_name, first_name) as 姓名 from employees;
	select concat(ifnull(last_name,0), first_name) as 姓名 from employees;
二、条件查询--where
	先执行from=》执行where=》执行select
	分类:
		1、按条件表达式筛选
			条件运算符:> < != <> >= <=
		2、按逻辑表达式筛选
			逻辑运算符:
			做用:用于连接条件表达式
				&&  ||  !
				and  or  not
		3、模糊查询
			like
			between  and (包含边界值):select * from employees where employees between 100 and 200;
			in
			is null
三、排序查询/分组查询
四、常见函数(单行函数)
/*功能:类似于Java的方法,提高代码复用,隐藏实现细节
调用:select 函数名(实参列表)【form 表】
分类:
	1、单行函数
	字符函数/数学函数/日期函数/其他函数【】补充/流程控制函数
	2、分组函数
	*/
1、字符函数
#length()  获取参数的字节数
	select length('join');    结果为4
	select length('张三丰hello')  结果为14,utf8中一个汉字占3个字节
	查看当前使用的字符类型:show variable like '%char%';
#concat()
	select concat(last_name, first_name) as 姓名 from employees;
#upper、lower()
	select upper('join');
#案例:将姓变大写,名变小写,然后拼接
	select concat(upper(last_name), lower(first_name)) as 姓名 from employees;
#substr/substring()
注意:索引从1开始
	字符的索引,不是字节的,注意区分length
	select substr(“李莫愁爱上了陆展元”,7) out_put;  =》陆展元
	select substr(“李莫愁爱上了陆展元”,1,3) out_put;  =》李莫愁
#instr() 返回起始索引,如果找不到返回0.
	select instr(“李莫愁爱上了陆展元”,“陆展元”) as out_put;
#trim() 去前后的字符
	select trim('     李莫愁爱上了陆展元  ') as out_put;
	select trim('a' from 'aaaa李莫愁爱上aaaa了陆展元aaaaa') as out_put; =>李莫愁爱上aaaa了陆展元
#lpad() : 用指定字符实现左填充指定长度
#Rpad() : 用指定字符实现右填充指定长度
	select lpad('张三丰‘, 10,  '*')as out_put;=》*******张三丰
#replace() 替换
	select replace("张三丰如此的优秀", "张三丰","我")as out_put;
2、数学函数
#round() 四舍五入
	select round(1.55); =>2
	select round(-1.55); =>-2
	select round(1.556, 2); =>1.56
#ceil() 向上取整
	select round(1.55); =>2
	select round(-1.55); =>-1
#floor() 向下取整
	select round(1.55); =>1
	select round(-1.55); =>-2
#truncate() 截断
	select truncate(1.567, 1);=>1.5
#mod() 取余
	select mod(10,-3); =>1
3、日期函数
#now() 返回当前系统日期+时间
	select now();
#curdate() 返回当前系统日期,不包含时间
	select curdate();
#curtime() 返回当前时间
#可以获取指定的部分,年、月、日、小时、分钟、秒
	select year(now()) 年;
	select year('1999-1-1') 年;
	select year(hibernate) 年 from 表;
#str_to_date 将字符通过指定的格式转换成日期
#查询入职日期为1992-4-3的员工信息
	select * from employees where hiredate = str_to_date('4-3-1992', '%c-%d %Y');
#date_format :将日期转换成字符
	select date_format(now(), '%Y年%m月%d日‘)  显示结果为2012年06月08日
4、流程控制函数
#if函数:if-else的效果
	select if(10<5, '大’,‘小’);
#case函数的使用
	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;
# caes 使用方法二:else if
	/*
	case
	when 条件1 then 要显示的值1或语句1;
	when 条件2 then 要显示的值2或语句2;
	......
	else 要显示的值n 或语句 n;
	end
	*/

DML 语言

DDL语言

TCL语言

09-14 08:38