MySQL数据库管理

目录

一、数据库简介

1、 关系型数据库(SQL)

①关系型数据库类型:

②存储结构的类型

③存储格式:二维表格

2、非关系型数据库(NoSQL)

二、SQL语句

1、DDL 数据定义语言

①创建库、表

②查看库、表

③删除库、表

④修改表结构

⑤MySQL的6大约束属性

PS:外键约束

①主、外键表的创建

②外键约束如何保证数据的完整性和一致性的

2、DML 数据操纵语言

①插入数据

②修改数据

③删除数据

3、DQL 数据查询语言

①查询数据

②分页查询

4、DCL 数据控制语言

1.用户账户管理

①创建用户

②查看用户信息

③重命名用户

④删除用户

2.用户密码管理

①修改用户密码

PS:MySQL命令登录

3.授权管理

①grant语句基本格式

②查看用户权限

③撤销用户权限

三、数据表高级操作

1、克隆表

①create、insert命令结合克隆

②create命令直接克隆

2、清空表数据

①delete命令

②truncate命令

3、创建临时表

①创建命令

②临时表特点

4、如何找回root密码


一、数据库简介

数据库分两大类: 关系型数据库(SQL) 非关系型数据库(NoSQL)

1、 关系型数据库(SQL)

①关系型数据库类型:

MySQL MariaDB PostgreSQL SQL_Server Oracle DB2

国产数据库(信创标准):

达梦 人大金仓 greatSQL 华为(高斯OpenGauss) 阿里(Oceanbase) 阿里云(RDB) 腾讯(TDSQL)

②存储结构的类型

库 -> 表 -> 二维表格形象的结构化数据

行(记录):用来描述一个对象的信息

列(字段):用来描述对象的一个属性

③存储格式:二维表格

2、非关系型数据库(NoSQL)

①存储格式:非二维表格

不同类型的NoSQL采用不同的存储结构,比如 键值对、文档、索引、时间序列 等

• 缓存型 Redis Memcached • 文档型 MongoDB • 索引型 ElasticSearch • 时序型 Prometheus InfluxDB • 列式型 Hbase

二、SQL语句

关系型数据库专用的操作管理语句 SQL基本操作分4种类型: DDL DML DQL DCL

1、DDL 数据定义语言

用于管理数据库对象(库、表、索引等)

①创建库、表
create database 库名;
use 库名;     切换到库中,进行操作
create table 表名 (字段1 数据类型, 字段2 数据类型, .... , primary key (字段));
②查看库、表
● 查看表内容
show databases;
show tables [from 库名];
● 查看表结构
desc 表名;
show create table 表名;
③删除库、表
drop table 表名;
drop database 库名;
④修改表结构
● 重命名表名
alter table 旧表名 rename 新表名;
● 添加表中字段
alter table 表名 add 新字段 数据类型 [约束属性];
● 删除表中字段
alter table 表名 drop 字段;
● 修改表中字段的数据类型和字段名
alter table 表名 change 旧字段 新字段 数据类型 [约束属性];
                modify  只能修改数据类型,不能重命名字段名
⑤MySQL的6大约束属性
主键约束      primary key       字段的值不能重复,且不能为NULL,一个表只能有一个主键
唯一键约束    unique key        字段的值不能重复,但可以为NULL,一个表可以有多个唯一键
非空约束      not null          字段的值不能为NULL
默认值约束    default 'XXX'     字段的值如果没有设置则使用默认值自动填充
自增约束      auto_increment    字段的值如果没有设置值默认会从 1 开始每行自动递增 1 ,要求设置自增约束的字段必须为主键字段
外键约束      foreign key       保证外键表和主键表相关联数据的完整性和一致性
零填充       int(N) zerofill      使用0进行填充使字段的数值满足 N 位数
PS:外键约束
①主、外键表的创建
主键表    alter table 主表名 add primary key (公共字段);
外键表    alter table 外表名 add foreign key (公共字段) references 主表名 (公共字段);
②外键约束如何保证数据的完整性和一致性的
● 插入数据时,需要先保证主键表的公共字段有相关数据,才能在外键表插入相关联的数据
● 删除数据时,需要先保证外键表已经没有相关联的数据,才能在主键表删除相关的数据

2、DML 数据操纵语言

用于管理表中数据

①插入数据
insert into 表名 (字段1, 字段2, ....) values (字段1的值, 字段2的值, ....);
insert into 表名 values (所有字段的值);
②修改数据
update 表名 set 字段1=值1, 字段2=值2, ....  where 条件表达式;
③删除数据
delete from 表名 where 条件表达式;

3、DQL 数据查询语言

用于查询表数据

①查询数据
select * from 表名 [where 条件表达式];
select 字段1,字段2 from 表名 where 条件表达式;
②分页查询
select 字段 from 表名 limit N;          #查看表的前N行的记录
select 字段 from 表名 limit N,M;        #查看表的第N行之后的连续M行的记录(不包含第N行)

4、DCL 数据控制语言

用于管理用户和授权

1.用户账户管理
①创建用户
create user '用户名'@'来源地址' identified by '密码';    #来源地址可以是 localhost  IP   网段   %(代表任意地址)
②查看用户信息
● 查看所有用户信息
select user,host,authentication_string from mysql.user;
#创建后的用户保存在 mysql 数据库的 user 表里
● 查看当前用户信息
select user();
③重命名用户
rename user '用户名'@'来源地址' to '新用户名'@'新来源地址';
④删除用户
drop user '用户名'@'来源地址';
2.用户密码管理
①修改用户密码
● 修改当前用户密码
set password = password('密码');
alter user '用户名'@'来源地址' identified by '密码';           #只能root用户使用
● 修改其他用户密码
set password for '用户名'@'来源地址' = password('密码');       #只能root用户使用
PS:MySQL命令登录
mysql -u 用户名 -p密码 -h mysql服务器地址 -P mysql端口       #mysql命令远程登录格式
3.授权管理
①grant语句基本格式
grant 权限1,权限2,....  on  库名.表名  to '用户名'@'来源地址'  [identified by '密码'];
#在5.7及以前版本支持grant创建新用户并授权,8.0版本开始grant只能用于授权
flush privileges;   #刷新权限更改

e.g:

#允许用户 zhangsan 在本地查询 mydb 数据库中 所有表的数据记录,但禁止查询其他数据库中的表的记录。
GRANT select ON mydb.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';
​
#允许用户 lisi 在所有终端远程连接 mysql ,并拥有所有权限。
GRANT ALL [PRIVILEGES] ON *.* TO 'lisi'@'%' IDENTIFIED BY '123456';
②查看用户权限
show grants for '用户名'@'来源地址';
③撤销用户权限
revoke 权限列表  on 库名.表名  from  '用户名'@'来源地址';
       all

三、数据表高级操作

1、克隆表

①create、insert命令结合克隆
create table 新表名 like 旧表名;              #克隆表结构
insert into 新表名 select * from 旧表名;      #克隆表数据
#可实现表结构和表数据与旧表都一样
②create命令直接克隆
create table 新表名 (select * from 旧表名);
#表数据和旧表是一样的,但是新表的表结构和旧表的不一定一样

2、清空表数据

①delete命令
delete from 表名;             
#一条一条的删除记录,清空表的效率较慢;auto_increment自增字段仍保留原有的记录
②truncate命令
truncate table 表名;         
#直接重建表,清空表的效率较快;auto_increment自增字段的记录会被重置

3、创建临时表

①创建命令
create temporary table 表名 (....);    
②临时表特点
● 临时表与一般的表的相同点:都可以在表中进行增删改查表数据
● show tables查不到临时表;临时表只能在当前会话中有效,退出当前会话,临时表就会失效

4、如何找回root密码

1)修改mysql配置文件(/etc/my.cnf),在 [mysqld] 配置项下面添加配置 skip-grant-tables
2)重启mysqld服务,使用 mysql 命令直接登录数据库,执行 update mysql.user set authentication_string=password('密码') where user='root'; 修改root用户密码
3)还原mysql配置文件,再重启mysqld服务,即可使用密码登录数据库  mysql -u 用户名 -p密码 [-h mysql服务器地址 -P mysql端口]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值