MySQLデータテーブルの基本操作2:テーブル構造の変更
一、データテーブル構造の表示
1)表の基本構造文DESCRIBEの表示
構文:DESCRIBEテーブル名;
例:
構文:DESCテーブル名;
例:
説明: NULL:カラムがNULL値を格納できるかどうかを示します. Key:カラムにインデックスが作成されているかどうかを示します.PRIはテーブルのプライマリ・キーの一部を表す.UNIは、このカラムがUNIQUEインデックスの一部であることを示す.MULは、カラム内の所定の値が複数回現れることを許容することを示す. Default:カラムにデフォルト値があるかどうか、ある場合はいくらですか. Extra:取得可能な特定のカラムに関する追加情報を表す.例えばAUTO_INCREMENT等;
2)表詳細構造文SHOW CREATE TABLEの表示
機能の説明:
テーブル作成時の文の表示
構文:
ヒント:この文は、テーブルの作成の詳細な文を表示するために使用できます. はまた、記憶エンジンおよび文字符号化を表示するために使用することができる. にパラメータ'G'を加えると、表示結果がより直感的になり、表示が容易になります.
例:
二、データテーブルの修正
1)表名の変更
構文
例
2)フィールドのデータ型の変更
構文
例
3)フィールド名の変更
構文
例
4)フィールドの追加
構文
例
5)フィールドの削除
構文
例
6)フィールドの配置位置の変更
構文
例
7)テーブルのストレージエンジンの変更
MySQLがサポートする主なストレージエンジン
エンジン名
サポートするかどうか
FEDERATED
いいえ
MRG_MYISAM
はい
MyISAM
はい
BLACKHOLE
はい
CSV
はい
MEMORY
はい
ARCHIVE
はい
InnoDB
デフォルト
PERFORMANCE_SCHEMA
はい
構文
例
8)テーブルの外部キー制約の削除
構文
例
三、データテーブルの削除
1)関連付けられていないテーブルの削除
構文
例
2)他のテーブルに関連付けられているプライマリ・テーブルの削除
説明:外部キーを削除するには
例
もしあなたたちが試している間に何か問題があったり、私のコードに間違いがあったりしたら、指摘してください.ありがとうございます.
連絡先:[email protected]転載は出典を明記してください!
1)表の基本構造文DESCRIBEの表示
構文:DESCRIBEテーブル名;
例:
mysql> DESCRIBE product;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| product_id | int(11) | NO | PRI | NULL | auto_increment |
| product_name | varchar(50) | NO | | NULL | |
| description | varchar(200) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
構文:DESCテーブル名;
例:
mysql> DESC product;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| product_id | int(11) | NO | PRI | NULL | auto_increment |
| product_name | varchar(50) | NO | | NULL | |
| description | varchar(200) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
説明:
2)表詳細構造文SHOW CREATE TABLEの表示
機能の説明:
テーブル作成時の文の表示
構文:
SHOW CREATE TABLE ;
ヒント:
例:
mysql> show create table bm\G;
*************************** 1. row ***************************
Table: bm
Create Table: CREATE TABLE `bm` (
`id` int(11) NOT NULL,
`name` varchar(22) DEFAULT NULL,
`location` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `STH` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.02 sec)
二、データテーブルの修正
1)表名の変更
構文
ALTER TABLE RENAME [TO] ;
例
ALTER TABLE bm RENAME department;
2)フィールドのデータ型の変更
構文
ALTER TABLE MODIFY ;
例
ALTER TABLE department MODIFY id VARCHAR(11);
3)フィールド名の変更
構文
ALTER TABLE CHANGE ;
例
ALTER TABLE employees CHANGE location loc VARCHAR(350);// ,
4)フィールドの追加
構文
ALTER TABLE ADD [ ] [FIRST|AFTER ];//
例
ALTER TABLE employees ADD manager_id INT(10);
ALTER TABLE employees ADD age INT(11) NOT NULL;//
ALTER TABLE employees ADD sal FLOAT FIRST;//
ALTER TABLE employees ADD hire_date DATE AFTER manager_id;//
5)フィールドの削除
構文
ALTER TABLE DROP ;
例
ALTER TABLE employees DROP manager_id;
ALTER TABLE employees DROP hire_date;
6)フィールドの配置位置の変更
構文
ALTER TABLE MODIFY FIRST|AFTER ;
例
ALTER TABLE employees MODIFY name VARCHAR(22) FIRST;// name
ALTER TABLE department MODIFY location VARCHAR(350) AFTER department_id;// location department_id
7)テーブルのストレージエンジンの変更
MySQLがサポートする主なストレージエンジン
エンジン名
サポートするかどうか
FEDERATED
いいえ
MRG_MYISAM
はい
MyISAM
はい
BLACKHOLE
はい
CSV
はい
MEMORY
はい
ARCHIVE
はい
InnoDB
デフォルト
PERFORMANCE_SCHEMA
はい
構文
ALTER TABLE ENGINE=;
例
ALTER TABLE department ENGINE=MyISAM;
8)テーブルの外部キー制約の削除
構文
ALTER TABLE DROP FOREIGN KEY ;
例
ALTER TABLE employees DROP FOREIGN KEY fk_emp_dept;
三、データテーブルの削除
1)関連付けられていないテーブルの削除
構文
DROP TABLE [IF EXISTS] 1, 2,... n;
例
DROP TABLE IF EXISTS employees;
2)他のテーブルに関連付けられているプライマリ・テーブルの削除
説明:外部キーを削除するには
例
mysql> create database rm_tab;
Query OK, 1 row affected (0.00 sec)
mysql> use rm_tab;
Database changed
mysql> create table department
-> (
-> id int(11) primary key,
-> name varchar(22),
-> location varchar(200)
-> );
Query OK, 0 rows affected (0.07 sec)
mysql> create table employee
-> (
-> id int(11) primary key,
-> name varchar(25),
-> department_id int(11),
-> salary float,
-> constraint fk_emp_dept foreign key(department_id) references department(id)
-> );
Query OK, 0 rows affected (0.10 sec)
mysql> drop table department;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
mysql> alter table employee drop foreign key fk_emp_dept;
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> drop table department;
Query OK, 0 rows affected (0.04 sec)
mysql> show tables;
+------------------+
| Tables_in_rm_tab |
+------------------+
| employee |
+------------------+
1 row in set (0.00 sec)
もしあなたたちが試している間に何か問題があったり、私のコードに間違いがあったりしたら、指摘してください.ありがとうございます.
連絡先:[email protected]転載は出典を明記してください!