MySQL基础认识:
MySQL启动:net start mysql80
net stop mysql80
客户端连接:MySQL自带的客户端连接
MySQL -u root -p
打开终端:输入services.msc可打开MySQL
SQL:
SQL通用语法
SQL分类
DDL:
show databases;
查看当前有 那些表;
create database (if exists)数据库名;
创建新的数据库;
use 数据库名;
切换到某个表;
select database();
查看当前处于哪个数据库中;
drop database(if exists)数据库;
删除某个数据库;
show tables;
查看当前数据库所有的表;
create table 表名(字段 字段类型,字段 字段类型);
创建表;
desc 表名;
查询当前该表有哪些字段;
show create table 表名;
查询当前表的建表语句;
表操作-修改:
添加字段
alter table表名add字段名 类型(长度)【comment注释】【约束】;
修改数据类型:
alter table表名modlfy字段名 新数据类型(长度);
修改字段名和字段类型:
alter table表名change旧字段名 类型(长度)【comment注释】【约束】;
删除字段:
alter table表名drop字段名;
修改表名:
alter table 表名rename to新表名;
删除表:
drop table【if exists】表名;
删除指定表,并重新创建该表;
truncate table 表名;
DML:
DQL:
条件查询:(where)
select字段列表from表名where条件列表;
聚合函数:(count max min avg sum)
注意:所有的null不参与所有聚合函数运算;
select 聚合函数(字段列表)from 表名;
分组查询:(group by)
where having之间的区别;
执行时机不同:前者是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤;
判断条件不同:where不能对聚合函数进行判断,而having可以;
排序查询:(order by)
排序
asc:升序(默认值)
desc:降序
分页查询:(limit):
DCL:
数据控制语言,用来管理数据库用户,控制数据库的访问权限。
create创建用户
alter修改用户密码
drop删除用户
权限控制:
所有权限 all all privileges
查询数据 select
插入数据 insert
修改数据 update
删除数据 delete
修改表 alter
删除数据库 表 试图 drop
创建数据create
多个权限之间有逗号隔开;
函数:
字符串函数:
数值函数:
日期函数:
curdate
curtime
date-add
datediff
now
流程函数:
if
ifnull
case when default end;
约束:
约束演示:
外键约束:
用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性;
添加外键
alter table emp add constraint fk_emp_dept_id foreign key(dept_id)references dept(id);
删除外键
alter table emp drop foreign key fk_emp_dept_id;
多表查询:
多表关系:
多表查询概述:
内连接:
隐式内连接
select 字段列表 from表1,表2 where 条件。。。
显式内连接
select 字段列表 from 表1 inner(可带可不带)join表2 on连接条件...;
外连接:
right left
自连接:
子查询:
多表查询案例:
两个查询的表格凭借起来
union all将查询出来的结果直接拼接起来
union将查询出来的结果删除相同情况后在进行拼接 去重处理
注意:多张表查询的列数必须相同
事务:
事务简介操作:
事务四大特性:
原子性
一致性
隔离性
持久性
并发事务问题:
事务隔离级别:
-- ------------查看事务的隔离级别---------- select @@transaction_isolation; -- 设置事务的隔离级别 set session transaction isolation level read uncommitted ; set session transaction isolation level repeatable read ;