MySQLのsql文分類要約
7899 ワード
第1クラスの文:データベースに関連する文
1.データベースの作成
2.データベースの削除
3.データベースの変更
ここでは、データベース内の文字セットタイプとソートルールのみを変更することがよくあります(データベース名の変更はできません).
≪データベース名の変更|Modify Database Name|emdw≫:名前を変更するデータベースをバックアップしてから、新しいデータベースを新規作成します.ライブラリ名は新しい名前で、バックアップしたデータをこの新しいライブラリに復元します.
4.データ辞書の更新
第2クラスの文:テーブルに関連する文
1.新規テーブル
方法1:新しいテーブルを直接作成する
方法2:既存のテーブルに基づいて新しいテーブルを作成し、新しいテーブルのデータも既存のテーブルから作成します.
方法3:既存のテーブルに基づいて新しいテーブルを作成しますが、テーブル構造のみがあります.
2.テーブルの削除
テーブルを削除するには、単純で実用的なDROPコマンドを使用しますが、指定に注意してください.
3.テーブル構造の変更(フィールド、属性、制限、制約、インデックス、キー...)
書式:
①フィールドの定義の変更フィールド を削除フィールド を追加フィールド名 を変更フィールドの制約と属性を変更し、フィールド位置 を調整する削除インデックスを追加
①フィールド制約の変更
4.表名の変更
5.テーブルの内容をどのフィールドでソートするかを指定します.
6.表で使用する文字セットのタイプを変更する
7.テーブルへのデータの挿入
表のデータの変更
第3のクラスの文:簡単なクエリー文
単純クエリー形式
条件クエリー、組合せ条件クエリー
条件表現
釈義
=、、>= 、<=
等しい、より小さい、より大きい、より大きい、より小さい
!=、<>
等しくない
is null
なし
is not null
空ではありません
between…and…
との間に
like …
ワイルドカードの結合
RLIKE
けつごうせいそく
組合せ条件クエリーキーワード:and,or,not
ソート、制限出力レコードの数
例
大まかにまとめ、不適切な点があれば指摘を歓迎します.
------运维をする前にとてもまじめな若い------
1.データベースの作成
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
:
IF NOT EXISTS: , , ,
CHARACTER SET: (utf8)
COLLATE:
:
CREATE DATABASE IF NOT EXISTS jobs DEFAULT CHARACTER SET utf8
2.データベースの削除
DROP DATABASE [IF EXISTS] db_name
IF EXISTS: , , ,
:DROP DATABASE IF EXISTS test;
3.データベースの変更
ここでは、データベース内の文字セットタイプとソートルールのみを変更することがよくあります(データベース名の変更はできません).
ALTER DATABASE [db_name] alter_specification ...
alter_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
: test1 utf8
ALTER DATABASE test1 DEFAULT CHARACTER SET utf8;
≪データベース名の変更|Modify Database Name|emdw≫:名前を変更するデータベースをバックアップしてから、新しいデータベースを新規作成します.ライブラリ名は新しい名前で、バックアップしたデータをこの新しいライブラリに復元します.
4.データ辞書の更新
ALTER DATABASE db_name UPGRADE DATA DIRECTORY NAME
第2クラスの文:テーブルに関連する文
1.新規テーブル
方法1:新しいテーブルを直接作成する
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
TEMPORARY: ,
create_definition:
col_name column_definition
| PRIMARY KEY (col_name1, col_name1...)
| {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...
| [CONSTRAINT UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_option] ...
| {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) [index_option] ...
| [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition
| CHECK (expr)
table_option:
AUTO_INCREMENT [=] value <<<
| ENGINE [=] engine_name <<<
| [DEFAULT] CHARACTER SET [=] charset_name <<< ( )
| CHECKSUM [=] {0 | 1} <<< ( , )
| [DEFAULT] COLLATE [=] collation_name <<< ( )
| COMMENT [=] 'string' <<<
| DELAY_KEY_WRITE [=] {0 | 1} <<< ,
| MAX_ROWS [=] value
| MIN_ROWS [=] value
| UNION [=] (tbl_name[,tbl_name]...) <<<
| TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}] <<<
| ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT} <<<
: ,id 、name 30,age
CREATE TABLE tb1 (id int PRIMARY KEY, name char(30), age int(3))
CREATE TABLE tb2 (id int, name char(30), age int(3), PRIMARY KEY(id))
: ,id name 、name 30,age
CREATE TABLE tb2 (id int, name char(30), age int(3), PRIMARY KEY(id,name))
方法2:既存のテーブルに基づいて新しいテーブルを作成し、新しいテーブルのデータも既存のテーブルから作成します.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
[IGNORE | REPLACE]
[AS] query_expression
: CREATE TABLE new_tb AS SELECT * FROM old_tb;
: ,
gtid-mode = on off
enforce-gtid-consistency= 1 0
方法3:既存のテーブルに基づいて新しいテーブルを作成しますが、テーブル構造のみがあります.
CREATE TABLE [IF NOT EXISTS] tbl_name LIKE old_tbl_name
: mysql.user
CREATE TABLE tb01 LIKE mysql.user;
2.テーブルの削除
テーブルを削除するには、単純で実用的なDROPコマンドを使用しますが、指定に注意してください.
DROP TABLE [IF EXISTS] tbl_name [, tbl_name]... [CASCADE]
:
CASCADE:
3.テーブル構造の変更(フィールド、属性、制限、制約、インデックス、キー...)
書式:
ALTER TABLE tbl_name
[alter_specification [, alter_specification] ...]
[partition_options]
①フィールドの定義の変更
DROP col_name
: age
ALTER TABLE tb1 DROP age;
ADD col_name column_definition [FIRST | AFTER col_name]
:
# age school
ALTER TABLE tb1 ADD school CHAR(10) AFTER age;
# job
ALTER TABLE tb1 ADD job CHAR(20) NOT NULL FIRST;
# phone
ALTER TABLE tb1 ADD phone int(10);
CHANGE old_col_name new_col_name column_definition [FIRST|AFTER col_name]
: ALTER TABLE tb1 CHANGE job jobs char(30) not null;
MODIFY col_name column_definition [FIRST | AFTER col_name]
:ALTER TABLE tb1 MODIFY name varchar(50) NOT NULL DEFAULT 'zx';
ALTER TABLE tb1 MODIFY name varchar(50) AFTER age;
ADD index [ ] ( 1, 2...) [options]
: ( ) name
ALTER TABLE tb1 ADD(DROP) INDEX (name);
SHOW INDEXES FROM tb1;
:
①フィールド制約の変更
#
| ADD [CONSTRAINT [symbol]] PRIMARY KEY
[index_type] (index_col_name,...) [index_option] ...
#
| ADD [CONSTRAINT [symbol]]
UNIQUE [INDEX|KEY] [index_name]
[index_type] (index_col_name,...) [index_option] ...
# , , 。
( 、 、 )
DROP PRIMARY KEY #
{DISABLE|ENABLE} KEYS #
4.表名の変更
# 1:
ALTER TABLE RENAME [TO|AS]
ALTER TABLE user10 RENAME TO user11;
2:
RENAME TABLE TO ; TO
RENAME TABLE user11 TO user10;
5.テーブルの内容をどのフィールドでソートするかを指定します.
: ,
ORDER BY col_name [, col_name] ...
6.表で使用する文字セットのタイプを変更する
CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
7.テーブルへのデータの挿入
INSERT INTO tb1(name,id,age) VALUES('dong',1,23);
表のデータの変更
name zx 25
UPDATE tb01 set age=25 WHERE name='zx';
第3のクラスの文:簡単なクエリー文
単純クエリー形式
SELECT ... FROM [ ] [ ]
: t09
> SELECT * FROM t09;
: t09 id
> SELECT id FROM t09;
: id 5
> SELECT * FROM t09 WHERE id>5
: id 5 name
> SELECT name FROM t09 WHERE id>5
条件クエリー、組合せ条件クエリー
条件表現
釈義
=、、>= 、<=
等しい、より小さい、より大きい、より大きい、より小さい
!=、<>
等しくない
is null
なし
is not null
空ではありません
between…and…
との間に
like …
ワイルドカードの結合
RLIKE
けつごうせいそく
組合せ条件クエリーキーワード:and,or,not
ソート、制限出力レコードの数
order by [desc|asc]
limit num: num
limit m,n: m n
例
: 20-25 id
mysql> select name,stuid,age from students where age>=20 and age<=25;
mysql> select name,stuid,age from students where age between 20 and 25;
: 20, 25 id
select stuid,name,age from students where age<20 or age>25;
: S
mysql> select name,age from students where name like 'S%';
: Y , 19
mysql> select name,age from students where name like 'Y%' and age=19;
: Y , 20
mysql> select name,age from students where name like 'Y%' and age<20;
:
mysql> select name,age from students;
: , ( )
mysql> select name,age from students order by age desc;
: ,
mysql> select name,age from students order by age desc limit 3;
: students
mysql> select count(*) from students;
:
mysql> select max(age) from students;
大まかにまとめ、不適切な点があれば指摘を歓迎します.
------运维をする前にとてもまじめな若い------