MySql8.0----->(DDL/DML/DQL/DCL)

1. データベース関連の概念

1. リレーショナルデータベース

概念: リレーショナル データベースは、リレーショナル モデルに基づいて相互接続された複数の 2 次元テーブルで構成されるデータベースです。

特徴:

  • テーブルを使用してデータを保存すると、形式が統一され、保守が容易になります。
  • SQL文で操作、規格が統一されており使いやすい
  • データはディスクに保存され、安全です
    ここに画像の説明を挿入します

2. 非リレーショナルデータベース

概念: Not-Only SQL は一般に非リレーショナル データベースを指し、リレーショナル データベースを補足するものです。

特徴:

  • 柔軟なデータ構造
  • 拡張性が高い

3. データベース関連の概念

  • 構造化クエリ言語 (Structured Query Language)、SQL と呼ばれる
  • これは、リレーショナル データベースを操作するためのプログラミング言語であり、リレーショナル データベースを操作するための一連の統一標準を定義します。

ここに画像の説明を挿入します

2.SQLの一般的な構文

1.SQLの一般的な構文

  • SQL ステートメントは 1 行または複数行で記述し、セミコロンで終わることができます。
  • SQL ステートメントではスペース/インデントを使用してステートメントの可読性を高めることができます
  • MySQL データベースの SQL ステートメントでは大文字と小文字が区別されないため、キーワードには大文字を使用することをお勧めします。
  • 注記:
    • 単一行コメント: -- コメント内容または # コメント内容 (MySQL 固有)
    • 複数行コメント: /* コメント内容 */

3.SQLの分類

ここに画像の説明を挿入します

4. DDL(データ定義言語)

1.DDLデータベース操作

1. クエリ

# 查询所有数据库
show databases;
# 查询当前数据库
select databases();

2.作成

create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

3.削除

drop database[if exists] 数据库名;

4.使用する

use 数据库名

2.DDLテーブル操作クエリ

1. 現在のデータベースのすべてのテーブルをクエリします。

show tables;

2. クエリテーブルの構造

desc 表名

3. 指定したテーブルのテーブル作成文をクエリします。

show create table 表名

3.DDL-テーブル操作-作成

1.SQL 構文

create table 表名(
	字段1 字段1类型[comment 字段1注释],
	字段2 字段2类型[comment 字段2注释],
	.....
	字段3 字段3类型[comment 字段3注释],
	字段4 字段4类型[comment 字段4注释]
)[comment 表注释]

2. ケース:

create table tb_user(
	id int comment 'id',
	name varchar(50) comment '姓名',
	age int comment '年龄',
	gender char(8) comment '性别'
)comment '用户表';

4.DDL-テーブル操作-データ型

1. MySQL には多くのデータ型があり、主に数値型、文字列型、日付と時刻型の 3 つのカテゴリに分類されます。

2. 数値型
ここに画像の説明を挿入します
3. 文字列型
ここに画像の説明を挿入します

フィールドタイプ 違い
char(10) ----------> 良いパフォーマンス ユーザー名ユーザー名 varchar(50)
varchar(10) ---------> パフォーマンスが悪い 性別性別文字(1)

4.日付型
ここに画像の説明を挿入します

5. 包括的なケース (小さな演習)

次の要件に従って従業員情報フォームを設計します。

  1. 数値 (純粋な数値)
  2. 社員ID(文字列型、10桁以内)
  3. 社員名(文字列型、10文字以内)
  4. 性別(男性/女性、漢字を格納)
  5. 年齢 (人間の通常の年齢、負の数を保存することは不可能)
  6. ID番号(第2世代ID番号は18桁で、IDカードにはXなどの文字が入っています)
  7. 加入時期(年、月、日の値のみを取得します)

参考文

create table emp(
	id int comment '编号',
	enumber varchar(10) comment '员工编号',
	name varchar(10) comment '姓名',
	gender char(1) comment '性别',
	age tinyint comment '年龄',
	idcard char(18) comment '身份证号码',
	entrycdate date comment '入职时间'
)comment '员工信息';

ここに画像の説明を挿入します

6.DDLテーブルの操作変更

1.フィールドを追加する

alter table 表名 add 字段名 类型(长度) [comment 注释] [约束]

ケース: タイプが varchar(20) である新しいフィールド「nickname」を emp テーブルに追加します。

alter table emp add nickname varchar(20) comment '昵称';

ここに画像の説明を挿入します

2. データ型を変更する

alter table 表名 modify 字段名称 新数据类型(长度);

フィールド名とフィールドタイプを変更する

alter table 表名 change 旧字段名 新字段名 类型(长度) [monnent 注释] [约束];

ケース: emp テーブルのニックネーム フィールドをユーザー名に変更し、タイプを varchar(30) にします。

alter table emp change nickname username varchar(30) comment '昵称';

ここに画像の説明を挿入します
3. フィールドの削除

alter table 表名 drop 字段名;

ケース: emp テーブルのフィールド username を削除する

alter table emp drop username;

ここに画像の説明を挿入します

4. テーブル名の変更

alter table 表名 rename to 新表名;

例: emp テーブルのテーブル名をemployeeに変更します。


alter table emp rename to emplyee;

ここに画像の説明を挿入します

7.DDLテーブル操作-削除

注: テーブルを削除すると、テーブル内のすべてのデータも削除されます。

1. テーブルの削除

drop table[if exists] 表名;

2. 指定したテーブルを削除し、テーブルを再作成します。

truncate table 表名;

8. まとめ

ここに画像の説明を挿入します

5. DML (データ操作言語)

1.DML-概要

DML の完全な英語名は Data Manipulation Language で、データベース内のテーブルのデータ レコードを追加、削除、変更するために使用されます。

  • データの追加 (INSERT)
  • データ変更(UPDATE)
  • データの削除(DELETE)

ここに画像の説明を挿入します

2.DML - データの追加

1. 指定したフィールドにデータを追加します

insert into 表名 (字段1,字段2,...) values(1,2,...);

2. すべてのフィールドにデータを追加します

insert into 表名 values (1,2,....);

3. データをバッチで追加する

insert into 表名 (字段1,字段2,...) values(1,2,...),(1,2,...),(1,2,...),....;
insert into 表名 values (1,2,....),(1,2,....),(1,2,....)......;

注:
• データを挿入するときは、指定したフィールドの順序が値の順序と一致する必要があります。 •
文字列および日付データは引用符で囲む必要があります。
• 挿入されるデータのサイズは、フィールドの指定された範囲内である必要があります。

3.DML によるデータの変更

update 表名 set 字段1=1,字段2=2,...[where 条件];

注意: ステートメントを変更するための条件は存在する場合と存在しない場合があります。条件がない場合は、テーブル全体のすべてのデータが変更されます。

4.DML - データの削除

delete from 表名 [where 条件];
注:
• DELETE ステートメントの条件は存在する場合と存在しない場合があります。条件がない場合は、テーブル全体のすべてのデータが削除されます。
• DELETE ステートメントは、特定のフィールドの値を削除できません (UPDATE は使用できます)。

6.DQL(データクエリ文)

1.DQL-概要

1. 定義: DQL の完全な英語名は Data Query Language で、データベース内のテーブル内のレコードをクエリするために使用されるデータ クエリ言語です。

2. クエリキーワード: SELECT

2.DQL文法

1. 基本的な文法

select 
	字段名
from
	表名
where
	条件
group by
	分组字段
having
	分组后条件
limit
	分页参数

2.用語の説明

1. 基本クエリ
2. 条件クエリ (where)
3. 集計関数 (count、max、min、avg、sum)
4. グループ クエリ (group by)
5. 並べ替えクエリ (order by)
6. ページネーション クエリ (limit)

3.DQL - 基本クエリ

注: 注: * はすべてのフィールドをクエリし、実際の開発ではできるだけ使用しないことを意味します (直感的ではなく、効率に影響します)。
1. 複数のフィールドをクエリする

select 字段1,字段2,...from 表名;
select * from 表名

2.エイリアスの設定

select 字段1[as 别名1],字段2[as 别名2],... from 表名;

3. 重複を削除する

select distinct 字段 from 表名;

テスト:

4.DQL 条件付きクエリ

1. 文法

select 字段 from 表名 where 条件;

2.条件
ここに画像の説明を挿入します

5.DQL集計関数

1. はじめに: データの列を全体として取得し、縦方向の計算を実行します。
2. 一般的な集計関数

名前 関数
カウント 総数
最大 最大値
最小値
平均 平均

3. 文法

select 聚合函数(字段名) from 表名;

注: null 値は、すべての集計関数の操作に参加するわけではありません。

6.DQLグループクエリ

1. 文法

select 字段 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

2.whereとhaveの違い

  • where はグループ化の前にフィルタリングを行い、where 条件が満たされない場合はグループ化には参加しませんが、have はグループ化後に結果をフィルタリングするというように、実行タイミングが異なります。
  • 判定条件が異なります。集計関数は判定できませんが、ある場合は判定できます。
注:
• 実行順序: where > 集計関数 > had
• グループ化後、クエリ対象となるフィールドは通常、集計関数とグループ化フィールドであり、他のフィールドをクエリしても意味がありません。

7.DQLソートクエリ

1. 文法

select 字段 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

2. 並べ替え順

  • asc: 昇順 (デフォルト)
  • desc: 降順

注: 複数フィールドの並べ替えの場合、最初のフィールドの値が同じである場合にのみ 2 番目のフィールドが並べ替えられます。

8.DQL ページング クエリ

1. 文法

select 字段,from 表名 limit 起始索引,查询记录数;
2. 注:
• 開始インデックスは 0 から始まり、開始インデックス = (クエリ ページ番号 - 1) * 各ページに表示されるレコード数 •
ページネーション クエリはデータベース言語であり、データベースが異なれば実装も異なります。MySQL では次のようになります。 LIMIT
• クエリがデータの最初のページに対するものである場合、開始インデックスは省略でき、単純にリミット 10 と省略できます。

9.DQLの実行順序

ここに画像の説明を挿入します

7.DCL (データ制御言語)

1.DCL-はじめに

DCL の完全な英語名は Data Control Language で、データベース ユーザーの管理とデータベース アクセス許可の制御に使用されます。
ここに画像の説明を挿入します

2.DCL - ユーザーの管理

1. ユーザーに問い合わせる

use mysql;
select * from user;

2.ユーザーの作成

create user '用户名'@'主机名' identified by '密码';

3. ユーザーパスワードを変更する

create user '用户名'@'主机名' identified with '旧密码' by '新密码';

4. ユーザーの削除

drop user '用户名'@'主机名';
注:
• ホスト名には % ワイルドカードを使用できます。
• このタイプの SQL 開発者が操作する可能性は低く、主に DBA (データベース管理者データベース管理者) によって使用されます。

3.DCL-許可制御

1. MySQL には多くの種類の権限が定義されていますが、一般的に次のものがよく使用されます。

権限 説明する
すべて、すべての特権 すべての権限
選択する クエリデータ
入れる データの挿入
アップデート データを変更する
消去 データを削除する
変更する テーブルの変更
落とす データベース/テーブル/ビューの削除
作成する データベース/テーブルの作成

2. 権限のクエリ

show grants for '用户名'@'主机名';

3. 権限を付与する

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

4. 権限を取り消します

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'
注:
• 複数の権限を区切るにはカンマを使用します
。 • 権限を付与する場合、データベース名とテーブル名を * でワイルドカード化できます。これはすべてを表します。

おすすめ

転載: blog.csdn.net/weixin_44702984/article/details/130848773