MYSQLの基本知識とコマンド(データベース、テーブル、インデックス、ビュー、トリガのコマンド)
7401 ワード
MYSQLベースコマンド[未完待機!]1.データベース基本操作 a.データベースの作成 b.データベースの表示 c.データベースの削除 2.テーブルの基本操作 a.テーブルの作成 b.表の展示 c.テーブルの削除 d.表の修正 1.表名の変更 2.フィールド を追加 3.削除フィールド 4.フィールドの変更 *フィールドデータ型の変更 *フィールド名の変更 *フィールドと属性 を同時に変更*フィールド順序の変更 e.テーブルの制約 . 1.テーブルの整合性制約 *外部キー をテーブル作成後に挿入*非空拘束(not null,NK) *フィールドのデフォルト値(default) を設定三.インデックスの操作 a.インデックスの概要 b.インデックスの作成 1、テーブル作成時にインデックスを作成する 2、既存のテーブルにインデックスを作成する *第1種 *第2種 c.インデックスの削除 d.インデックスの表示 4.ビューの動作 a.ビューの概要 b.ビュー作成 1.単一テーブルビューの作成 2.マルチテーブルビューの作成 c.ビューの表示 d.ビューの削除 e.ビューの変更 . f、ビューの更新 1、検索データ 2、追加データ 3、削除データ 4、更新データ 五、トリガの動作 a.フリップフロップ概要 b.フリップフロップ作成 1、第1種 2、第2種:複数の実行文を含むフリップフロップ c.フリップフロップ を表示1、第1種:show triggers文 2、第2:システムテーブルtriggers を表示 d.フリップフロップ削除 一.データベースの基本操作
a.データベースの作成
b.データベースの表示
c.データベースの削除
二.テーブルの基本操作
a.テーブルの作成
b.表の展示
c.テーブルの削除
d.表の修正
1.表名の変更
2.フィールドの追加
3.フィールドの削除
4.フィールドの変更
*フィールドデータ型の変更
*フィールド名の変更
*フィールドと属性の同時変更
*フィールド順序の変更
e.テーブルの制約
1.テーブルの整合性制約
1、テーブルの作成時期、フィールドに追加後2、テーブルの作成後に追加、alterの使用
*テーブル作成後に外部キーを挿入
*空でない制約(not null,NK)
*フィールドのデフォルト設定(default)
p1
p2
2.テーブル作成後の整合性制約の変更/追加
三.インデックス操作
a.索引の概要
インデックスは本のディレクトリに似ており、テーブルからデータを取得する速度を向上させることができます.インデックスは、1つ以上のフィールドで生成されたキーからなるテーブルに作成されます.インデックスの格納タイプにより、B型ツリーインデックス(BTREE)とハッシュインデックス(HASH)に分けられる
MYSQLがサポートするインデックス:通常インデックス、一意インデックス、全文インデックス、単列インデックス、多列インデックス、空間インデックス.
インデックスの利点は、検索速度が向上することです.欠点は、インデックスが多すぎるとディスク領域が消費されることです.インデックスを作成するには、次のようにします.1、よくクエリーされるフィールド、whereに現れるフィールド 2、グループ化されたフィールド、groupby句に現れるフィールド. 3、依存関係のあるサブテーブルと親テーブルの間の結合クエリー、すなわちプライマリ・キーまたは外部キー・フィールド. 4、一意の整合性制約を設定するフィールド b.インデックスの作成
1、テーブルの作成時にインデックスを作成する
eg:
2、既存のテーブルに索引を作成する
*1つ目
*2番目
c.インデックスの削除
d.索引の表示
クエリー文に加えて、テーブル作成時の文を表示することもできます.
四.ビューのアクション
a.ビューの概要
ビューは、本質的に仮想テーブルであり、ビューはデータベースにデータを格納する形で存在しません.行および列のデータは、カスタムビューのクエリーで参照される基本テーブルから取得されます.データベースに格納されるのは、ビューの定義です.ビューコンテンツの更新(追加、削除、変更)に直接影響するのは基本テーブルです.ビューのデータが複数の基本テーブルから来た場合、基本テーブルの追加と削除は許可されません.
b.ビュー作成
1.単一テーブルビューの作成
2.マルチテーブルビューの作成
c.ビューの表示
d.ビューの削除
e.ビューの変更
1、削除してから再作成する2、alterで直接修正する
f、ビューの更新
まず、ビューは更新できない場合があります.たとえば、次のようにします.1、空でない列は含まれません. 2、select+数学式があります. 3、select+集約関数のある列 4、select+distinct/union/top/group by/having、、、の文 1、データの取得
1つ目のケース:
第2のケース:viewで基本テーブルのデータを操作する
2、データの追加
3、データの削除
4、データの更新
五、トリガの操作
a.トリガの概要
トリガはプログラミング言語の関数と同様に、宣言、実行が必要ですが、イベントによってトリガーされます.一般的なトリガイベントはdelete/insert/updateです
b.トリガー作成
1、第1種
eg.
2、第二種類:複数の実行文を含むトリガ
c.トリガー表示
1、一つ目:show triggers文
2.第二種類:システム表triggersを見る
d.トリガー削除
a.データベースの作成
CREATE DATABASE test
b.データベースの表示
SHOW DATABASES
c.データベースの削除
DROP DATABASE test
二.テーブルの基本操作
a.テーブルの作成
USE test //
CREATE TABLE t_book(
id INT PRIMARY KEY,
b_name VARCHAR(50) NOT NULL,
price DECIMAL(4,2)
)
b.表の展示
show tables //
DESC t_book //
SHOW CREATE TABLE t_book //
SELECT * FROM t_book1 //
c.テーブルの削除
DROP TABLE t_book1
d.表の修正
1.表名の変更
ALTER TABLE t_book RENAME t_book1
2.フィールドの追加
ALTER TABLE t_book1 ADD descri VARCHAR(50) // descri VARCHAR(50)
ALTER TABLE t_book1 ADD de VARCHAR(50) FIRST //
ALTER TABLE t_book1 ADD hah VARCHAR(10) AFTER id // ID
3.フィールドの削除
ALTER TABLE t_book1 DROP de
4.フィールドの変更
*フィールドデータ型の変更
ALTER TABLE t_book1 MODIFY descri CHAR(40)
*フィールド名の変更
ALTER TABLE t_book1 CHANGE descri descrip CHAR(40)
*フィールドと属性の同時変更
ALTER TABLE t_book1 CHANGE descrip descri VARCHAR(50)
DESC t_book1
*フィールド順序の変更
ALTER TABLE t_book1 MODIFY descri VARCHAR(50) AFTER b_name
e.テーブルの制約
1.テーブルの整合性制約
PRIMARY KEY (PK)
は、このフィールドがテーブルのプライマリ・キーであることを識別し、一意の識別レコードFOREIGN KEY (FK)
は、このフィールドが表の外部キーNOT NULL
であることを識別することができ、このフィールドが空のUNIQUE KEY (UK)
であることを識別することができない.このフィールドの値が一意のAUTO_INCREMENT
であることを識別する.1、テーブルの作成時期、フィールドに追加後2、テーブルの作成後に追加、alterの使用
*テーブル作成後に外部キーを挿入
ALTER TABLE book_order ADD book_id INT NOT NULL UNIQUE;
ALTER TABLE book_order ADD CONSTRAINT FOREIGN KEY (book_id) REFERENCES book(book_id)
*空でない制約(not null,NK)
CREATE TABLE user4(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
)
*フィールドのデフォルト設定(default)
p1
create table tb1(
nid int not null defalut 2,
num int not null
);
p2
create table st(
sid int primary key ,
name varchar(30) not null,
age int(3) unsigned not null default 18,
sex enum('male','female') default 'male',
hobby set('play','study','read','music') default 'play,music'
);
2.テーブル作成後の整合性制約の変更/追加
ALTER TABLE t_book1 ADD unique(b_name);
三.インデックス操作
a.索引の概要
インデックスは本のディレクトリに似ており、テーブルからデータを取得する速度を向上させることができます.インデックスは、1つ以上のフィールドで生成されたキーからなるテーブルに作成されます.インデックスの格納タイプにより、B型ツリーインデックス(BTREE)とハッシュインデックス(HASH)に分けられる
MYSQLがサポートするインデックス:通常インデックス、一意インデックス、全文インデックス、単列インデックス、多列インデックス、空間インデックス.
インデックスの利点は、検索速度が向上することです.欠点は、インデックスが多すぎるとディスク領域が消費されることです.インデックスを作成するには、次のようにします.
1、テーブルの作成時にインデックスを作成する
INDEX | KEY [ ] ( 【 】【ASC|DESC 】) ;
eg:
CREATE TABLE t_pre (
id INT AUTO_INCREMENT ,
PRIMARY KEY (id),
t_name VARCHAR(50) NOT NULL UNIQUE,
descrip VARCHAR(50) DEFAULT 'null',
INDEX index_name (t_name) //
)
2、既存のテーブルに索引を作成する
*1つ目
DESC t_pre
CREATE INDEX t_id ON t_pre(id ASC) // ,
*2番目
ALTER TABLE t_pre ADD UNIQUE INDEX index_name (t_name)
c.インデックスの削除
DROP INDEX index_name ON t_pre;
d.索引の表示
クエリー文に加えて、テーブル作成時の文を表示することもできます.
SHOW CREATE TABLE t_pre;
四.ビューのアクション
a.ビューの概要
ビューは、本質的に仮想テーブルであり、ビューはデータベースにデータを格納する形で存在しません.行および列のデータは、カスタムビューのクエリーで参照される基本テーブルから取得されます.データベースに格納されるのは、ビューの定義です.ビューコンテンツの更新(追加、削除、変更)に直接影響するのは基本テーブルです.ビューのデータが複数の基本テーブルから来た場合、基本テーブルの追加と削除は許可されません.
b.ビュー作成
1.単一テーブルビューの作成
CREATE VIEW v1(i,n) AS SELECT id,t_name FROM t_pre;
2.マルチテーブルビューの作成
CREATE VIEW v2(b,p) AS SELECT bookname,booktypename FROM t_book,t_booktype WHERE t_book.id= t_booktype.id
c.ビューの表示
DESCRIBE v_id
DESC v_id //
SHOW TABLE STATUS LIKE 'v_id' //
SHOW CREATE VIEW v_id //
d.ビューの削除
DROP VIEW view_name [,view_name2 、、]
e.ビューの変更
1、削除してから再作成する2、alterで直接修正する
ALTER VIEW v_id(b,bt,p) AS SELECT bookname,booktypename,price FROM book,booktype WHERE book.id = booktype.id;
f、ビューの更新
まず、ビューは更新できない場合があります.たとえば、次のようにします.
1つ目のケース:
SELECT ** FROM view_name;
第2のケース:viewで基本テーブルのデータを操作する
2、データの追加
INSERT INTO v4(id,b_name,price,order_id)
VALUES (11,'all is well',22.3,23)
3、データの削除
DELETE FROM v4 WHERE b_name='all is well' ;
4、データの更新
UPDATE v4 SET price=32.5 WHERE b_name='pear1'
五、トリガの操作
a.トリガの概要
トリガはプログラミング言語の関数と同様に、宣言、実行が必要ですが、イベントによってトリガーされます.一般的なトリガイベントはdelete/insert/updateです
b.トリガー作成
1、第1種
CREATE TRIGGER trigger_name
BEFORE|AFTER trigger_even
ON table_name FOR EACH ROW
trigger_STMT
eg.
CREATE TRIGGER tri_test
AFTER INSERT
ON t_book FOR EACH ROW
INSERT INTO t_test VALUES(1,'t_book')
2、第二種類:複数の実行文を含むトリガ
DELIMITER $$
CREATE TRIGGER trigger_name
BEFORE|AFTER trigger_even
ON table_name FOR EACH ROW
BEGIN
trigger_STMT;
END
$$
DELIMITER
c.トリガー表示
1、一つ目:show triggers文
SHOW TRIGGERS
2.第二種類:システム表triggersを見る
USE information_schema;
SELECT * FROM TRIGGERS
select * from triggers where trigger_name = ' tri_num '
d.トリガー削除
DROP TRIGGER tri_name