MySQL数据库相关知识
新增时区,导入数据库方式
安装MySQL
-
安装包安装,点击“下一步”
-
文件配置cmd安装
#配置my.ini basedir = D:\mysql5.7 该参数指定mysql安装目录 datadir = D:\mysql5.7\data 该参数指定mysql数据文件存放目录 default-time-zone="+08:00" 该参数指定时区:北京时间(GMT+0800)
#在bin目录下cmd安装并启动 mysqld -install 安装mysql net start mysql 启动mysql服务
卸载MySQL
停止mysql服务,删除mysql文件,删除数据残留,删除注册表
#数据残留路径
C:\ProgramData\MySQL
#注册表路径(运行窗口,输入regedit,打开注册表编辑器)
计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQL
使用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,'张三');
-
可视化工具:
Navicat:https://www.navicat.com.cn/download/navicat-premium
SQLyog:https://sqlyog.en.softonic.com/download
……
-
数据导入/导出(以Navicat为例)
#MySQL导入数据:运行SQL文件、导入向导(Excel格式、……) #MySQL导出数据:转储SQL文件、导出向导(Excel格式、……)
-
可视化工具创库创表
#数据库名:根据需求自定义 #字符集:utf8 -- UTF-8 Unicode 倒数第二个位置(选择字符集才会有排序规则) #排序规则:utf8_general_ci 开始第一个位置
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,..);
R查找
#查看数据库
#查看编码
show variables like 'char%';
#查看时区
show variables like '%time_zone%';
#查看数据库
show databases;
#查看数据表
#查看表
show tables;
#查看表结构
desc 表名;
#查看视图
select * from 视图名;
#查看数据记录
#单表查询(六子句)
select(结果集)..from(表)..where(条件)..group by(分组)..having(再过滤)..order by(排序)..limit(分页)..
#多表查询
#子查询(非关联)
#子查询(关联)
#表间关联(内连接)
#表间关联(外连接)
U更新
#修改数据库
#修改数据表
#增加字段
alter table 表名 add 字段 类型;
#修改字段类型
alter table 表名 modify 字段 新类型;
#修改字段名
alter table dept_xu change des aa varchar(10);
#删除字段
alter table 表名 drop 字段名;
#修改数据记录
#更新数据
update 表名 set 字段=新值,字段=新值 where 条件;
D删除
#删除数据库
#删除数据表
drop table 表名;
#删除视图
drop view 视图名;
#删除数据记录
#删除数据
delete from 表名 where 条件;
#清空数据
truncate table dept_xu;
补充
#查看语句执行时间
show variables like '%pro%';
#开启
set profiling=1;
#查看
show profiles;
存储过程
#创建存储过程:查询员工表中最高薪水
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;
用户权限
用户管理
DCL:权限
create user\grant\revoke
//切换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:\MySQL\MySQL Server 5.5\bin
mysql -h localhost -u a -p1234
//当前用户
select user();
use jsd;
set names gbk;
select * from emp_xu;
localhost:127.0.0.1
SQL划分
DDL 结构 create\alter\drop
DML 数据 insert\update\delete
TPL 事务 commit\rollback
DQL 查询 基础查询、子查询、表间关联
DCL 权限 create user\grant\revoke