安装MySQL、卸载MySQL、使用MySQL、SQL操作(CRUD)
MySQL数据库相关知识
内容不多,等日后逐一补齐
安装MySQL
-
安装包安装,点击“下一步”
-
文件配置cmd安装
#配置my.ini basedir = D:mysql5.7 该参数指定mysql安装目录 datadir = D:mysql5.7data 该参数指定mysql数据文件存放目录
- 1
- 2
- 3
#在bin目录下cmd安装并启动 mysqld -install 安装mysql net start mysql 启动mysql服务
- 1
- 2
- 3
卸载MySQL
停止mysql服务,删除mysql文件,删除数据残留,删除注册表
#数据残留路径
C:ProgramDataMySQL
- 1
- 2
#注册表路径
计算机HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventLogApplicationMySQL
- 1
- 2
使用MySQL
-
代码创建:创建数据库,使用数据库,统一编码,创建数据表,插入表记录
create database friend default character set utf8; use friend; set names gbk; create table stu_xu( id int primary key auto_increment, name varchar(10) not null); insert into stu_xu values(1001,'张三');
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
-
可视化工具:Navicat
CRUD操作
C创建
#创建数据库
create database 库名;
#创建数据表
#不加条件
create table 表名(字段名 类型,字段名 类型);
#约束类型:主键、自增、非空、唯一、外键
主键:primary key
自增:auto_increment
非空:not null
唯一:unique
外键:foreign key
#创建视图 (视图是表的投影)
create view 视图名 as select...from 表名 where 条件;
#创建索引
create index 索引名 on 表(字段);
#插入数据记录
insert into 表名 values(值1,值2,..);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
R查找
#查看数据库
#查看编码
show variables like 'char%%';
#查看数据库
show databases;
#查看数据表
#查看表
show tables;
#查看表结构
desc 表名;
#查看视图
select * from 视图名;
#查看数据记录
#简单查询(六子句)
select(结果集)..from(表)..where(条件)..group by(分组)..having(再过滤)..order by(排序)..limit(分页)..
#子查询(非关联)
#子查询(关联)
#表间关联(内连接)
#表间关联(外连接)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
U更新
#修改数据库
#修改数据表
#增加字段
alter table 表名 add 字段 类型;
#修改字段类型
alter table 表名 modify 字段 新类型;
#修改字段名
alter table dept_xu change des aa varchar(10);
#删除字段
alter table 表名 drop 字段名;
#修改数据记录
#更新数据
update 表名 set 字段=新值,字段=新值 where 条件;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
D删除
#删除数据库
#删除数据表
drop table 表名;
#删除视图
drop view 视图名;
#删除数据记录
#删除数据
delete from 表名 where 条件;
#清空数据
truncate table dept_xu;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
补充
#查看语句执行时间
show variables like '%%pro%%';
#开启
set profiling=1;
#查看
show profiles;
- 1
- 2
- 3
- 4
- 5
- 6
存储过程
#创建存储过程:查询员工表中最高薪水
delimiter //
create procedure maxSalary()
begin
select max(salary) from emp_xu;
end //
delimiter ;
#调用存储过程
call maxSalary();
#创建带有输出存储过程:查询员工表中最高薪水、最低薪水、平均薪水
delimiter //
create procedure empSalary(
out max_salary double(7,2),
out min_salary double(7,2),
out avg_salary double(7,2)
)
begin
select max(salary) into max_salary from emp_xu;
select min(salary) into min_salary from emp_xu;
select avg(ifnull(salary,0)) into avg_salary from emp_xu;
end //
delimiter ;
#调用
call empSalary(@max_salary,@min_salary,@avg_salary);
#查看
select @max_salary,@min_salary,@avg_salary;
#创建带有输入输出参数存储过程:根据员工号查询员工姓名
delimiter //
create procedure getName(
in dt int,
out dn varchar(10)
)
begin
select ename into dn
from emp_xu where empno=dt;
end //
delimiter ;
#调用
call getName(1004,@dn);
#查看
select @dn;
#删除存储过程
drop procedure getName;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
用户权限
用户管理
DCL:权限
create usergrant
evoke
//切换mysql数据库
use mysql;
//创建用户a
create user a@'localhost' identified by '1234';
//分配权限
操作jsd库中所有表权限
grant all on jsd.* to a@'localhost';
//回收权限
revoke delete on jsd.* from a@'localhost';
//a用户登录
cmd
cd 路径
C:MySQLMySQL Server 5.5in
mysql -h localhost -u a -p1234
//当前用户
select user();
use jsd;
set names gbk;
select * from emp_xu;
localhost:127.0.0.1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
SQL划分
DDL 结构 createalterdrop
DML 数据 insertupdatedelete
TPL 事务 commit
ollback
DQL 查询 基础查询、子查询、表间关联
DCL 权限 create usergrant
evoke
推荐阅读