当前位置:网站首页>21天打卡挑战学习MySQL——《MySQL表管理》第二周 第五篇
21天打卡挑战学习MySQL——《MySQL表管理》第二周 第五篇
2022-08-10 17:39:00 【SuperProgMan.SYJ】
活动地址:CSDN21天学习挑战赛
一、常用的数据类型
数据类型 | 解释 |
---|---|
int | 整型 |
float | 单精度浮点 4字节32位 |
double | 双精度浮点 8字节64位 |
varchar | 可变长度的字符类型 |
text | 文本 |
decimal (5,2) | 5个有效长度数字,小数点后面有2位 |
image | 图片 |
char | 固定长度的字符类型 |
二、查看数据库结构
1.查看当前服务器中的数据库
SHOW DATABASES; #大小写不区分,分号“;”表示结束
2.查看数据库中包含的表
USE 数据库名;
SHOW TABLES;
3.查看表的结构(字段)
USE 数据库名;
DESCRIBE 数据库名.表名;
可缩写成: DESC 表名;
三、SQL语句
SQL语言 | 解释 |
---|---|
DDL | 数据定义语言,用于创建数据库对象,如库、表、索引等 |
DQL | 数据查询语言,用于从数据表中查找符合条件的数据记录 |
DCL | 数据控制语言,用于设置或者更改数据库用户或角色权限 |
DML | 数据操纵语言,用于对表中的数据进行管理 |
四、创建及删除数据库和表
1.创建表(订单表)
create table orders(order_id varchar(32),cust_name varchar(64))
default charset=utf8;
建表完成后,使用 show tables 查看表
desc orders :查看表结构
show create table orders :查看建表语句
删除表:drop table orders;
**插入记录:**
INSERT INTO orders VALUES
(....),(....),(....)....;
查询所有:select * from orders;
带条件查询部分字段: select 字段1,字段2... from orders where[查询条件]
**修改记录:**
UPDATE 表名
SET 字段1 = 值1,
字段2 = 值2,
...
WHERE 条件表达式;
limit子句
作用:限制显示的笔数
格式
limit n 只显示前面n笔
limit m,n 从第m开始,总共显示n笔
示例
-- 查询所有订单,显示前2笔
SELECT * FROM orders limit 2;
-- 查询所有订单,显示金额最大的2笔
SELECT * FROM orders
ORDER BY amt DESC limit 2;
-- 利用limit分页:每页3笔数据
-- 第1页
SELECT * FROM customer limit 0,3;
-- 第2页
SELECT * FROM customer limit 3,3;
-- 第3页
SELECT * FROM customer limit 6,3;
示例
- 修改某个订单的状态
update orders set status = 2
where order_id = '201801010001';
**删除记录:**
delete from 表名 where 条件表达式;
示例
-- 删除201801010002订单的信息
delete from orders where order_id='201801010002';
**模糊查询**
格式:where 字段 LIKE "通配字符"
通配符匹配
下划线(_): 匹配单个字符
百分号(%): 匹配任意个字符
例: -- 查询所有名字以D开头的客户
SELECT * FROM customer
WHERE cust_name LIKE 'D%';
空值、非空判断
语法
判断空值:字段 IS NULL
判断非空:字段 IS NOT NULL
示例:查询电话号码为空值的客户信息
SELECT * FROM customer
WHERE tel_no IS null;
-- where tel_no is not null; -- 电话非空
查询子句
ORDER BY: 排序
格式:order BY 字段 [ASC/DESC]
ASC-升序 DESC-降序
示例:查询所有订单,按照金额降序排列
SELECT order_id, amt
FROM orders
ORDER BY amt desc; -- asc或不写,升序
distinct子句
作用:去除重复数据
语法格式
SELECT DISTINCT(要去重的字段)
FROM 表名
示例:查询客户表中一共有几个不重复的名字
SELECT DISTINCT(cust_name)
FROM customer;
聚合函数
什么是聚合:不是直接查询表中的数据,
而是对数据进行总结,返回结果
聚合函数有:
max 求最大值
MIN 求最小值
AVG 求平均值
SUM 求和
COUNT 统计笔数
示例
SELECT MAX(amt) "最大金额",
MIN(amt) "最小金额",
AVG(amt) "平均金额",
SUM(amt) "订单总金额"
FROM orders;
-- 统计订单笔数
SELECT COUNT(*) FROM orders;
-- 统计电话号码以135开头的客户数量
-- 查customer表
SELECT COUNT(*) FROM customer
WHERE tel_no LIKE '135%';
说明:对某个字段调用聚合函数时,如果
字段的值为空,不会参与聚合操作
分组:group BY
=作用:对查询结果进行分组,通常和聚合函数
搭配使用
语法格式:group BY 字段
示例
-- 统计客户数量,按照客户名称分组
SELECT cust_name, COUNT(*)
FROM customer GROUP BY cust_name;
-- 从orders表,统计每种状态订单的总金额
SELECT status, SUM(amt)
FROM orders GROUP BY status;
Having:对分组结果进行过滤
作用:对分组结果进行过滤,需要和group BY
语句配合使用
语法格式
GROUP BY 分组字段 HAVING 过滤条件
示例
-- 按照订单状态统计总金额
-- 查询结果中只保留总金额大于500的
SELECT status, SUM(amt)
FROM orders
GROUP BY status
HAVING SUM(amt) > 500;
说明:group by分组聚合的结果,只能用
having,不能用where,where只能
用户表中有的字段作为条件时候
表结构调整
添加字段
语法
- 添加到表的最后一个字段
ALTER table 表名 ADD 字段名 类型(长度)
- 添加到表的第一个字段
ALTER table 表名 ADD 字段名 类型(长度) first
- 指定添加到某个字段后面
ALTER table 表名 ADD 字段名 类型(长度)
after 字段名称
示例
CREATE TABLE student(
stu_no VARCHAR(32),
stu_name VARCHAR(128)
);
添加字段
-- 在最后添加年龄字段
ALTER TABLE student ADD age int;
-- 将id字段添加到第一个字段
ALTER TABLE student ADD id INT first;
-- 将tel_no添加到stu_name后面
ALTER TABLE student ADD tel_no VARCHAR(32)
after stu_name;
修改字段
修改字段类型
ALTER TABLE 表名 modify 字段 类型(长度)
修改字段名称
ALTER TABLE 表名
change 旧字段名 新字段名 类型(长度)
示例
-- 修改student表stu_name字段长度为64
ALTER TABLE student
modify stu_name VARCHAR(64);
-- 将student表age字段改为stu_age
ALTER TABLE student
change age stu_age int;
删除字段
语法:ALTER TABLE 表名 DROP 字段名
示例:删除student表id字段
ALTER TABLE student DROP id;
边栏推荐
猜你喜欢
随机推荐
「企业架构」企业架构师,解决方案架构师和软件架构师有何不同
R语言ggplot2可视化:使用ggpubr包的text_grob函数和as_ggplot函数可视化文本段落(将指定文本段落可视化出来、指定文本段可视化为图像)、face参数指定文本的字体样式
网络可观测性:让您的网络监控更上一层楼|TechGenix
函数柯里化(curry)
Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
「Web应用架构」轮询,SSE 和WebSocket,如何选择合适的?
Moonbeam于Moonbase Alpha构建新式XCM对EVM跨链功能
Your local docbook2man was found to work with SGML rather than XML
期货开户手续费加1分已经是常态
成为一个优秀的测试工程师需要具备哪些知识和经验?
「业务架构」业务能力的热图是什么,有啥用?
Colocate Join :ClickHouse的一种高性能分布式join查询模型
文件包含漏洞复习总结
R语言patchwork包将多个可视化结果组合起来、plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义后缀信息(suffix)
fastjson chain analysis (1.2.22-47)
PS2手柄通讯协议解析—附资料和源码「建议收藏」
MongoDB教程
Toronto Research Chemicals农药检测丨Naled-d6
讯飞翻译机抢镜背后,跨语种沟通迈入全新时代
shopee API 接入说明