【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

这篇具有很好参考价值的文章主要介绍了【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、MySQL 应该掌握哪些知识点 ?

🎄 (1) MySQL 基础篇(初级工程师)

  • ① MySQL 基础概念
  • ② SQL 语句
  • ③ 函数
  • ④ 约束
  • ⑤ 多表查询
  • ⑥ 事务

🎄 (2) MySQL 进阶篇(中级工程师)

  • ① 存储引擎
  • ② 索引
  • ③ SQL 优化
  • ④ 视图、存储过程、触发器
  • ⑤ 锁
  • ⑥ InnoDB 核心
  • ⑦ MySQL 管理

🎄 (3) 运维篇(高级工程师)

  • ① 日志
  • ② 主从复制
  • ③ 分库分表
  • ④ 读写分离

二、数据库相关概念

✏️ 数据库:存储数据的仓库(仓库中的数据是被有组织的存储的)【Database】

✏️ 数据库管理系统:操纵和管理数据库的大型软件【Database Management System】

✏️ SQL:操纵关系型数据库的编程语言(定义了一套操纵关系型数据库的同一标准)【Structured Query Language】

三、主流关系型数据库管理系统

📝 Oracle(非开源)
📝 MySQL(社区版是开源的)
📝 Sql Server(微软研发)
📝 PostgreSQL
📝 IBM Db2
📝 SQLite(安卓使用)

四、关系型数据库

🎄 关系型数据库(RDBMS):由多张相互关联的二维组成的数据库

五、SQL 语句的分类

📌 ① DDL(Data Definition Language)
数据定义语言【用于定义数据库字段 …】

📌 ② DML(Data Manipulation Language)
数据操作语言【用于对数据库表中的数据进行

📌 ③ DQL(Data Query Language)
数据查询语言【用于询数据库中表的记录】

📌 ④ DCL(Data Control Language)
数据控制语言【用于创建数据库用户、控制数据库的访问权限】

六、DDL

🎄 Data Definition Language:数据定义语言

(1) 数据库操作

查询:
🎼 ① 查询所有数据库:

SHOW DATABASES;

🎼 ② 查询当前数据库

SELECT DATABASE();

🎼 ③ 创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name;

IF NOT EXISTS 表示 只有当数据库不存在的时候才创建,避免了下图的错误

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

CREATE DATABASE IF NOT EXISTS db_name DEFAULT CHARSET = utf8mb4

✏️ utf8mb4 字符集可存储 4 个字节的数据(可存储表情包)
✏️ utf8 字符集只能存储 3 个字节的数据
✏️ 推荐使用 utf8mb4

📌 DEFAULT CHARSET 用于设置数据的字符集

🎼 ④ 删除数据库

 DROP DATABASE [IF EXISTS] db_name

📌 IF EXISTS 只有存在才删除

🎼 ⑤ 使用数据库

USE db_name

(2) 表操作

🎄 ① 查询当前数据库的所有表

SHOW TABLES

🎄 ② 查询表结构

DESC table_name

🎄 ③ 查询指定表的建表语句

SHOW CREATE TABLE table_name

🎄 ④ 创建表

CREATE TABLE `student` (
  `id` INT(11) DEFAULT NULL COMMENT '编号',
  `name` VARCHAR(20) DEFAULT NULL COMMENT '姓名',
  `age` TINYINT(4) DEFAULT NULL COMMENT '年龄',
  `gender` CHAR(1) DEFAULT NULL COMMENT '性别'
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='这是学生表'
  • ① 使用 VARCHAR 类型必须指定长度
  • ② 最后一个字段的后面不要加 ,【加了会报错】

(3) 字段的数据类型

🎄 数据库表的数据类型有三种:

① 数值类型
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

DECIMAL 数据类型的精度和标度:
eg:25.689 的精度是 5
eg:25.689 的标度是 3

🎄 age:tinyint unsigned

  • unsigned【年龄不会有负数】

🎄 score:总分100分,最多出现一位小数

  • score double(4,1)
  • 分数有可能是:100.1【所以是4
  • 只会有一位小数【所以是1

② 字符串类型
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

  • 长字符串】varchar(10):最多只能存储10个字符,会根据实际情况指定占用的空间【性能比 char 差】

  • 长字符串】char(10):最多只能存储10个字符,当存储的是1个字符的时候也是占用10字符的空间,为使用的字符用空格补位【性能比 varchar 好】

【姓名 name】用 varchar 类型比较好
【性别 gender】用 char 类型比较好

📝 varchar(n):n 表示的是最大字符数【占用的空间不固定,但占用的最大空间是固定的】
📝 char(n):n 表示的是总字符数【占用的空间是固定的】


③ 日期时间类型
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

(4) 创建员工表

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

CREATE TABLE employer   (
	id INT UNSIGNED COMMENT '编号',
	`work_no` VARCHAR(10) COMMENT '工号',
	`name` VARCHAR(10) COMMENT '姓名',
	 age TINYINT(3) UNSIGNED COMMENT '年龄' ,
    `gender` CHAR(1) COMMENT '性别',
     id_number CHAR(18) COMMENT '身份证号',
     entry_date DATE COMMENT '入职时间'
) COMMENT '员工表'

(5) 修改表结构

📌 ① 往表中新增字段
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

为 employer 表新增【昵称】字段, 字段名为 nickname,类型为 varchar(20)

ALTER TABLE employer ADD nickname VARCHAR(20) COMMENT '昵称';

📌 ② 修改表中的字段

  • 修改字段的数据类型
    【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

把 employer 表中 id 字段的数据类型修改为 BIGINT, 也无符号

ALTER TABLE employer MODIFY id BIGINT UNSIGNED;
  • 修改字段名和数据类型
    【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

修改 employer 表中 nickname 字段的字段名为 username,类型是 varchar(30)

ALTER TABLE employer CHANGE nickname username VARCHAR(30) COMMENT '用户名'

📌 ③ 删除表中的字段

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

删除 employer 表中的 age 字段

ALTER TABLE employer DROP age

📌 ④ 修改表名

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

把 employer 表的表名修改为 staff

ALTER TABLE employer RENAME TO staff

(6) 删除某一张表

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句
删除数据库中的表名为 emp 的表,如果存在的话

DROP TABLE IF EXISTS emp

删除指定表,并重新创建表(类似删除表中的全部数据)
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

七、DML

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

DELETE FROM table_name
TRUNCATE table_name

八、DQL

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

(1) 员工表

create table emp (
	id int comment '编号',
	workno varchar(10) comment '工号',
	name varchar(10) comment '姓名',
	gender char(1) comment '性别',
	age tinyint unsigned comment '年龄',
	idcard char(18) comment '身份证号',
	workaddress varchar(50) comment '工作地址',
	entrydate varchar(33) comment '入职时间'
)comment '员工表';
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '00001', '柳岩666', '女', 20, '123456789012345678', '北京', '2000-01-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-
01');
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01');

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

(2) distinct、as

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

distinct: 去除查询结果的重复项

(3) where

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句
【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

查询没有身份证号的员工信息

select * from emp where idcard is null;

查询有身份证号的员工信息

select * from emp where idcard is not null;

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

查询年龄不等于88岁的员工信息

select * from emp where age != 88;
select * from emp where age <> 88;

查询年龄在 15 到 20 岁的员工信息(包含15和20岁)

select * from emp where age between 15 and 20;
select * from emp where age >= 15 && age <= 20;
select * from emp where age >= 15 and age <= 20;

查询年龄是 18、20 或 40 的员工信息

select * from emp where age = 18 or age = 20 or age = 40;
select * from emp where age in (18, 20, 40);

查询姓名为两个字的员工信息

select * from emp where name like '__' # 两个下划线

查询身份证号最后一位为 x 的员工信息

select * from emp where idcard like '%x';

(4) 聚合函数

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

1、统计员工数量

select count(*) 'employeeNum' from emp;
select count(id) as '员工数量' from emp;

2、统计员工平均年龄

select avg(age) '平均年龄' from emp;

3、统计员工最大年龄

select max(age) '最大年龄' from emp;

4、统计员工最小年龄

select min(age) '最小年龄' from emp;

5、统计西安地区员工的年龄之和

select sum(age) '年龄和' from emp where workaddress = '西安';

(5) group by、where 和 having 区别

分组(GROUP BY)一般要结合聚合函数一起使用。

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句
1、根据性别分组,统计男性员工和女性员工的数量

SELECT
	gender,
	count( gender ) '人数'
FROM
	emp 
GROUP BY
	gender;

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

2、根据性别分组,统计男性员工和女性员工的平均年龄

SELECT
	gender,
	avg( age ) '平均年龄' 
FROM
	emp 
GROUP BY
	gender

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

SELECT
	count( * ) '人数',
	workaddress 
FROM
	emp 
WHERE
	age < 45 GROUP BY workaddress HAVING count( * ) >= 3;

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

(6) order by

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

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

select name, age from emp order by age asc;
select name, age from emp order by age;

2、根据入职时间,对员工进行降序排序

SELECT
	* 
FROM
	emp 
ORDER BY
	entrydate DESC;

3、根据年龄对公司的员工进行升序排序 , 年龄相同 , 再按照入职时间进行降序排序

SELECT
	* 
FROM
	emp 
ORDER BY
	age,
	entrydate DESC;

(7) 分页查询

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

1、查询第1页员工数据, 每页展示10条记录

select * from emp limit 0, 10;
select * from emp limit 10;

2、查询第2页员工数据, 每页展示10条记录

select * from emp limit 10, 10;

(8) exercise

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

select * from emp where age >= 20 && age <= 23;
select * from emp where age >= 20 and age <= 23;
select * from emp where age between 20 and 23;
select * from emp where age in (20, 21, 22, 23);
select * from emp where age = 20 or age = 21 or age = 22 or age = 23;

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

SELECT
	* 
FROM
	emp 
WHERE
	gender = '男' 
	AND age BETWEEN 20 
	AND 40 
	AND `name` LIKE '___';

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

SELECT
	gender,
	count( * ) 
FROM
	emp 
WHERE
	age < 60 
GROUP BY
	gender;

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

SELECT
	`name`,
	age,
	entrydate 
FROM
	emp 
WHERE
	age <= 35 
ORDER BY
	age,
	entrydate DESC;

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

SELECT
	* 
FROM
	emp 
WHERE
	gender = '男' 
	AND age BETWEEN 20 
	AND 40 
ORDER BY
	age,
	entrydate 
	LIMIT 5;

(9) DQL 语句的执行顺序

【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句文章来源地址https://www.toymoban.com/news/detail-454434.html

到了这里,关于【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于mysql5.7制作自定义的docker镜像,适用于xxl-job依赖的数据库,自动执行初始化脚本(ddl语句和dml语句)

    xxl-job-admin依赖mysql数据库,且需执行初始化脚本,包括ddl和dml语句。 具体的步骤总结如下: 1、新建数据库xxl_job 2、创建mysql表table 3、执行dml语句,包括新建admin用户及密码,创建执行器和任务。 毫无疑问,人工每次去操作这些,不仅耗费人力和时间,还容易出错。 所以,本

    2024年02月11日
    浏览(17)
  • 【从删库到跑路】MySQL系列——详细讲解SQL的DDL,DML,DQL,DCL语句

    🎊专栏【MySQL】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 内容有点多,建议大家先看目录。 建立在关系模型基础上,由多张相互连接的二维表组成的数据库 🏀使用表存储数据,格式统一,

    2024年02月09日
    浏览(19)
  • 数据库MySQL(三):DML、DQL、DCL

    数据操作语言(Data Manipulation Language,DML) 该语言主要对数据库表中的数据进行增删改 数据查询语言(Data Query Language,DQL) 该语言主要用于查询数据库表的记录 命令格式 SELECT [DISTINCT]    字段1 [AS 字段别名], [字段2 [AS 字段别名]], … FROM    表名列表 WHERE    条件

    2024年02月08日
    浏览(11)
  • Mysql-------SQL:DDL数据定义语言、DDM数据操作语言、DQL数据库查询语言、DQL数据控制语言

    SQL语言可以分为: DDL(Data Definition Language)语言:数据定义语言,用于 创建或更改数据库中的表、视图、索引等对象 DML(Data Manipulation Language)语言:数据操作语言,用来对 数据库表中的数据进行增删改查操作; DQL(Data Query Language)语言: 数据查询语言,用来查询数据库

    2024年02月13日
    浏览(17)
  • 【MySQL】数据库SQL语句之DML

    目录 前言: 一.DML添加数据 1.1给指定字段添加数据 1.2给全部字段添加数据 1.3批量添加数据 二.DML修改数据 三.DML删除数据 四.结尾   时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、放松等,哈哈哈,所以博客就这样被搁了。   今天感觉不错,给大

    2024年02月08日
    浏览(15)
  • MySQL小记——DDL、DML、DQL

    目录 数据库概念 关系型数据库 MySQL使用 SQL语言 sql分类 DDL:操作数据库和表 操作数据库 操作表 DML:数据操作语言,用来增删改数据库记录 1.插入数据 2.删除数据 3.修改数据 DQL:查询 条件查询 模糊查询 字段的运算和去重 排序 order by 聚合函数 分组 group by  分页 limit 存储数

    2024年02月05日
    浏览(39)
  • 学习笔记-mysql基础(DDL,DML,DQL)

    DDL,Data Definition Language,数据库定义语言,该语言包括以下内容: 对数据库的常用操作 对表结构的常用操作 修改表结构 1.对数据库的常用操作 注意:在sql server 中使用,if exists和mysql不同,sql server里面检查是否有这个表再删除,需要这样:if exists (select * from dbo.sysobjects where id = objec

    2024年01月16日
    浏览(12)
  • 开源数据库Mysql_DBA运维实战 (DDL语句)

    例如:CREATE  DROP ALTER 定义库{                 创建业务数据库: CREAATE DATABASE   ___数据库名___ ;                 数据库名要求{                                         a.区分大小写                                         b.唯一性  

    2024年02月13日
    浏览(16)
  • Mysql基础篇(一)之DDL、DML、DQL、DCL

    SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。 分类 全称 说明 DDL Data Definition Language 数据定义语言,用来定义数据对象(数据库,表,字段) DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改 DQL Data Query Language 数据查询语言,用来查询数据

    2024年02月11日
    浏览(28)
  • 【MySQL入门】-- MySQL的SQL分类:DDL、DML、DQL、DCL快速入门

    目录 一、SQL分类 二、讲解DDL、DML、DCL、DQL、TCL 1.常用的DDL(数据定义语言)的操作 2.常用的DML(数据操作语言)的操作 3.常用DCL(数据控制语言)的操作  4.常用DQL(数据查询语言)的操作 5.常用TCL(事务控制语言)的操作 前言: 前面我们已经简单介绍过了数据库的概述以及数据库的一些

    2024年02月13日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包