01-mysql ->DDL操作数据库/表 ->DML数据操作语言->DQL 数据查询语言 ->DCL数据控语言

数据库连接池的工作机制:

服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其标记为忙。
如果当前没有空闲连接,池驱动程序就新建一定数量的连接, 新建连接的数量有配置参数决定。
当使用的池连接调用完成后, 池驱动程序将此连接标记为空闲,其他调用就可以使用这个连接。

1. 数据库的基本概念:

数据库的英文单词:DataBase 简称DB ;数据库是用于存储和管理数据库的仓库;
数据库的特点: 方便持久存储数据, 方便存储和管理数据, 使用了统一的方式操作数据库;

2. 常见的数据库软件

3.MySQL的安装 配置和卸载

4. SQL概念 语法及分类

5.DDL 操作数据库/表(创建 查询 修改 删除)

5-a 操作数据库



6. DML增删改表中的数据

eg

7. DQL

7-a : 查询表中的记录



image.png






image.png

7-bDQL查询语句

b-1 排序


image.png

:mysql中常用的数学函数

:mysql中常用的字符串函数

b-2 聚合函数

函数 sum()

1、没有group by,就只能有一条,sum得到的是总数
2、有group by,就分组了,sum得到的是分组后,每一个组的总数


image.png

b-3 分组


b-4分页查询

8. 约束

【primary key , unique , auto_increment, not null 】



-================================================================

not null

eg

unique


primary key


auto_increment


eg:


foreign key

image.png
image.png

image.png

image.png

9. 数据库的备份和还原

10. Mysql多表查询

【内链接查询,外链接查询 ,子查询 】

##创建部门表dept
create table dept(
        id int primary key auto_increment, 
        name varchar(20)
);
insert into dept(name) values('开发部'),('市场部'),('财务部');   

##创建部门表emp;
insert into emp(id,name,gender,salary,join_date,dept_id)
            values (1,'王五','男','9800.21','2011-09-21',1);
insert into emp(id,name,gender,salary,join_date,dept_id)values
            (null,'王六','女',8200,'2013-09-23',2),
             (null,'赵四','女',7500,'2014-05-10',2),
              (null,'张倩','女',6200,'2015-03-15',3);

create table emp(
            id int primary key auto_increment,
            name varchar(10),
            gender char(1),
            salary double,
             join_date date,
            dept_id int,
            foreign key (dept_id) references dept(id)  -- 外键
)

10-a 内链接查询

10-a-1 : 隐式 内链接查询

10-a-2 : 显示 内链接查询

image.png

10-b 外链接查询


10-c 子查询




image.png

联合查询

12.事务





13. mysql DCL

查询添加 删除 用户

##切换到mysql数据库
use mysql;
##查询user表
select*from user;
##创建用户
create user '用户名'@'主机名' identified by '密码';
 create user 'tina'@'localhost' identified by 'lyn920921';
create user 'tina'@'%' identified by 'lyn920921';
##删除用户
drop user '用户名'@'主机名';
drop user 'tina'@'localhost';

14. mysql 常用的储存引擎

=======================================================================================

数据库的考点:多表联查,聚合函数和分组, 自查询

1. 简述数据库查询语句中,内连接inner join ,左连接 left join ,右连接 right join 的区别 ???

a)内连接 两表中数据对应存在
b) 左连接 左边表中的数据都会显示,如果右表中没有对应的数据就显示为空
c) 右连接 右边表中的数据都会显示,如果左表没对应数据,就显示为空


2.mysql行转列:

···
select ‘姓名’
min( case when '科目' = '语文' then '成绩' end ) '语文'
min( case when '科目' = '数学' then '成绩' end ) '数学'
from score
group by '姓名'

···

3. 经典的sql

1. 查询出A表中符合条件的数据 插入到B表中对应的字段中;

NSERT INTO student (`id`, `name`, `age`, `sex`, `addr`, `createTime`) 
SELECT id, name, age, sex, addr,createTime  FROM people
WHERE namein ('tina', 'lily') AND age= '1' and set= "1" and  DATE_FORMAT(createTime  ,'%Y%m%d')= DATE_FORMAT("20220101",'%Y%m%d')  ;  
SELECT  'addr' AS typeName,t1.addr as typeValue from  (SELECT DISTINCT (addr )  FROM student ) t1
  1. 求两门以上(含2门)不及格的学生信息 及平均分
SELECT 
    sum(sc.scgrade<60) as cont,  s.sname,avg(sc.scgrade)
FROM
    t_course AS c,
    t_sc AS sc,
    t_student AS s
WHERE
    c.cid = sc.cid AND s.sid = sc.sid
group by s.sname 
having cont>=2;
  1. 求没有选修"孑孑"老师课程的所有学生的姓名
select s.sname from t_student  as s where s.sid in (
select sc.sid 
from t_course as c left join  t_sc as sc 
on  c.cid=sc.cid  where  c.cteacher not like "孑孑%");

你可能感兴趣的:(01-mysql ->DDL操作数据库/表 ->DML数据操作语言->DQL 数据查询语言 ->DCL数据控语言)