mysql笔记—基础

1.SQL语句

DDL(数据库对象操作)、DML(增删改)、DQL(查询)、DCL(用户和权限操作)

2.DDL:

1.数据库操作:

show databases;

create database [];

use [];

select database();

drop database [];

2.表操作:

show tables;

create table []();

desc [];

show create table [];

alter table [] add/modify/drop/..;

drop table [];

3.DML

 1.添加:

insert into [表名]() values();

2.修改:

update [表名] set ... where ...;

3.删除:

delete from [表名] where...;

 4.DQL

案例:

查询年龄为20,21,22,23岁的女员工信息。

select * from table where gender = '女' and age in(20,21,22,23);

查询性别为 男 ,并且年龄在 20-40 岁(含)以内的姓名为三个字的员工。

select * from table where gender = '男' and age between 20 and 40 and name like '___';

统计员工表中,年龄小于60岁的,男性员工和女性员工的人数。

select gender,count(*) from table where age < 60 group by gender;

查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。

select name,age from table where age <= 35 order by age asc,join_time desc;

查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。
 

select * from table where gender = '男' and age between 20 and 40 order by age asc,join_time desc limit 5;

5.DCL

1.用户管理:

 2.权限管理:

6. 函数

7.约束

 8.多表查询

1.多表关系:

2.多表查询:

内连接是交集,外连接是并集;

案例:

员工表:emp,部门表:dept,薪资表:salgrade

1.查询员工的姓名、年龄、职位、部门信息(隐式内连接)

select e.name,e.age.e.job,d.name from emp e,dept d where e.dept_id = d.id;

2.查询年龄小于30岁的员工姓名、年龄、职位、部门信息(显式内连接)

select e.name,e.age.e.job,d.name from emp e inner join dept d on e.dept_id = d.id where e.age < 20;

3.查询拥有员工的部门ID、部门名称。

select distinct e.id,e.name from emp e,dept d where e.dept_id = d.id;

4.查询所有年龄大于40岁的员工,及其归属的部门名称;如果员工没有分配部门,也需要展示出来。

select e.* from emp e left join dept d on e.dept_id = d.id where e.age > 40;

5.查询所有员工的工资等级。

select e.* from emp e,salgrade s where e.salary >= s.min and e.salary <= s.max;

6.查询"研发部" 所有员工的信息及工资等级。

select e.*,s.grade from
    emp e,
    dept d,
    salgrade s
where e.dept_id = d.id
    and e.salary between s.min and s.max
and d.name = '研发部';

7. 查询 "研发部" 员工的平均工资。

select agv(e.salary) from 
    emp e,
    dept d
where e.dept_id == d.id 
and d.name = '研发部';

8.查询低于本部门平均工资的员工信息。

select * from emp e1 
where e1.salary < 
    (select avg(salary) from emp e2 where e2.dept_id = e1.dept_id)

9.查询所有的部门信息,并统计部门的员工人数。


select id,name,
(select count(*) from emp where dept.id = id) '部门人数' 
from dept;

10.查询所有学生的选课情况,展示出学生名称,学号,课程名称
 

select s.name,s.num,c* from course c,student s,course_student sc 
where c.id = sc.course_id and 
    s.id = sc.student_id
 

9.事务

1.四个特性

 2.事务并发问题

3.事务隔离级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deryck_德瑞克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值