1.j基础篇基于DDL
1.1、create database shujuku character set utf8 collate utf8_general_ci;//创建数据库
1.2、alter database shujuku character set utf8; //修改数据库
2、show databases;
3.1、use shujuku; //使用数据库;
3.2、select database(); //显示当前连接的数据库
3.3、select now(); //显示当前系统时间
3.4、select version(); //显示当前mysql版本
3.5、select user(); //显示当前mysql用户
4.1、show character set; //查看MySQL支持的字符集命令
4.2、show collation; //查看MySQL字符集支持的校对集命令
4.3、show variables like ‘character_set%’; //查看已建数据库的字符集
5、create table xueyuan (name varchar(30),address varchar(50))engine=innodb default charset=‘utf8’; //创建表
6、show tables; //查看已有的数据表
7、desc xueyuan; //查看已创建的数据表的属性
8、alter table xueyuan add lianxiren varchar(30); //添加表属性
9、desc xueyuan;
10.1、alter table xueyuan modify address varchar(100); //修改表属性,不能修改属性名
10.2、alter table xueyuan change 旧属性名 新属性名 数据类型[约束]; //修改表属性或属性名;
10.3、alter table xueyuan add constraint [约束别名] 约束; //新增约束
10.4、show create table 表名; //查看创表语句,找到外键名,然后进行删除。
10.5、alter table xueyuan drop 约束 [约束别名]; //删除约束
11、desc xueyuan;
12、alter table xueyuan drop lianxiren; //删除表属性
13、 desc xueyuan;
14.1、alter table xueyuan rename to newxueyuan; //修改表名
14.2、rename table newxueyuan to xueyuan; //修改表名
15、drop table xueyuan; //删除表
16、drop database shujuku ; //删除数据库
6show,4select,7alter,1rename;1use,1desc,4drop;2create;
2.管理篇DQL,DML
1.1、INSERT INTO 表名(属性1,属性2,……) VALUES(值1,值2,……); //插入指定属性的数据
1.2、INSERT INTO 表名 VALUES(值1,NULL,值3,……) //插入含空属性的数据
2.、update 表名 set 属性1=新值1,属性2=新值2,…[where 条件语句] //更新指定行或所有行数据
3.1、delete from 表名 [where 条件语句]; //删除指定数据或所有数据,自增长属性不重置
3.2、truncate 表名; //删除某表所有数据,重置自增长属性;
4.1、select * from 表名; //查询指定表的所有数据
4.2、select 属性1,…from 表名 [where 条件语句]; //查询指定表的指定条件下的指定的属性
4.3、select sal+100 from salary; //对指定属性进行数学运算
4.4、select sal from salary where sal<>3000 && sal like “%0_”;
4.5、select sal from salary where sal in (3000,3300) or sal is null;
4.6、select date from emp where date=“2017-03-01” || date=20170302;
4.7、select sal from salary where !(not(sal=1000));
//查询限定范围后符合的sal;数学运算符>比较运算符>逻辑运算符
4.8、select distinct deptno as 部门编号,id,name from emp order by deptno,id desc limit 2,3;
//去重并对deptno和id先后进行降序取第三到第五的元组;
4.9、select deptno,max(sal),min(sal),avg(sal),sum(sal),count(emp.empno) from emp left join salary on emp.empno=salary.empno group by deptno;
//查询每个部门工资的最值,平均值,总值,统计部门人数
4.10、select name,stu_id,group_concat(c_name,separator “|”) group_concat(cast(grade as char) separator “|”) from student,score where student.id=score.stu_id group by stu_id having stu_id>0;
//查询每个学员的考试成绩,并将所有成绩拼接显示在一个属性上;
4.11、select length(name),char_length(name),concat(name,“is sb”)substr(name,1,3) from student group by id,name;
//对学生表按id和name先后进行分类,并查看name的长度,并显示name处理后的字符串
4.12、select last_day(curdate()),date_format(now(),"%Y-%m-%d"),curtime(),date_add(now(),interval -3 day);
//显示当前月份最后一天日期,当前日期按指定格式显示,当前时间,当前时间的3天前的时间;
4.13、select abs(-100),round(120.5),round(125.445,-1),truncate(125.445,-1),greatest(1,2,3),least(1,2,3);
4.14、select case if(ifnull((case when nullif(sal,4000) is null then 4000 else sal end),4000),sal,4000) when 4000 then sal+1 when 5000 then sal+2 else sal+3 end from salary;
4.15、select ename,sal+comm,(select avg(sal+comm) from salary) from salary right join emp on salary.empno=emp.empno;
4.16、SELECT ename FROM hzdl_emp e join hzdl_job j on e.jobno=j.jobno WHERE (deptno,hiredate) IN (SELECT deptno,hiredate FROM hzdl_emp WHERE hiredate>‘2016-6-1’);
4.17、select id from student union [all] select distinct stu_id from score;
3.性能优化篇TC
1.、create index index_name on t(name); //为指定表属性创建索引
2.、alter table t add index index_name(name); //为指定表属性添加索引
3.、show index from t; //查看某表创建的索引;
4.、drop index index_name on t; //删除指定表中指定索引名的索引;
5.、create view view_name as 查询语句; //给指定的语句创建视图;
6.1、alter view view_name as 查询语句; //更新视图
6.2、create or replace view view_name as 查询语句; //更新视图
7.、drop view view_name; //删除视图
8.、create trigger trig before insert on t for each row insert into * values(…); //创建触发器
9.、show trigers; //查看所有触发器;
10.、drop trigger trig; //删除指定名称的触发器;
11.、showvariables like “%func%”; //查看函数功能状态
12.、create function funcname(c1 数据类型1,…)returns VARCHAR(50)
BEGIN
RETURN DATE_FORMAT(d,’%Y年%m月%d日 %h时%i分%s秒’);
END; //创建函数
13.、show function status; //查看所有函数信息
14、drop function funcname; //删除指定函数名的函数;
15.、create procedure pro(in dno int,out num int)begin SELECT COUNT(empno) INTO count_num FROM hzdl_emp WHERE deptno=dno;
END; //创建存储过程
16.、show procedure status; //查看所有存储过程基本信息
17.、show create procedure pro; //查看某个具体存储过程;
18、drop procedure pro; //删除指定名称的存储过程;
19.、declare abc int default 10; //定义变量并赋予默认值;
20.1、SET abc=10; //给变量赋值
20.2、SELECT id INTO abc FROM table; //给变量赋值
21.、
CREATE PROCEDURE pro(IN x INT)
BEGIN
IF x=1 THEN SELECT ‘x is 1’;
ELSEIF x=2 THEN SELECT ‘x is 2’;
ELSE SELECT ‘WRONG’;
END IF;
END; //if条件判断语句
22.、
CREATE PROCEDURE pro(IN x INT)
BEGIN
CASE x
WHEN 1 THEN SELECT ‘x is 1’;
WHEN 2 THEN SELECT ‘x is 2’;
ELSE SELECT ‘WRONG’;
END CASE;
END; //case选择性分支语句
23.、
CREATE PROCEDURE pro(IN x INT)
BEGIN
WHILE x<5 DO
SELECT ‘OK’;
SET x=x+1;
END WHILE;
END; //while循环判断语句
24.、
CREATE PROCEDURE pro(IN x INT)
BEGIN
label:LOOP
SELECT ‘OK’;
SET x=x+1;
IF x>3 THEN LEAVE label;
ELSEIF x=2 THEN ITERATE label;
END IF;
END LOOP;
END; //loop循环语句配合leave和iterate联用;
25.、
CREATE PROCEDURE pro(IN x INT)
BEGIN
REPEAT
SELECT ‘OK’;
SET x=x+1;
UNTIL x>3
END REPEAT;
END; //repeat循环语句