MySQL 1

73 阅读5分钟

简介

MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),用于存储和管理数据。它是由瑞典公司MySQL AB开发的,并且现在由Oracle公司拥有和维护。

MySQL使用SQL(结构化查询语言)作为其主要查询语言,支持广泛的数据库操作,包括创建、查询、更新和删除数据等。它提供了高度可靠的数据安全性和完整性,具有良好的性能和可伸缩性。

关系型数据库(RDBMS)

概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
特点:使用表存储数据,格式统一,便于维护;使用SQL语言操作,标准统一,使用方便。

SQL 分类

image.png

DDL 数据定义语言

数据库操作

image.png

使用示例:

查询所有数据库:

image.png

查询当前数据库:

image.png

创建数据库:

image.png

删除数据库:

image.png

使用数据库:

image.png

表操作--查询

image.png

使用示例:

查询当前数据库所有表:

image.png

查询表结构:

image.png

查询指定表的建表语句:

image.png

表操作--表的创建

image.png

使用示例:

image.png

数据类型

数值类型

image.png

字符类型

image.png

日期类型

image.png

表操作--修改

image.png

image.png

image.png

image.png

使用示例:

初始表结构:

image.png

添加字段:

image.png

修改数据类型:

image.png

修改字段名和字段类型:

image.png

删除字段:

image.png

修改表名:

image.png

表操作---删除表

image.png

删除指定表,并重新创建该表:

image.png

注:该命令在删除表后重新创建该表,也就是将原表中的所有数据清空。

删除表:

image.png

DML 数据操作语言

image.png

添加数据

image.png

使用示例:

给指定字段添加数据:

image.png

给全部字段添加数据:

image.png

批量添加数据:

image.png

修改数据:

image.png

删除数据:

image.png

DQL 数据查询语言

语法:

image.png

DQL -- 基本查询

image.png

使用实例:

使用之前先创建一张表,并插入数据:

drop table if exists employee;

create table if not exists  employee(
    id           int                comment '编号',
    workno       varchar(10)        comment '工号',
    name         varchar(10)        comment '姓名',
    gender       char(1)            comment '性别',
    age          tinyint unsigned   comment '年龄',
    idcard       varchar(18)        comment '身份证号',
    workadress   varchar(50)        comment '工作地址',
    entrydate    date               comment '入职时间'
) comment '员工表';


-- 插入数据
insert into employee values
     (1,'1','柳岩','女','20','123456789012345678','北京','2000-01-01'),
     (2,'2','张无忌','男','18','123456789012345670','北京','2005-09-01'),
     (3,'3','韦一笑','男','38','123456789012345670','上海','2005-08-01'),
     (4,'4','赵敏','女','18','123456789012345670','北京','2009-12-01'),
     (5,'5','小昭','女','16','123456789012345678','上海','2007-07-01'),
     (6,'6','杨逍','男','28','12345678901234567x','北京','2006-01-01'),
     (7,'7','范瑶','男','40','123456789012345670','北京','2005-05-01'),
     (8,'8','黛绮丝','女','38','123456789012345670','天津','2015-05-01'),
     (9,'9','范凉凉','女','45','123456789012345678','北京','2010-04-01'),
     (10,'10','陈友谅','男','53','123456789012345670','上海','2011-01-01'),
     (11,'11','张士诚','男','55','123456789012345670','江苏','2015-05-01'),
     (12,'12','常遇春','男','32','123456789012345670','北京','2004-02-01'),
     (13,'13','张三丰','男','88','123456789012345678','江苏','2020-11-01'),
     (14,'14','灭绝','女','65','123456789012345670','西安','2019-05-01'),
     (15,'15','胡青牛','男','70','12345678901234567x','西安','2018-04-01'),
     (16,'16','周芷若','女','18',null,'北京','2012-06-01');

后续操作都将在 [DataGrip](Download DataGrip: Cross-Platform IDE for Databases & SQL (jetbrains.com)) 中进行操作,请读者自行安装。

查询多个字段:

image.png

查询所有字段(生产环境中禁止使用):

image.png

设置别名:

image.png

去重:

image.png

DQL -- 条件查询

image.png

image.png

使用示例:

查询 age 等于88岁的员工:

image.png

查询身份证号为空的员工:

image.png

查询年龄在 15岁 到 20岁的员工信息:

image.png

查询年龄在18 20 40岁的员工信息:

image.png

查询姓名为三个字的员工:

image.png

% 通配符可以适配任意字符,null值不匹配:

image.png

DQL -- 聚合函数

image.png

image.png

使用示例:

统计员工数量:

image.png

计算员工平均年龄:

image.png

查询员工最大年龄:

image.png

查询员工最小年龄:

image.png

统计员工年龄总和:

image.png

DQL -- 分组查询

image.png

image.png

image.png

使用示例:

根据性别进行分组,分别统计男性员工和女性员工的数量:

image.png

查询年龄小于45岁的员工,并根据工作地址进行分组,获取员工数量大于等于3的工作地址:

image.png

DQL -- 排序查询

image.png

使用示例:

根据年龄对公司的员工进行升序排序:

image.png

根据年龄对公司的员工进行升序排序,年龄相同,根据入职时间对员工进行降序排序:

image.png

DQL -- 分页查询

image.png

使用示例:

查询第一页员工的数据,一页显示十条内容:

image.png

查询第二页员工的数据,一页显示十条数据:

image.png

image.png

答案:

image.png

DQL 执行顺序

image.png

DCL 数据控制语言

image.png

DCL -- 管理用户

image.png

使用示例:

  1. 所有的用户信息都存在于 mysql 数据库中:

image.png

前两列为允许访问主机和用户名,后面列为用户权限。

创建用户、修改用户密码、删除用户:

image.png

DCL -- 权限控制

image.png

image.png

使用示例:

查看权限:

image.png

授予权限:

image.png

撤销权限:

image.png