mysql的数据模式以及DDL、DML、DQL、DCL

本文介绍了如何通过MySQL客户端连接DBMS进行数据库操作,包括使用DDL进行数据库和表的创建、修改和删除,DML的查询操作,如DISTINCT、WHERE条件、聚合函数的应用,以及DCL的相关概念。提供了具体的SQL语句示例,如查询特定条件的数据、统计和排序等。
摘要由CSDN通过智能技术生成

数据模型

请添加图片描述

通过MySQL客户端连接数据库管理系统DBMS,然后使用SQL语言通过DBMS操作数据库。

其中数据库管理系统包含Oracle、Mysql、SQLserver等

DDL、DML、DQL、DCL

在这里插入图片描述

DDL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IQIYk1AJ-1684222437164)(/Users/zjm/Desktop/笔记/mysql/img/截屏2023-05-11 14.25.28.png)]

值得注意的一些点:

数据库操作

创建数据库

  • create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;

删除数据库

  • drop database [ if exists ] 数据库名 ;

表操作

创建表结构

CREATE TABLE 表名( 
	字段1 字段1类型 [COMMENT 字段1注释 ], 
	字段2 字段2类型 [COMMENT 字段2注释 ], 
	字段3 字段3类型 [COMMENT 字段3注释 ], ...... 
	字段n 字段n类型 [COMMENT 字段n注释 ] 
) [ COMMENT 表注释 ] ;
  • 注意: […] 内为可选参数,最后一个字段后面没有逗号

查询指定表的建表语句

  • show create table 表名 ;

表操作

-- 添加字段
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
-- 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
-- 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
-- 删除字段
ALTER TABLE 表名 DROP 字段名;
-- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
-- 删除表
DROP TABLE [ IF EXISTS ] 表名;
DML

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A6hYDH79-1684222437165)(/Users/zjm/Desktop/笔记/mysql/img/截屏2023-05-11 14.54.01.png)]

DQL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EKDob8ZM-1684222437165)(/Users/zjm/Desktop/笔记/mysql/img/截屏2023-05-11 14.56.53.png)]

-- 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
-- 查询所有员工的工作地址,起别名,as可以省略
select distinct workaddress as '工作地址' from emp;

条件where

  • 比较运算符

常见的聚合函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rKXj1Ewy-1684222437165)(/Users/zjm/Desktop/笔记/mysql/img/截屏2023-05-11 15.02.43.png)]

案例

-- 查询年龄为20,21,22,23岁的员工信息。
select * from emp where gender = '女' and age in(20,21,22,23);
-- 查询性别为 男 ,并且年龄在 20-40 岁(含)以内的姓名为三个字的员工。
select * from emp where gender = '男' and ( age between 20 and 40 ) and name like '___';
-- 统计员工表中, 年龄小于60岁的 , 男性员工和女性员工的人数。
select gender, count(*) from emp where age < 60 group by gender;
-- 查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按
-- 入职时间降序排序。
select name , age from emp where age <= 35 order by age asc , entrydate desc;
--  查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,
-- 年龄相同按入职时间升序排序
select * from emp where gender = '男' and age between 20 and 40 order by age asc , entrydate asc limit 5 ;

执行顺序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C6qHTfG3-1684222437165)(/Users/zjm/Desktop/笔记/mysql/img/截屏2023-05-11 16.22.19.png)]

DCL

截屏2023-05-11 16.32.12

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值