查询分类
单表查询:简单查询
多表查询:连接查询
联合查询:多个查询结果汇总
查询的组成
投影查询:挑选要显示的字段
select array1,array2,... from tb_name;
选择查询:挑选符合条件的行
select * from tb_name where-clause
where-clause:布尔条件表达式= # 等值比较 # 等值比较,包括与NULL的安全比较或!= # 不等值比较,>= # 其它比较符IS NULL # 是否为空值IS NOT NULL # 是否不为空值LIKE # 支持的通配符有%和_RLIKE或REGEXP # 正则表达式匹配IN # 判指定字段的值是否在给定的列表中BETWEEN … AND …# 在某取值范围内
组合条件查询
NOT,!# 非AND,&& # 和OR,|| # 或
聚合函数查询
SUM() # 求总和AVG() # 求平均值MAX() # 求最大值MIN() # 求最小值COUNT() # 求记录总数#注:count(*)效率最低,可指定某一字段求总数,如count(Name)
查询语句
语法
select ... from tb_name where-clause [others-clause]
各子句类型及作用
where # 条件过滤group by # 对查询结果分组having # 对group by的结果进行条件过滤order by # 排序limit # 限制输出行数,如”limit 2“表示只显示前2行,“limit 2,3”表示偏移前2行,显示3-5行
其它修饰符
123 |
|
select的执行流程
from-->where-->group by-->having-->order by-->select-->limit |
多表查询
说明
事先将两张或多张表连接(join),根据连接的结果进行查询
语法
select … from tb1 Join_Type tb2 [on (Join_Condition)]连接类型有:cross join,inner join,left join和right join等
连接分类
cross join:交叉连接,又称笛卡尔乘积
表1中的记录(共M条)与表2中的记录(共N条)逐一连接,交叉连接数据量较大,共M*N条记录;
select * from students,classes# 注:不带where子句哦
inner join:内连接,根据连接判断的运算符又可分类如下:
等值连接:根据表1和表2中某字段值相等进行连接,其查询结果中列出被连接表中的所有列,包括其中的重复列
select * from students,classes# 注:不带where子句哦
条件比较连接:在连接条件中使用除等号(=)运算符之外的运算符,如>,>=,等
自然连接:在连接条件中使用等号(=)运算符,且只选择结果集中的部分列,并删除连接表中的重复列
select a.name,p.pub_name from authors as a inner join publishers as p on a.city=p.city
外连接:返回查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接)、右表(右外连接)或两个边接表(全外连接)中的所有数据行
左外连接:返回包括左表中的所有记录和右表中联结字段相等的记录
tb1 LEFT JOIN tb2 ON 连接条件
右外连接:返回包括右表中的所有记录和左表中联结字段相等的记录
tb1 RIGHT JOIN tb2 ON 连接条件
全外连接:连接运算两边的关系中的元组都保留,MySQL不支持此种连接
自连接:同一表中某字段的多次比较使用
select stu1.Name as StuName,stu2.Name as TeachName from students as stu1,students as stu2 where stu1.TeacherID=stu2.StuID;
子查询
说明:
在外层查询中嵌套的内层查询叫做子查询,类型有:
where型子查询:把内层查询结果当做外层查询的比较条件
select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods)# 子查询的返回值只能有1个
exists型子查询:把内层查询结果拿到外层,看外层的查询是否成立
select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id);# 可通过转换为内连接查询:select cat_id,cat_name from category inner join goods on goods.cat_id=category.cat_id;# 与exists类似的还有in子查询,表示外层查询条件在一个内层查询的结果集内select * from user_core where userId in (select userId from user_classes where class_id=’A001’);
from型子查询:把内层的查询结果供外层查询使用
select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk >=2)) group by name;
注:MySQL不擅长于子查询的优化,故应避免使用子查询
联合查询
说明
把两个或多个查询语句的结果合并成一个结果进行输出,前提是多个查询结果的输出字段是一致的
语法
SELECT clause UNION SELECT clause UNION …
union:会将多个表的查询结果合并后进行排序,同时删除重复的行,故效率略慢;union和union all的区别
union all:只是简单的将多个表的结果合并后返回,不删除重复行,效率较高
实例
涉及的表结构:
查询需求有:

InnoDBBufferPool reduces disk I/O by caching data and indexing pages, improving database performance. Its working principle includes: 1. Data reading: Read data from BufferPool; 2. Data writing: After modifying the data, write to BufferPool and refresh it to disk regularly; 3. Cache management: Use the LRU algorithm to manage cache pages; 4. Reading mechanism: Load adjacent data pages in advance. By sizing the BufferPool and using multiple instances, database performance can be optimized.

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

MySQL is worth learning because it is a powerful open source database management system suitable for data storage, management and analysis. 1) MySQL is a relational database that uses SQL to operate data and is suitable for structured data management. 2) The SQL language is the key to interacting with MySQL and supports CRUD operations. 3) The working principle of MySQL includes client/server architecture, storage engine and query optimizer. 4) Basic usage includes creating databases and tables, and advanced usage involves joining tables using JOIN. 5) Common errors include syntax errors and permission issues, and debugging skills include checking syntax and using EXPLAIN commands. 6) Performance optimization involves the use of indexes, optimization of SQL statements and regular maintenance of databases.

MySQL is suitable for beginners to learn database skills. 1. Install MySQL server and client tools. 2. Understand basic SQL queries, such as SELECT. 3. Master data operations: create tables, insert, update, and delete data. 4. Learn advanced skills: subquery and window functions. 5. Debugging and optimization: Check syntax, use indexes, avoid SELECT*, and use LIMIT.

MySQL efficiently manages structured data through table structure and SQL query, and implements inter-table relationships through foreign keys. 1. Define the data format and type when creating a table. 2. Use foreign keys to establish relationships between tables. 3. Improve performance through indexing and query optimization. 4. Regularly backup and monitor databases to ensure data security and performance optimization.

MySQL is an open source relational database management system that is widely used in Web development. Its key features include: 1. Supports multiple storage engines, such as InnoDB and MyISAM, suitable for different scenarios; 2. Provides master-slave replication functions to facilitate load balancing and data backup; 3. Improve query efficiency through query optimization and index use.

SQL is used to interact with MySQL database to realize data addition, deletion, modification, inspection and database design. 1) SQL performs data operations through SELECT, INSERT, UPDATE, DELETE statements; 2) Use CREATE, ALTER, DROP statements for database design and management; 3) Complex queries and data analysis are implemented through SQL to improve business decision-making efficiency.

The basic operations of MySQL include creating databases, tables, and using SQL to perform CRUD operations on data. 1. Create a database: CREATEDATABASEmy_first_db; 2. Create a table: CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY, titleVARCHAR(100)NOTNULL, authorVARCHAR(100)NOTNULL, published_yearINT); 3. Insert data: INSERTINTObooks(title, author, published_year)VA


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 English version
Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.