查询分类
单表查询:简单查询
多表查询:连接查询
联合查询:多个查询结果汇总
查询的组成
投影查询:挑选要显示的字段
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:只是简单的将多个表的结果合并后返回,不删除重复行,效率较高
实例
涉及的表结构:
查询需求有:

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
