【MySQL】7. 基本查询(create / retrieve)

简介: 【MySQL】7. 基本查询(create / retrieve)

表的增查

CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

1. Create

语法:

INSERT [INTO] table_name[(column [, column] ...)] VALUES (value_list) [, (value_list)] ...

value_list: value, [, value] ...

案例:

-- 创建一张学生表
CREATE TABLE students (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
sn INT NOT NULL UNIQUE COMMENT '学号',
name VARCHAR(20) NOT NULL,
qq VARCHAR(20)
);

1.1 单行数据 + 全列插入

INSERT INTO students VALUES (101, 10001, '孙悟空', '11111');
Query OK, 1 row affected (0.02 sec
-- 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致
-- 注意,这里在插入的时候,也可以不用指定id(当然,那时候就需要明确插入数据到那些列了),那么mysql会使用默认的值进行自增。
INSERT INTO students VALUES (100, 10000, '唐三藏', NULL);
Query OK, 1 row affected (0.02 sec)
)
-- 查看插入结果
SELECT * FROM students;
+-----+-------+-----------+-------+
| id  |   sn  |   name    |   qq  |
+-----+-------+-----------+-------+
| 100 | 10000 |   唐三藏   |  NULL |
| 101 | 10001 |   孙悟空   | 11111 |
+-----+-------+-----------+-------+
2 rows in set (0.00 sec)

1.2 多行数据 + 指定列插入

-- 插入两条记录,value_list 数量必须和指定列数量及顺序一致
INSERT INTO students (id, sn, name) VALUES (102, 20001, '曹孟德'),(103, 20002, '孙仲谋');
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0
-- 查看插入结果
SELECT * FROM students;
+-----+-------+-----------+-------+
| id  | sn    | name      |   qq  |
+-----+-------+-----------+-------+
| 100 | 10000 |   唐三藏   |  NULL |
| 101 | 10001 |   孙悟空   | 11111 |
| 102 | 20001 |   曹孟德   | NULL  |
| 103 | 20002 |   孙仲谋   | NULL  |
+-----+-------+-----------+-------+
4 rows in set (0.00 sec)

1.3 插入否则更新

由于 主键 或者 唯一键 对应的值已经存在而导致插入失败

-- 主键冲突
INSERT INTO students (id, sn, name) VALUES (100, 10010, '唐大师');
ERROR 1062 (23000): Duplicate entry '100' for key 'PRIMARY'
-- 唯一键冲突
INSERT INTO students (sn, name) VALUES (20001, '曹阿瞒');
ERROR 1062 (23000): Duplicate entry '20001' for key 'sn'

可以选择性的进行同步更新操作 语法:

INSERT ... ON DUPLICATE KEY UPDATE column = value [, column = value] ...
INSERT INTO students (id, sn, name) VALUES (100, 10010, '唐大师') ON DUPLICATE KEY UPDATE sn = 10010, name = '唐大师';
Query OK, 2 rows affected (0.47 sec)
-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,并且数据已经被更新
-- 通过 MySQL 函数获取受到影响的数据行数
SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
|           2 |
+-------------+
1 row in set (0.00 sec)
-- ON DUPLICATE KEY 当发生重复key的时候

1.4 替换(replace)

-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入
REPLACE INTO students (sn, name) VALUES (20001, '曹阿瞒');
Query OK, 2 rows affected (0.00 sec)
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入

2. Retrieve

语法:

SELECT [DISTINCT] {
  
  * | {
  
  column [, column] ...} [FROM table_name] [WHERE ...] [ORDER BY column [ASC | DESC], ...] LIMIT ...

案例:

-- 创建表结构
CREATE TABLE exam_result (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COMMENT '同学姓名',
chinese float DEFAULT 0.0 COMMENT '语文成绩',
math float DEFAULT 0.0 COMMENT '数学成绩',
english float DEFAULT 0.0 COMMENT '英语成绩'
);
-- 插入测试数据
INSERT INTO exam_result (name, chinese, math, english) VALUES
('唐三藏', 67, 98, 56),
('孙悟空', 87, 78, 77),
('猪悟能', 88, 98, 90),
('曹孟德', 82, 84, 67),
('刘玄德', 55, 85, 45),
('孙权', 70, 73, 78),
('宋公明', 75, 65, 30);
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0

2.1 SELECT 列

2.1.1 全列查询

-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大;
-- 2. 可能会影响到索引的使用。(这里并没有用到索引)
SELECT * FROM exam_result;
+----+-----------+-------+--------+--------+
| id |    name   |chinese|  math  | english|
+----+-----------+-------+--------+--------+
| 1  |  唐三藏    |  67   |   98   |   56   |
| 2  |  孙悟空    |  87   |   78   |   77   |
| 3  |  猪悟能    |  88   |   98   |   90   |
| 4  |  曹孟德    |  82   |   84   |   67   |
| 5  |  刘玄德    |  55   |   85   |   45   |
| 6  |  孙权      |  70   |   73   |   78   |
| 7  |  宋公明    |  75   |   65   |   30   |
+----+-----------+-------+--------+--------+
7 rows in set (0.00 sec)

2.1.2 指定列查询

-- 指定列的顺序不需要按定义表的顺序来  
SELECT id, name, english FROM exam_result;
+----+-----------+--------+
| id |    name   | english|
+----+-----------+--------+
| 1  |   唐三藏   |  56    |
| 2  |   孙悟空   |  77    |
| 3  |   猪悟能   |  90    |
| 4  |   曹孟德   |  67    |
| 5  |   刘玄德   |  45    |
| 6  |   孙权     |  78    |
| 7  |   宋公明   |  30    |
+----+-----------+--------+
7 rows in set (0.00 sec)

2.1.3 查询字段为表达式

-- 表达式不包含字段
SELECT id, name, 10 FROM exam_result;
+---+-------+----+
|id |  name | 10 |
+---+-------+----+
| 1 | 唐三藏 | 10 |
| 2 | 孙悟空 | 10 |
| 3 | 猪悟能 | 10 |
| 4 | 曹孟德 | 10 |
| 5 | 刘玄德 | 10 |
| 6 | 孙权   | 10 |
| 7 | 宋公明 | 10 |
+---+-------+----+
7 rows in set (0.00 sec)
-- 表达式包含一个字段
SELECT id, name, english + 10 FROM exam_result;
+----+-----------+-------------+
| id |    name   | english + 10|
+----+-----------+-------------+
| 1  |   唐三藏   |      66     |
| 2  |   孙悟空   |      87     |
| 3  |   猪悟能   |      100    |
| 4  |   曹孟德   |      77     |
| 5  |   刘玄德   |      55     |
| 6  |   孙权     |      88     |
| 7  |   宋公明   |      40     |
+----+-----------+-------------+
7 rows in set (0.00 sec)
-- 表达式包含多个字段
SELECT id, name, chinese + math + english FROM exam_result;
+----+-----------+-------------------------+
| id |     name  | chinese + math + english|
+----+-----------+-------------------------+
| 1  |   唐三藏   |                     221 |
| 2  |   孙悟空   |                     242 |
| 3  |   猪悟能   |                     276 |
| 4  |   曹孟德   |                     233 |
| 5  |   刘玄德   |                     185 |
| 6  |   孙权     |                     221 |
| 7  |   宋公明   |                     170 |
+----+-----------+-------------------------+
7 rows in set (0.00 sec)

2.1.4 为查询结果指定别名

语法:

SELECT column [AS] alias_name [...] FROM table_name;

AS 关键字可省略
SELECT id, name, chinese + math + english 总分 FROM exam_result;
+---+-------+-----+
| id| name  | 总分 |
+---+- -----+-----+
| 1 | 唐三藏 | 221 |
| 2 | 孙悟空 | 242 |
| 3 | 猪悟能 | 276 |
| 4 | 曹孟德 | 233 |
| 5 | 刘玄德 | 185 |
| 6 | 孙权   | 221 |
| 7 | 宋公明 | 170 |
+---+-------+-----+
7 rows in set (0.00 sec)

2.1.5 结果去重

-- 98 分重复了
SELECT math FROM exam_result;
+----+
|math|
+----+
| 98 |
| 78 |
| 98 |
| 84 |
| 85 |
| 73 |
| 65 |
+----+
7 rows in set (0.00 sec)
-- 去重结果
SELECT DISTINCT math FROM exam_result;
+----+
|math|
+----+
| 98 |
| 78 |
| 84 |
| 85 |
| 73 |
| 65 |
+----+
6 rows in set (0.00 sec)

2.2 WHERE 条件

比较运算符:
在这里插入图片描述
逻辑运算符:

---------------------------------------------------
| 运算符 |  说明                                    |
---------------------------------------------------
| AND   | 多个条件必须都为 TRUE(1),结果才是 TRUE(1)  |
| OR    | 任意一个条件为 TRUE(1), 结果为 TRUE(1)     |
| NOT   | 条件为 TRUE(1),结果为 FALSE(0)           |
---------------------------------------------------

2.2.1 英语不及格的同学及英语成绩 ( < 60 )

-- 基本比较
SELECT name, english FROM exam_result WHERE english < 60;
+-----------+--------+
|    name   | english|
+-----------+--------+
|    唐三藏  |   56   |
|    刘玄德  |   45   |
|    宋公明  |   30   |
+-----------+--------+
3 rows in set (0.01 sec)

2.2.2 语文成绩在 [80, 90] 分的同学及语文成绩

-- 使用 AND 进行条件连接
SELECT name, chinese FROM exam_result WHERE chinese >= 80 AND chinese <= 90;
+-------+-------+
| name  |chinese|
+-------+-------+
| 孙悟空 |   87  |
| 猪悟能 |   88  |
| 曹孟德 |   82  |
+-------+-------+
3 rows in set (0.00 sec)
-- 使用 BETWEEN ... AND ... 条件
SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;
+-------+-------+
|  name |chinese|
+-------+-------+
| 孙悟空 |   87  |
| 猪悟能 |   88  |
| 曹孟德 |   82  |
+-------+-------+
3 rows in set (0.00 sec)

2.2.3 数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

-- 使用 OR 进行条件连接
SELECT name, math FROM exam_result
WHERE math = 58
OR math = 59
OR math = 98
OR math = 99;
+-------+----+
| name  |math|
+-------+----+
| 唐三藏 | 98 |
| 猪悟能 | 98 |
+-------+----+
2 rows in set (0.01 sec)
-- 使用 IN 条件
SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99);
+-------+----+
| name  |math|
+-------+----+
| 唐三藏 | 98 |
| 猪悟能 | 98 |
+-------+----+
2 rows in set (0.00 sec)

2.2.4 姓孙的同学 及 孙某同学

-- % 匹配任意多个(包括 0 个)任意字符
SELECT name FROM exam_result WHERE name LIKE '孙%';
+-----------+
|   name    |
+-----------+
|   孙悟空   |
|   孙权     |
+-----------+
2 rows in set (0.00 sec)
-- _ 匹配严格的一个任意字符
SELECT name FROM exam_result WHERE name LIKE '孙_';
+--------+
|  name  |
+--------+
|   孙权  |
+--------+
1 row in set (0.00 sec)

2.2.5 语文成绩好于英语成绩的同学

-- WHERE 条件中比较运算符两侧都是字段
SELECT name, chinese, english FROM exam_result WHERE chinese > english;
+-------+-------+---------+
| name  |chinese| english |
+-------+-------+---------+
| 唐三藏 | 67    | 56      |
| 孙悟空 | 87    | 77      |
| 曹孟德 | 82    | 67      |
| 刘玄德 | 55    | 45      |
| 宋公明 | 75    | 30      |
+-------+-------+---------+
5 rows in set (0.00 sec)

2.2.6 总分在 200 分以下的同学

-- WHERE 条件中使用表达式
-- 别名不能用在 WHERE 条件中
SELECT name, chinese + math + english 总分 FROM exam_result
WHERE chinese + math + english < 200;
+-------+-----+
| name  | 总分 |
+-------+-----+
| 刘玄德 | 185 |
| 宋公明 | 170 |
+-------+-----+
2 rows in set (0.00 sec)

2.2.7 语文成绩 > 80 并且不姓孙的同学

-- AND 与 NOT 的使用
SELECT name, chinese FROM exam_result
WHERE chinese > 80 AND name NOT LIKE '孙%';
+----+-----------+-------+--------+--------+
| id |    name   |chinese|  math  | english|
+----+-----------+-------+--------+--------+
| 3  |   猪悟能   |   88  |   98   |   90   |
| 4  |   曹孟德   |   82  |   84   |   67   |
+----+-----------+-------+--------+--------+
2 rows in set (0.00 sec)

2.2.8 孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80

-- 综合性查询
SELECT name, chinese, math, english, chinese + math + english 总分 FROM exam_result
WHERE name LIKE '孙_' OR (
chinese + math + english > 200 AND chinese < math AND english > 80
);
+-------+-------+------+-------+------+
|  name |chinese| math |english| 总分  |
+-------+-------+------+-------+------+
| 猪悟能 |   88  |  98  |   90  | 276  |
| 孙权   |   70  |  73  |   78  | 221  |
+-------+-------+------+-------+------+
2 rows in set (0.00 sec)

2.2.9 NULL 的查询

-- 查询 students 表
+----+-------+-------+-------+
| id |   sn  |  name |  qq   |
+----+-------+-------+-------+
| 100| 10010 | 唐大师 |  NULL |
| 101| 10001 | 孙悟空 | 11111 |
| 103| 20002 | 孙仲谋 |  NULL |
| 104| 20001 | 曹阿瞒 |  NULL |
+----+-------+-------+-------+
4 rows in set (0.00 sec)
-- 查询 qq 号已知的同学姓名
SELECT name, qq FROM students WHERE qq IS NOT NULL;
+-------+-------+
|  name |   qq  |
+-------+-------+
| 孙悟空 | 11111 |
+-------+-------+
1 row in set (0.00 sec)
-- NULL 和 NULL 的比较,= 和 <=> 的区别
SELECT NULL = NULL, NULL = 1, NULL = 0;
+-------------+----------+----------+
| NULL = NULL | NULL = 1 | NULL = 0 |
+-------------+----------+----------+
|     NULL    |   NULL   |   NULL   |
+-------------+----------+----------+
1 row in set (0.00 sec)
SELECT NULL <=> NULL, NULL <=> 1, NULL <=> 0;
+---------------+------------+------------+
| NULL <=> NULL | NULL <=> 1 | NULL <=> 0 |
+---------------+------------+------------+
|        1      |       0    |      0     |
+---------------+------------+------------+
1 row in set (0.00 sec)

2.3 结果排序

语法:

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];

==MySQL中默认排序:ASC(升序)==
注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

案例:

2.3.1 同学及数学成绩,按数学成绩升序显示

SELECT name, math FROM exam_result ORDER BY math;
+-------+----+
| name  |math|
+-------+----+
| 宋公明 | 65 |
| 孙权   | 73 |
| 孙悟空 | 78 |
| 曹孟德 | 84 |
| 刘玄德 | 85 |
| 唐三藏 | 98 |
| 猪悟能 | 98 |
+-------+----+
7 rows in set (0.00 sec)

2.3.2 同学及 qq 号,按 qq 号排序显示

-- NULL 视为比任何值都小,升序出现在最上面
SELECT name, qq FROM students ORDER BY qq;
+-------+-------+
| name  |   qq  |
+-------+-------+
| 唐大师 | NULL  |
| 孙仲谋 | NULL  |
| 曹阿瞒 | NULL  |
| 孙悟空 | 11111 |
+-------+-------+
4 rows in set (0.00 sec)
-- NULL 视为比任何值都小,降序出现在最下面
SELECT name, qq FROM students ORDER BY qq DESC;
+-------+-------+
|  name |   qq  |
+-------+-------+
| 孙悟空 | 11111 |
| 唐大师 | NULL  |
| 孙仲谋 | NULL  |
| 曹阿瞒 | NULL  |
+-------+-------+
4 rows in set (0.00 sec)

2.3.3 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示

-- 多字段排序,排序优先级跟随 书写顺序
SELECT name, math, english, chinese FROM exam_result ORDER BY math DESC, english, chinese;
+-------+----+-------+-------+
| name  |math|english|chinese|
+-------+----+-------+-------+
| 唐三藏 | 98 |   56  |  67   |
| 猪悟能 | 98 |   90  |  88   |
| 刘玄德 | 85 |   45  |  55   |
| 曹孟德 | 84 |   67  |  82   |
| 孙悟空 | 78 |   77  |  87   |
| 孙权   | 73 |   78  |  70   |
| 宋公明 | 65 |   30  |  75   |
+-------+----+-------+-------+
7 rows in set (0.00 sec)

2.3.4 查询同学及总分,由高到低

-- ORDER BY 中可以使用表达式
SELECT name, chinese + english + math FROM exam_result ORDER BY chinese + english + math DESC;
+-------+-------------------------+
| name  |chinese + english + math |
+-------+-------------------------+
| 猪悟能 |                     276 |
| 孙悟空 |                     242 |
| 曹孟德 |                     233 |
| 唐三藏 |                     221 |
| 孙权   |                     221 |
| 刘玄德 |                     185 |
| 宋公明 |                     170 |
+-------+-------------------------+
7 rows in set (0.00 sec)
-- ORDER BY 子句中可以使用列别名
SELECT name, chinese + english + math 总分 FROM exam_result ORDER BY 总分 DESC;
+-------+-----+
| name  | 总分 |
+-------+-----+
| 猪悟能 | 276 |
| 孙悟空 | 242 |
| 曹孟德 | 233 |
| 唐三藏 | 221 |
| 孙权   | 221 |
| 刘玄德 | 185 |
| 宋公明 | 170 |
+-------+-----+
7 rows in set (0.00 sec)

在这里插入图片描述

2.3.5 查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示

-- 结合 WHERE 子句 和 ORDER BY 子句
SELECT name, math FROM exam_result
WHERE name LIKE '孙%' OR name LIKE '曹%'
ORDER BY math DESC;
+-------+--------+
| name  |  math  |
+-------+--------+
| 曹孟德 |   84   |
| 孙悟空 |   78   |
| 孙权   |   73   |
+-------+--------+
3 rows in set (0.00 sec)

2.4 筛选分页结果

语法:

-- 起始下标为 0
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
其中s表示开始位置 下标从0开始
n表示步长,从指定位置开始连续读取n行记录

-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
从表的第0行开始连续读取n行

-- 从 s 开始,筛选 n 条结果,比第二种用 法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

==limit的本质是显示数据,只有所有数据准备好才进行显示(所以在select 语句中执行顺序排最后)==

建议:对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死
按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页

-- 第 1 页
SELECT id, name, math, english, chinese FROM exam_result
ORDER BY id LIMIT 3 OFFSET 0;
+----+------+--------+--------+-------+
| id | name |  math  | english|chinese|
+----+------+--------+--------+-------+
|  1 | 唐三藏|     98 |     56 |    67 |
|  2 | 孙悟空|     78 |     77 |    87 |
|  3 | 猪悟能|     98 |     90 |    88 |
+----+------+--------+--------+-------+
3 rows in set (0.02 sec)
-- 第 2 页
SELECT id, name, math, english, chinese FROM exam_result
ORDER BY id LIMIT 3 OFFSET 3;
+----+------+------+--------+--------+
| id | name | math | english| chinese|
+----+------+------+--------+--------+
| 4  | 曹孟德|   84 |     67 |     82 |
| 5  | 刘玄德|   85 |     45 |     55 |
| 6  | 孙权  |   73 |     78 |     70 |
+----+------+------+--------+--------+
3 rows in set (0.00 sec)
-- 第 3 页,如果结果不足 3 个,不会有影响
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3 OFFSET 6;
+----+------+------+--------+-------+
| id | name | math | english|chinese|
+----+------+------+--------+-------+
| 7  | 宋公明|  65  |   30   |   75  |
+----+------+------+--------+-------+
1 row in set (0.00 sec)
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
11月前
|
SQL 缓存 监控
MySQL缓存机制:查询缓存与缓冲池优化
MySQL缓存机制是提升数据库性能的关键。本文深入解析了MySQL的缓存体系,包括已弃用的查询缓存和核心的InnoDB缓冲池,帮助理解缓存优化原理。通过合理配置,可显著提升数据库性能,甚至达到10倍以上的效果。
|
11月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
624 0
|
11月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
11月前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
储存过程(Stored Procedures) 和 函数(Functions) : 储存过程和函数允许用户编写 SQL 脚本执行复杂任务.
393 14
|
11月前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
以上概述了MySQL 中常见且重要 的几种 SQL 查询及其相关概念 这些知识点对任何希望有效利用 MySQL 进行数据库管理工作者都至关重要
276 15
|
存储 关系型数据库 MySQL
使用命令行cmd查询MySQL表结构信息技巧分享。
掌握了这些命令和技巧,您就能快速并有效地从命令行中查询MySQL表的结构信息,进而支持数据库维护、架构审查和优化等工作。
918 9
|
11月前
|
SQL 关系型数据库 MySQL
MySQL入门指南:从安装到第一个查询
本文为MySQL数据库入门指南,内容涵盖从安装配置到基础操作与SQL语法的详细教程。文章首先介绍在Windows、macOS和Linux系统中安装MySQL的步骤,并指导进行初始配置和安全设置。随后讲解数据库和表的创建与管理,包括表结构设计、字段定义和约束设置。接着系统介绍SQL语句的基本操作,如插入、查询、更新和删除数据。此外,文章还涉及高级查询技巧,包括多表连接、聚合函数和子查询的应用。通过实战案例,帮助读者掌握复杂查询与数据修改。最后附有常见问题解答和实用技巧,如数据导入导出和常用函数使用。适合初学者快速入门MySQL数据库,助力数据库技能提升。
|
11月前
|
SQL 监控 关系型数据库
MySQL高级查询技巧:子查询、联接与集合操作
本文深入解析了MySQL高级查询的核心技术,包括子查询、联接和集合操作,通过实际业务场景展示了其语法、性能差异和适用场景,并提供大量可复用的代码示例,助你从SQL新手进阶为数据操作高手。
|
人工智能 Java 关系型数据库
Java的时间处理与Mysql的时间查询
本文总结了Java中时间与日历的常用操作,包括时间的转换、格式化、日期加减及比较,并介绍了MySQL中按天、周、月、季度和年进行时间范围查询的方法,适用于日常开发中的时间处理需求。
255 0

推荐镜像

更多