简介
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),用于存储和管理数据。它是由瑞典公司MySQL AB开发的,并且现在由Oracle公司拥有和维护。
MySQL使用SQL(结构化查询语言)作为其主要查询语言,支持广泛的数据库操作,包括创建、查询、更新和删除数据等。它提供了高度可靠的数据安全性和完整性,具有良好的性能和可伸缩性。
关系型数据库(RDBMS)
概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
特点:使用表存储数据,格式统一,便于维护;使用SQL语言操作,标准统一,使用方便。
SQL 分类
DDL 数据定义语言
数据库操作
使用示例:
查询所有数据库:
查询当前数据库:
创建数据库:
删除数据库:
使用数据库:
表操作--查询
使用示例:
查询当前数据库所有表:
查询表结构:
查询指定表的建表语句:
表操作--表的创建
使用示例:
数据类型
数值类型
字符类型
日期类型
表操作--修改
使用示例:
初始表结构:
添加字段:
修改数据类型:
修改字段名和字段类型:
删除字段:
修改表名:
表操作---删除表
删除指定表,并重新创建该表:
注:该命令在删除表后重新创建该表,也就是将原表中的所有数据清空。
删除表:
DML 数据操作语言
添加数据
使用示例:
给指定字段添加数据:
给全部字段添加数据:
批量添加数据:
修改数据:
删除数据:
DQL 数据查询语言
语法:
DQL -- 基本查询
使用实例:
使用之前先创建一张表,并插入数据:
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)) 中进行操作,请读者自行安装。
查询多个字段:
查询所有字段(生产环境中禁止使用):
设置别名:
去重:
DQL -- 条件查询
使用示例:
查询 age 等于88岁的员工:
查询身份证号为空的员工:
查询年龄在 15岁 到 20岁的员工信息:
查询年龄在18 20 40岁的员工信息:
查询姓名为三个字的员工:
% 通配符可以适配任意字符,null值不匹配:
DQL -- 聚合函数
使用示例:
统计员工数量:
计算员工平均年龄:
查询员工最大年龄:
查询员工最小年龄:
统计员工年龄总和:
DQL -- 分组查询
使用示例:
根据性别进行分组,分别统计男性员工和女性员工的数量:
查询年龄小于45岁的员工,并根据工作地址进行分组,获取员工数量大于等于3的工作地址:
DQL -- 排序查询
使用示例:
根据年龄对公司的员工进行升序排序:
根据年龄对公司的员工进行升序排序,年龄相同,根据入职时间对员工进行降序排序:
DQL -- 分页查询
使用示例:
查询第一页员工的数据,一页显示十条内容:
查询第二页员工的数据,一页显示十条数据:
答案:
DQL 执行顺序
DCL 数据控制语言
DCL -- 管理用户
使用示例:
- 所有的用户信息都存在于 mysql 数据库中:
前两列为允许访问主机和用户名,后面列为用户权限。
创建用户、修改用户密码、删除用户:
DCL -- 权限控制
使用示例:
查看权限:
授予权限:
撤销权限: