検索

bitsCN.com

5.排序检索数据

5.1排序数据

ORDER BY

SELECT prod_name FROM products ORDER BYprod_name; //排序检索

SELECT prod_id,prod_price,prod_name

FROM products ORDER BYprod_price,prod_name;//按多个列排序

5.2指定排序方向

DESC降序排序

SELECT prod_id,prod_price,prod_name FROMproducts ORDER BY prod_price DESC;//降序排序

SELECT prod_id,prod_price,prod_name FROMproducts ORDER BY prod_price DESC,prod_name;//多个列只有指定的列为降序

5.3ORDER BY与LIMIT的组合能找出最高或最低值

SELECT prod_price FROM products ORDER BYprod_price DESC LIMIT 1;//获取最昂贵的价格

6.过滤数据

6.1使用WHERE子句

SELECT prod_name FROM products WHEREprod_price = 2.5;//只返回prod_price值为2.5的行

WHERE子句的位置:应该在ORDER BY之前

6.2WHERE子句操作符:

=,(不等于),!=(不等于), , >=, BETWEEN(在指定的两个值之间)

SELECT prod_name,prod_price FROM productsWHERE prod_price BETWEEN 3 AND 10;

6.3空值检查

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。IS NULL子句来检查具有NULL值的列

输入SELECT prod_name FROM products WHERE prod_price IS NULL;

输出Empty set (0.00 sec) //说明价格必须非空

输入mysql> SELECT cust_id FROM customers WHERE cust_email IS NULL;

输出: +---------------+

| cust_id |

+---------------+

| 10002 |

| 10005 |

+---------------+

2 rows in set (0.01 sec)

说明cust_email列有空值的行,这些行对应的cust_id为10002和10005。

7.数据过滤

7.1组合WHERE子句

MySQL允许给出多个WHERE子句,这些子句以两种方式组合:AND和OR

7.1.1 AND操作符

SELECT prod_id,prod_price,prod_name FROM products

WHERE vend_id=1003 AND prod_price

7.1.2 OR操作符

SELECT prod_id,prod_price,prod_name FROM products

WHERE vend_id=1003 OR vend_id = 1002;//两个条件满足一个就可以

7.1.3计算次序

SELECT prod_id,prod_price,prod_name FROM products

WHERE vend_id=1003 OR vend_id = 1002 AND prod_price>=10;//AND操作符优先级高于OR

所以上面理解为:由供应商1003制造的任何价格为10美元以上的产品,或者由供应商1002制造的任何产品,而不管价格如何

SELECT prod_id,prod_price,prod_name FROM products

WHERE (vend_id=1003 OR vend_id = 1002) AND prod_price>=10;//()优先级最高

上面语句理解为:价格在10美元以上且有由1002或1002制造的所有产品

7.2 IN操作符

IN操作符用来指定条件范围,其作用于OR操作符相当,但更清楚直观,而且可以包含其他SELECT语句,是的能够更动态的建立where子句。

SELECT prod_price,prod_name FROM products

WHERE vend_id IN(1001,1002,1003) ORDER BY prod_name;

7.3 NOT操作符

NOT操作符:否定它之后所跟的任何条件。

SELECT prod_price,prod_name FROM products

WHERE vend_id NOT IN(1002,1003,1001) ORDER BY prod_name;

8.通用配符进行过滤

8.1 LIKE操作符

通配符(wildcard):用来匹配值的一部分的特殊字符

搜索模式(searchpattern):由字面值、通配符或两者组合构成的搜索条件

LIKE只是MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较

8.1.1 百分号(%)通配符

%表示任何字符出现任意次数,但不能匹配NULL

SELECT prod_price,prod_name FROM products WHERE prod_name LIKE'JET%';

SELECT prod_price,prod_name FROM products WHERE prod_name LIKE'%ANVIL%';
8.1.2下划线(_)通配符

下划线匹配单个字符

8.2通配符技巧

1)不要过度使用通配符

2)把通配符放在开始处,搜索速度最慢

9.用正则表达式进行搜索

正则表达式是用来匹配文本的特护的串(字符集和)。

9.1使用mysql正则表达式

9.1.1基本字符匹配

SELECT prod_name FROM products WHERE prod_name REGEXP '.000' ORDERBY prod_name;

+--------------+

| prod_name |

+--------------+

| JetPack 1000 |

| JetPack 2000 |

+--------------+

上面语句使用了泽正表达式.000。.是正则表达式语言中一个特殊的字符。他表示匹配任意一个字符,因此,1000和2000都匹配且返回。

正则表达式匹配不区分大小写,要区分大小写可以在REGEXP后面使用BINARY关键字。

9.1.2进行or匹配

SELECT prod_name FROM products WHERE prod_name REGEXP '1000 | 2000';

这里的|是正则表达式的OR操作符

9.1.3匹配几个字符之一

SELECT prod_name FROM products

WHERE prod_name REGEXP '[123] Ton' ORDER BY prod_name;

这里的[123]表示匹配1或2或3。

9.2.4匹配范围

SELECT prod_name FROM products WHERE prod_name REGEXP '[1-5] Ton';

这里[1-5]定义了一个范围

9.2.5匹配特殊字符

SELECT vend_name FROM vendors WHERE vend_name REGEXP '//.' ORDER BYvend_name;

为了匹配特殊字符,必须用//为前导。

//-表示-

//.表示.

///表示/

//f表示换页

//n表示换行

//r表示回车

//t表示制表

//v表示纵向制表

9.2.6匹配字符类

[:alnum:] 任意字母和数字(同[a-zA-Z0-9])

[:alpha:] 任意字符(同[a-zA-Z])

[:blank:] 空格和制表符(同[//t])

[:cntrl:] ASCII控制字符(ACII 0到31和127)

[:digit:] 任意数字(同[0-9])

[:graph:] 与[:print:]相同,但不包括空格

[:lower:] 任意小写字母

[:print:] 任意可打印字符

[:punct:] 既不在[:alnum:]又不在[:cntrl:]中的任意字符

[:space:] 包括空格在内的任意空白字符(同[//f//n//r//t//v])

[:upper:] 任意大写字母(同[A-Z])

[:xdigit:] 任意十六进制数字(同[a-fA-F0-9])

9.2.6匹配多个实例

SELECT prod_name FROM products

WHERE prod_name REGEXP '//([0-9] sticks?//)' ORDER BY prod_name;//结果如下

+----------------+

| prod_name |

+----------------+

| TNT (1 stick) |

| TNT (5 sticks) |

+----------------+

正则表达式//([0-9]sticks?//)需要说明一下。//(匹配(,[0-9]匹配任意数字(这个例子中为1和5),sticks?匹配stick和sticks(s后的?使s可选,因为?匹配它掐年的任何字符的0次或1次出现),//)匹配)。

SELECT prod_name FROM products

WHERE prod_name REGEXP '[[:digit:]]{4}' ORDER BY prod_name;

+--------------+

| prod_name |

+--------------+

| JetPack 1000 |

| JetPack 2000 |

+--------------+

2 rows in set (0.00 sec)

[[:digit:]]{4}中{4}要求它前面的字符(任意数字)出现四次,所以[[:digit:]]{4}表示连在一起的任意4位数

9.2.8定位符

^ 文本的开始

$ 文本的结尾

[[:<:>

[[:>:]] 词的结尾

SELECT prod_name FROM products

WHERE prod_name REGEXP '^[0-9//.]' ORDER BY prod_name;

^[0-9//.]表示只在.或任意数字为串中第一个字符时才匹配它们。

bitsCN.com

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLのストアドプロシージャとは何ですか?MySQLのストアドプロシージャとは何ですか?May 01, 2025 am 12:27 AM

ストアドプロシージャは、パフォーマンスを向上させ、複雑な操作を簡素化するためのMySQLのSQLステートメントを事前に拡大します。 1。パフォーマンスの改善:最初のコンピレーションの後、後続の呼び出しを再コンパイルする必要はありません。 2。セキュリティの改善:許可制御を通じてデータテーブルアクセスを制限します。 3.複雑な操作の簡素化:複数のSQLステートメントを組み合わせて、アプリケーションレイヤーロジックを簡素化します。

クエリキャッシュはMySQLでどのように機能しますか?クエリキャッシュはMySQLでどのように機能しますか?May 01, 2025 am 12:26 AM

MySQLクエリキャッシュの実用的な原則は、選択クエリの結果を保存することであり、同じクエリが再度実行されると、キャッシュされた結果が直接返されます。 1)クエリキャッシュはデータベースの読み取りパフォーマンスを改善し、ハッシュ値を使用してキャッシュされた結果を見つけます。 2)単純な構成、mysql構成ファイルでquery_cache_typeとquery_cache_sizeを設定します。 3)SQL_NO_CACHEキーワードを使用して、特定のクエリのキャッシュを無効にします。 4)高周波更新環境では、クエリキャッシュがパフォーマンスボトルネックを引き起こし、パラメーターの監視と調整を通じて使用するために最適化する必要がある場合があります。

他のリレーショナルデータベースでMySQLを使用することの利点は何ですか?他のリレーショナルデータベースでMySQLを使用することの利点は何ですか?May 01, 2025 am 12:18 AM

MySQLがさまざまなプロジェクトで広く使用されている理由には、次のものがあります。1。複数のストレージエンジンをサポートする高性能とスケーラビリティ。 2。使いやすく、メンテナンス、シンプルな構成とリッチツール。 3。豊富なエコシステム、多数のコミュニティとサードパーティのツールサポートを魅了します。 4。複数のオペレーティングシステムに適したクロスプラットフォームサポート。

MySQLのデータベースアップグレードをどのように処理しますか?MySQLのデータベースアップグレードをどのように処理しますか?Apr 30, 2025 am 12:28 AM

MySQLデータベースをアップグレードする手順には次のものがあります。1。データベースをバックアップします。2。現在のMySQLサービスを停止します。3。MySQLの新しいバージョンをインストールします。アップグレードプロセス中に互換性の問題が必要であり、Perconatoolkitなどの高度なツールをテストと最適化に使用できます。

MySQLに使用できるさまざまなバックアップ戦略は何ですか?MySQLに使用できるさまざまなバックアップ戦略は何ですか?Apr 30, 2025 am 12:28 AM

MySQLバックアップポリシーには、論理バックアップ、物理バックアップ、増分バックアップ、レプリケーションベースのバックアップ、クラウドバックアップが含まれます。 1. Logical BackupはMySqldumpを使用してデータベースの構造とデータをエクスポートします。これは、小さなデータベースとバージョンの移行に適しています。 2.物理バックアップは、データファイルをコピーすることで高速かつ包括的ですが、データベースの一貫性が必要です。 3.インクリメンタルバックアップは、バイナリロギングを使用して変更を記録します。これは、大規模なデータベースに適しています。 4.レプリケーションベースのバックアップは、サーバーからバックアップすることにより、生産システムへの影響を減らします。 5. Amazonrdsなどのクラウドバックアップは自動化ソリューションを提供しますが、コストと制御を考慮する必要があります。ポリシーを選択するときは、データベースサイズ、ダウンタイム許容度、回復時間、および回復ポイントの目標を考慮する必要があります。

MySQLクラスタリングとは何ですか?MySQLクラスタリングとは何ですか?Apr 30, 2025 am 12:28 AM

mysqlclusteringenhancesdatabaserobustnessnessnessnessnessnistandistributiondistributingdataacrossmultiplenodes.itesthendbenginefordatareplication andfaulttolerance、保証highavailability.setupinvolvesconfiguringmanagement、data、ssqlnodes、carefulmonitoringringandpe

MySQLのパフォーマンスのためにデータベーススキーマ設計を最適化するにはどうすればよいですか?MySQLのパフォーマンスのためにデータベーススキーマ設計を最適化するにはどうすればよいですか?Apr 30, 2025 am 12:27 AM

MySQLのデータベーススキーマ設計の最適化は、次の手順を通じてパフォーマンスを改善できます。1。インデックス最適化:一般的なクエリ列にインデックスを作成し、クエリのオーバーヘッドのバランスをとり、更新を挿入します。 2。テーブル構造の最適化:正規化または反通常化によりデータ冗長性を削減し、アクセス効率を改善します。 3。データ型の選択:Varcharの代わりにINTなどの適切なデータ型を使用して、ストレージスペースを削減します。 4。パーティション化とサブテーブル:大量のデータボリュームの場合、パーティション化とサブテーブルを使用してデータを分散させてクエリとメンテナンスの効率を改善します。

MySQLのパフォーマンスをどのように最適化できますか?MySQLのパフォーマンスをどのように最適化できますか?Apr 30, 2025 am 12:26 AM

tooptimizemysqlperformance、soflowthesesteps:1)properindexingtospeedupqueries、2)useexplaintoanalyzeandoptimize Queryperformance、3)AductServerContingSettingStingsinginginnodb_buffer_pool_sizeandmax_connections、4)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール