MySQL数据库+增删改查

文章目录

    • MySQL数据库
    • 1 基本概念
    • 2 数据库系统
      • 2.1 操作数据库
      • 2.2 分类
      • 2.3 常见数据类型
    • 3 SQL语句
      • 3.1 DDL
        • 3.1.1 创建数据库
        • 3.1.2 创建表
        • 3.1.3 删除数据库
        • 3.1.4 删除表
        • 3.1.5 查看所有数据库
        • 3.1.6 查看数据表
      • 3.2 DML
        • 3.2.1 插入数据
        • 3.2.2 删除数据
        • 3.2.3 更新数据
      • 3.3 DQL
        • 3.3.1 显示数据表所有数据
        • 3.3.2 查看特定行数据
        • 3.3.3 修改表名字
        • 3.3.4 增加表字段
        • 3.3.5 修改表字段名
        • 3.3.6 删除字段
      • 3.4 DCL
        • 3.4.1 创建用户
        • 3.4.2 重命名
        • 3.4.3 删除用户
        • 3.4.4 设置密码
        • 3.4.5 找回root用户密码
        • 3.4.6 权限管理

MySQL数据库

1 基本概念

表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据集合
是按照数据结构来组织、存储和管理数据的仓库

关系型数据库存储结构是二维表格

库->表->列
每一行称为一条记录,用来描述一个对象的信息
每一列称为一个字段,用来描述对象的一个属性

2 数据库系统

是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成

2.1 操作数据库

  1. 应用程序将数据请求发送到DBMS
  2. DBMS将底层指令发送到DB
  3. DB将查询到的结果转换成数据给DBMS
  4. DBMS将数据处理的结果给应用程序

2.2 分类

关系型数据库

关系数据库系统是基于关系模型的数据库系统
关系模型的数据结构使用简单易懂的二维数据表
关系模型可用简单的实体-关系 E-R图来表示

名称 适用
SQL Server 面向windows操作系统简单易用
Oracle 面向所有主流平台,安全、完善、操作复杂
DB2 面向所有主流平台 大型 安全 完善
MySQL 免费开源(5.7/8.0)
Mariadb 轻量级数据库

MySQL搭配使用PostgreSQL开源关系型数据库,实现平移Oracle


非关系型数据库

NoSQL 存储结构 键值对k/v key/value

名称 类型
Redis Memcached 缓存型
MongoDB 文档型
ElasticSearch 搜索型
Prometheus InfluxDB 时序性

2.3 常见数据类型

名称 特点
int 整型,无符号[0,2^32-1] 有符号[-2^31 2^32-1]
float 单精度浮点,4字节32位
double 双精度浮点,8字节64位
char 固定长度的数据类型,占用大,但是修改容易
varchar 可变长度的字符类型,删除修改情况下回产生数据碎片
text 文本
image 图片
decimal 5个有效长度数字,小数点后面有2位

3 SQL语句

3.1 DDL

用于创建数据库对象:库、表、索引

3.1.1 创建数据库

create database <库名>;

MySQL数据库+增删改查_第1张图片

3.1.2 创建表

create table <表名> (字段名1 数据类型 [字段属性],字段名2 数据类型 [字段属性].... [primary key(字段)]);

MySQL数据库+增删改查_第2张图片

3.1.3 删除数据库

drop database <库名>;

3.1.4 删除表

drop table <表名>;

MySQL数据库+增删改查_第3张图片
MySQL数据库+增删改查_第4张图片

3.1.5 查看所有数据库

show databases;

MySQL数据库+增删改查_第5张图片

3.1.6 查看数据表

1. 	use <库名>;
	show tables;
2.	show tables from <库名>;
	#不进入数据库查看数据表

MySQL数据库+增删改查_第6张图片MySQL数据库+增删改查_第7张图片


3.2 DML

管理数据表数据

3.2.1 插入数据

insert into <表名> (字段1, 字段2, ...)  values (字段1的值, 字段2的值, ...);

或

insert into <表名> values (按照字段顺序的所有字段的值);

MySQL数据库+增删改查_第8张图片
在这里插入图片描述
MySQL数据库+增删改查_第9张图片

3.2.2 删除数据

delete from <表名> where 条件表达式;

3.2.3 更新数据

update <表名> set 字段=值,..... where 条件表达式;

MySQL数据库+增删改查_第10张图片


3.3 DQL

用于根据条件查询表数据

3.3.1 显示数据表所有数据

select 字段1,字段2,...,最后字段 from <表名> where 条件表达式;
或者
select * from <表名>;

MySQL数据库+增删改查_第11张图片
MySQL数据库+增删改查_第12张图片

3.3.2 查看特定行数据

select * from <表名> limit N;
#显示表前N行

select * from <表名> limit N,M;
#显示从第N行之后的M行记录,不包括第N行

MySQL数据库+增删改查_第13张图片
MySQL数据库+增删改查_第14张图片

3.3.3 修改表名字

alter table <旧表名> rename <新表名>;

MySQL数据库+增删改查_第15张图片

3.3.4 增加表字段

alter table <表名> add 新字段 数据类型 字段属性;

MySQL数据库+增删改查_第16张图片

3.3.5 修改表字段名

alter table <表名> change 旧字段名 新字段名 数据类型 字段属性;

MySQL数据库+增删改查_第17张图片

3.3.6 删除字段

alter table <表名> drop 字段名;
delete from 表名 [where 条件表达式];

MySQL数据库+增删改查_第18张图片


3.4 DCL

用户管理

3.4.1 创建用户

create user '用户名'@'源地址' identified by '密码';
#源地址可以localhost或%

在这里插入图片描述
MySQL数据库+增删改查_第19张图片

3.4.2 重命名

select user,host,authentication_string from mysql.user;
rename user  '旧用户名'@'源地址'  to  '新用户名'@'源地址';

3.4.3 删除用户

drop user '用户名'@'源地址';

MySQL数据库+增删改查_第20张图片

3.4.4 设置密码

set password [for '用户名'@'源地址'] = password('.....');

MySQL数据库+增删改查_第21张图片

3.4.5 找回root用户密码

1. 修改配置文件,在[mysqld]下面添加skip-grant-tables
2. 重启mysqld服务,使用mysql命令直接免密进入数据库系统
3. update mysql.user set authentication_string=password ('新密码') where user='root'
4. 还原配置文件,重启服务

MySQL数据库+增删改查_第22张图片
MySQL数据库+增删改查_第23张图片
在这里插入图片描述
MySQL数据库+增删改查_第24张图片

3.4.6 权限管理

grant 权限1,权限2,... on 库名,表名 to '用户名'@'源地址' [identified by '密码'];
show grants for '用户名'@'源地址';
查看用户权限

revoke 权限1,权限2(所有权限用all) on 库名,表名 from '用户名'@'源地址';
#撤销权限

在这里插入图片描述
MySQL数据库+增删改查_第25张图片
MySQL数据库+增删改查_第26张图片

权限列表

MySQL数据库+增删改查_第27张图片

你可能感兴趣的:(MySQL,数据库,mysql,sql)