mysql索引与视图_MySQL
bitsCN.com
原始表student字段:
mysql> select column_name,data_type -> from information_schema.columns -> where table_name = 'student';+-------------+-----------+| column_name | data_type |+-------------+-----------+| stu_id | int || stu_name | varchar || stu_tel | int || stu_score | int |+-------------+-----------+4 rows in set (0.01 sec)
mysql> select * from student;+--------+----------+---------+-----------+| stu_id | stu_name | stu_tel | stu_score |+--------+----------+---------+-----------+| 1 | a | 151 | 60 || 2 | b | 152 | 61 || 3 | c | 153 | 62 || 4 | d | 154 | 63 |+--------+----------+---------+-----------+4 rows in set (0.00 sec)
索引创建格式:
create [ <index type> ] index <index name> [ using {btree | hash} ] on table specification ( <column in index> [,<column in index> ] )<index type> := unique | fulltext | spatial<column in index>:=<column name> [asc | desc]
创建一个最简单的索引:
mysql> create index stu_index -> on student(stu_id);Query OK, 0 rows affected (0.36 sec)Records: 0 Duplicates: 0 Warnings: 0
如果没有指定using声明的话,mysql自动创建一个B树。所以上面的索引其实是这样子的:
mysql> create index stu_index using btree -> on student(stu_id asc);Query OK, 0 rows affected (0.19 sec)Records: 0 Duplicates: 0 Warnings: 0
也可以为多个列创建唯一的索引:
mysql> create unique index stu_index using hash -> on student(stu_id,stu_name);Query OK, 0 rows affected (0.19 sec)Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student -> add unique index stu_index2 -> using hash (stu_tel);Query OK, 0 rows affected (0.36 sec)Records: 0 Duplicates: 0 Warnings: 0
mysql> drop index stu_index on student;Query OK, 0 rows affected (0.22 sec)Records: 0 Duplicates: 0 Warnings: 0
mysql> create table student( -> stu_id int primary key, -> stu_name varchar(5) not null, -> stu_tel int(5) unique, -> stu_score int(2), -> index stu_index(stu_id) -> );
只需在表的最后添加创建索引的语句即可。
视图是数据库中的虚拟表,它存储的不是自己的内容,而是经过select从其他表整合而来的。当其他表的内容改变是,视图内的内容跟着改变。在一定条件下,对视图的更新也将改变源表。
创建视图:
create [ or replace ] view <view name> [<column list>] as <table expression> [with [ cascaded |local ] check option ]mysql> create view view1 as -> (select * from student);Query OK, 0 rows affected (0.16 sec)
mysql> select * from view1;+--------+----------+---------+-----------+| stu_id | stu_name | stu_tel | stu_score |+--------+----------+---------+-----------+| 1 | a | 151 | 60 || 2 | b | 152 | 61 || 3 | c | 153 | 62 || 4 | d | 154 | 63 |+--------+----------+---------+-----------+4 rows in set (0.00 sec)
创建视图时还可以更改原始列名。
mysql> create or replace view view1(id,name,tel,score) as -> (select * from student);Query OK, 0 rows affected (0.03 sec)
mysql> select * from view1;+----+------+------+-------+| id | name | tel | score |+----+------+------+-------+| 1 | a | 151 | 60 || 2 | b | 152 | 61 || 3 | c | 153 | 62 || 4 | d | 154 | 63 |+----+------+------+-------+4 rows in set (0.00 sec)
删除视图:
drop view view1;

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。
