SQLの基本的な文法 - 他のステートメント

1つのALTER DATABASEステートメント

alter database文は、データベースのプロパティを変更するために使用され

Syntax:
ALTER {DATABASE | SCHEMA} [db_name]
    alter_specification ...

alter_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

db_name説明を指定しない場合は、現在のデータベースのプロパティを変更することで、指定することはできません。

character set代表者は、データベースのデフォルト文字セットを変更します。

collateこれは、データベースの変更の既定の照合順序を表し、

データベースのデフォルトの文字セットまたは照合を変更する場合、すべてのストアド・プロシージャと関数は、データベースが再びそれを再作成する必要があること。

2 ALTER VIEW文

alter view声明は、ビューの定義、文法構造自体および変更するために使用されるcreate view同じ、と文の役割create or replace viewと同じ文を。

Syntax:
ALTER
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]

例:

mysql> alter view v_students_male as select sid,sname from students where sex=0;
mysql> select * from v_students_male;
+------+-------+
| sid | sname |
+------+-------+
| 1 | aaa |

3ドロップdatabaseステートメント

drop database声明は、すべてのテーブルのライブラリを削除するデータベースも削除され、削除データベースの操作に使用されます。

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

データベースを削除すると、フォルダデータベースを削除.bak .dat .hsh .mrg .myd .myi .trg .trn .cfg .db .frm .ibd .ndb .parし、db.optファイルを。

例:

mysql> drop database test2;
Query OK, 1 row affected (0.07 sec)
mysql> drop database if exists test4;
Query OK, 0 rows affected (0.00 sec)

4 DROP INDEX文

drop indexステートメントは、インデックス操作を削除するために使用されます。

DROP INDEX index_name ON tbl_name

削除tbl_nameテーブル名のindex_nameインデックスを。

例:

mysql> drop index idx_st_sname on students;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

5 DROP TABLE文

drop table声明は、1を削除するために使用されている以上のオペレーティングテーブルには、もちろん、あなたはまた、一時テーブルを削除することができます。

Syntax:
DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

RESTRICT/CASCADE5.7バージョンでは役に立たない二つのキーワード。

例:

mysql> drop table students2;
Query OK, 0 rows affected (0.01 sec)
mysql> drop table if exists students2;
Query OK, 0 rows affected, 1 warning (0.00 sec)

6ドロップviewステートメント

drop view声明は、削除一つ以上のビューに使用されています

Syntax:
DROP VIEW [IF EXISTS]
    view_name [, view_name] ...
    [RESTRICT | CASCADE]

RESTRICT/CASCADE5.7バージョンでは役に立たない二つのキーワード。

例:

mysql> drop view v_students_male;
Query OK, 0 rows affected (0.00 sec)
mysql> drop view if exists v_students_male;
Query OK, 0 rows affected, 1 warning (0.00 sec)

7リネームtable文

rename table声明は、1つまたは複数のテーブルの名前を変更するために使用されます。

Syntax:
RENAME TABLE
    tbl_name TO new_tbl_name
    [, tbl_name2 TO new_tbl_name2] ...

ときあなたは2つのテーブル名のステートメントを実行し、相互交流をしたいです:

RENAME TABLE old_table TO tmp_table,
    new_table TO old_table,
    tmp_table TO new_table;

rename tableデータは、テーブル、インデックス、主キーの定義は、自動的に新しいテーブルに変換されていることができますが、自動的に新しいテーブルに変換元のテーブルのビューと割り当て権限を手動で実行する必要はありません。

mysql> rename table students to students_test;
Query OK, 0 rows affected (0.03 sec)

mysql> show create table students_test;
+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students_test | CREATE TABLE `students_test` (
 `sid` int(11) DEFAULT NULL,
 `sname` varchar(20) DEFAULT NULL,
 `sex` int(11) DEFAULT NULL,
 UNIQUE KEY `idx_st_sid` (`sid`),
 KEY `idx_st_union` (`sname`,`sex`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

mysql> select * from v_students_female; ##原有视图查询失败
ERROR 1356 (HY000): View 'test.v_students_female' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

8 TRUNCATE TABLE文

truncate table声明は、すべてのデータ/切捨てテーブルを削除するために使用されます。

TRUNCATE [TABLE] tbl_name

そして、deleteすべてのデータの論理では同じ意味が、より高速なパフォーマンスを削除します。同様に実行drop tableし、create table二つの文。

例:

mysql> truncate table students_test;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from students_test; ##查询结果为空
Empty set (0.00 sec)

9つのALTER TABLE文

Alter table … add [column_name]
Alter table … add constraint [name] unique [index/key] [name]
Alter table … add constraint [name] foreign key (column_name) references table_name(column_name)
Alter table … drop column [column_name]
Alter table … drop [index/key] [index_name]

おすすめ

転載: www.cnblogs.com/dabric/p/12389521.html