2.DATABASE(MYSQL):
1.数据库的(增删查改)
1.MySQL基础命令
create database 数据库名;
create database mydb1 character set gbk;
creaate database if not exisit mydb2;
2.查看数据库
show create database mydb1;
alter database mydb1 character set utf-8;
drop database mydb1;
select database();
2.对数据表的操作
1.数据表的查询
1.1 select (sid,sname,sage)* from student;
select sid as "学号"from student;
select distinct sid from student;
select (列名) from student order by sage desc(ASC)
select (列名) from student where sid="001";
select (列名)
case
when... then
when... then
else 'E'
end as 'ma'
from student;
select (列名) from student where sname like '张'('%花%','张_ _');
1.2 时间查询:
1.3聚合函数:
1.4分组查询:
Group by
例如:
select (列名) from student group by sid;
select sid,max(sscore) from student
group by sid
having sid in(1,2,3);//统计1,2,3号的最高成绩
select * from student limit 3,10;
总结:
from;where;groupby;having;select;order by;limit
1.5嵌套查询:
select * from t_emp where salary>(
select salary
from t_emp;
tname="张三"
);//查询工资大于张三的员工信息
2.all(高于最高的)和any(高于最低的)的区别:
select * from t_emp where salary >all(any)(
select salary from t_emp where department_id =60;
);//工资高于60部门的所有人的信息
1.6 合并查询:
select * from t1 union select * from t2;(去重)
select * from t1 union all select * from t2;(保留重复)
1.7表连接查询:
内连接:
select * from student s inner join Course c on s.id=c.id;
左外连接:
以左表为主表,依次向右匹配,匹配不到 就返回null;
右外连接:
以右表为主表,依次向左匹配,匹配不到 就返回null;
2.1:时间函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9NrwfiD-1600501548367)(C:\Users\张强\AppData\Roaming\Typora\typora-user-images\image-20200903232435532.png)]
2.3:字符串查询:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O9QOvLbS-1600501548369)(C:\Users\张强\AppData\Roaming\Typora\typora-user-images\image-20200903232544492.png)]
3.DML()操作
1.往数据表添加数据:
insert into student values(相对应的值);
2.数据的修改
update student set sid="002" where sname="赵妍";
3.数据表的删除
delete from student where sid="001";
truncate table student;//清空表中的数据,再建一个与前表的格式相同的表
4.数据表的操作:
数据表的修改(alter)
alter table student add gradeid int;//在课程表的基础上添加gradeid列
alter table student motify sname varchar(10);//修改学生表中学生姓名的长度为10个字符
alter table student drop gradeid;
alter table student change snumber classnumber varchar(20);//修改学生表的snumber 列改为classnumber
alter table student rename stu;
drop table student;
3.1:数据表的操作:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dcje0QF8-1600501548370)(C:\Users\张强\AppData\Roaming\Typora\typora-user-images\image-20200903232236476.png)]
总结:
1.数据查询语言DQL(Query) : select,where, order by,group by,having;
2.数据定义语言DDL(Definition): create ,alter,drop,对数据表的操作;
3.数据操作语言DML(Manipulation):insert,update,delete.对数据表的内容操作;
4事务:(Tansaction):commit,rollback
5.数据控制语言DCL:grand,revoke
4.事务:
1概念:在同一个事务中,所有的sql语句成功执行,事务成功,有一个sql语句失败,整个事务失败。
2.特性:
原子性:表示事务中的所有操作是一个整体,要么全部成功,要么全部失败;
一致性:事务中有一个操作失败,所有更改过的数据都必须回滚到修改前的状态;
隔离性:两个事物之间互不影响;
持久性:一旦事务完成后,它的性质是永久的;
5.权限:
create user zhiangq identified by '123456';
grand all on mydb1.studetn to zhaoyan;
revoke all on mydb1.student from 'zhaoyan';
drop user zhaoyan;
6.视图:
视图是一个虚拟表;
1.create view zq as select sid from student;
2.alter view zq as select sid,sname from student;
3.drop view zq;
注意:
视图中有一下结果集,视图不可更新;
1.聚合函数的结果
2.distinct去重后的结果
3.group by分组后的结果
4.Having过滤后的结果;
5.union、union all的结果
视图中有一下结果集,视图不可更新;
1.聚合函数的结果
2.distinct去重后的结果
3.group by分组后的结果
4.Having过滤后的结果;
5.union、union all的结果
7.