MySQL の基礎 - 基本的な SQL ステートメント

目次

1.SQLの分類

2.SQL-DDL

2.1 データベースの操作

お問い合わせ

作成する

消去

データベースを使用する

2.2 データテーブルの操作

テーブルの作成

ルックアップテーブル

テーブルの変更

3.SQL-DML(追加・削除・変更)

3.1 挿入

3.2 修正

3.3 削除

4.SQL-DQL(チェック)

4.1 基本的なクエリ

4.2 条件付きクエリ

4.3 集計関数のクエリ

4.4 グループクエリ

4.5 ソートクエリ

4.6 ページングクエリ (MySql)

4.7.DQLの実行シーケンス

5.SQL-DCL

5.1 ユーザー管理

ユーザーを作成

パスワードを変更する

ユーザーを削除する

5.2 ユーザーの権利

権限のクエリ

付与された許可

許可を取り消す


学習メモを SQL データベースに記録する

1.SQLの分類

基本的なカテゴリは次のとおりです。

分類 フルネーム 説明する
DDL データ定義言語 データ定義言語。データベース オブジェクト (データベース、テーブル、フィールド) を定義するために使用されます。
DML データ操作言語 データベース内のデータを追加、削除、変更するために使用されるデータ操作言語
DQL データクエリ言語 データ クエリ言語。データベース内のテーブル内のレコードをクエリするために使用されます。
DCL データ制御言語 データ制御言語。データベース ユーザーの作成とデータベース アクセス許可の制御に使用されます。

2.SQL-DDL

2.1 データベースの操作

お問い合わせ

すべてのデータベースにクエリを実行する

show databases;

作成する

データベースの作成

create database cat;

これは作成が成功したことを意味します

drop database if exists cat;

このようなデータベースを作成することもできます

データベースが存在するかどうかを検出し、存在する場合は作成します。存在しない場合は作成せず、エラーは報告されません。

create database if not exists cat;

消去

データベースの削除

drop database cat;

エラーを報告しないようにするには、存在しないデータベースを削除するときにこれを実行できます。

drop database if exists cat;

データベースを使用する

use cat;

使用中のデータベースをクエリする

select database();

2.2 データテーブルの操作

テーブルの作成

create table tb_user(
    id int comment '标号',
    name varchar(50),
    age int,
    gender varchar(1)
) comment '用户表';

コメント コメントはオプションかどうか

ルックアップテーブル

データベース内のすべてのテーブルをクエリする

show tables;

クエリ固有のテーブル構造

desc tb_user;

コメントを明確に確認するには、特定のテーブル作成ステートメントをクエリします。

show create table tb_user;

テーブルの変更

 フィールドの追加

alter table tb_user add password varchar(50) comment '密码';

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

alter table tb_user 旧字段名 新字段名 varchar(255);

フィールドの削除

alter table tb_user drop username;

テーブル名の変更

 alter table 旧表名 rename to 新表名;

テーブルの削除

drop table if exists 表名;

テーブルを削除してテーブルを再作成します (すべてのフィールドが削除されるため、再作成する必要があります)

truncate table 表名;

3.SQL-DML(追加・削除・変更)

3.1 挿入

データの挿入 (フィールドに基づいて挿入)

insert into tb_user (id, name, age, gender) values (1,'张三',10,'男');

すべてを挿入するには、すべてのフィールドを順番に含める必要があります

insert into tb_user values (2,'李四',10,'男');

3.2 修正

「where」という単語は条件を表します(条件がない場合はすべてのデータに影響します)

update tb_user set name = '王五' where id = 1;

3.3 削除

delete from tb_user where id = 1;

4.SQL-DQL(チェック)

4.1 基本的なクエリ

すべてのフィールドをクエリする

select * from 表名;

指定されたフィールドをクエリする

select name,id,gender from 表名;

指定されたフィールドをクエリしてエイリアスを作成します

select workaddress as '工作地址' from 表名;

指定されたフィールドをクエリし、重複排除処理を実行します。

select distinct workaddress as '工作地址' from 表名;

4.2 条件付きクエリ

持ち運びの条件

比較演算子記号 関数
>         以上
>= 以上
< 未満
<= 以下
= 等しい
<> または != 等しくない
...と...の間 一定の範囲内(最小値、最大値を含む)
で(...) in の後のリスト内の値は、複数の中から 1 つを選択します
リンクプレースホルダー あいまい一致 (「_」は単一の文字に一致し、「%」は任意の数の文字に一致します)
無効である NULL のフィールド
論理演算子 関数
および または && そして (複数の条件が同時に満たされる)
または または || または (複数の任意の条件のうち 1 つが true)
そうではない、あるいは! いいえ

年齢が 20 歳未満のすべてのデータ

select * from emp where age < 20;

特定のフィールドを持たないクエリデータ

select * from emp where idcard is null;

使用しないでください

select * from emp where idcard is not null;

between と の使用 (15 ~ 30 歳のデータをクエリ)

select * from emp where age between 15 and 30;

in の使用 (次の 2 つのコマンドは同じ効果があります)

select * from emp where age=18 or age=20 or age=90;

select * from emp where age in(18,20,90);

あいまい一致(名前を問い合わせるデータが3文字)

select * from emp where name like '___';

4.3 集計関数のクエリ

一般的な集計関数

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

文法:

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

年齢が 30 未満のすべてのデータの合計をクエリします 

select count(*) from emp where age < 30;

平均年齢のクエリ

select avg(age) from emp;

4.4 グループクエリ

文法

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

where と have の違いは次のとおりです。

実行タイミングが異なります: where はグループ化の前にフィルタリングを行い、where 条件が満たされない場合はグループ化には参加しませんが、have はグループ化後に結果をフィルタリングします。

判定条件が異なります。集計関数は判定できませんが、ある場合は判定できます。

男女別に男性従業員数と女性従業員数をカウント 

select gender,count(*) from emp group by  gender ;

 

男女別に男性社員と女性社員の平均年齢を算出 

select gender, avg(age) from emp group by gender;

年齢が 45 歳未満の従業員をクエリし、勤務先住所に従ってグループ化し、従業員数が 3 人以上の勤務先住所を取得します。

address_count は、数を数えることによって得られるエイリアスです。

select workaddress,count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;

4.5 ソートクエリ

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

昇順ソート (asc) のデフォルト

 年齢順に並べ替える

select * from emp order by age;

降順で並べ替え

select * from emp order by age desc;

4.6 ページングクエリ (MySql)

データベースが異なればフィールドも異なる場合があります

select 字段列表 from 表名 limit 起始索引,查询记录数;

最初の 10 個のデータをクエリする

select * from emp limit 0,10;

4.7.DQLの実行シーケンス

①:から

②:どこで

③:グループ化、持つ

④:選択

⑤:ご注文はこちら

⑥:リミット

5.SQL-DCL

mysql データベースのユーザー テーブルは、mysql データベースの下のユーザー テーブルにあります。

5.1 ユーザー管理

ユーザーを作成

新しく作成されたユーザーには権限がありません

ローカルホストでのみアクセス可能

create user 'itcast'@'localhost' identified by '123456';

任意のホスト アクセスを設定する

create user 'itcast'@'%' identified by '123456';

パスワードを変更する

alter user 'itcast'@'localhost' identified with mysql_native_password by '123';

ユーザーを削除する

drop user 'itcast'@'localhost';

5.2 ユーザーの権利

権限のクエリ

show grants for 'root'@'localhost';

付与された許可

特定のデータベースに対するすべての権限をユーザーに付与します。

これにより、指定されたデータベース内のすべての権限 (SELECT、INSERT、UPDATE、DELETE など) がユーザーに付与されます。

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

特定のテーブルに対する特定の権限をユーザーに付与します。

これにより、指定されたテーブルに対する SELECT 権限と INSERT 権限のみがユーザーに付与されます。

GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost';

すべてのデータベースに対する特定の権限をユーザーに付与します。

これにより、すべてのデータベースに対して CREATE、DROP、ALTER などの操作を実行する権限がユーザーに付与されます。

GRANT CREATE, DROP, ALTER ON *.* TO 'username'@'localhost';

ユーザーにすべてのデータベースに対するすべての権限を付与します。

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';

許可を取り消す

特定のデータベースに対するユーザーからすべての権限を取り消します。

これにより、指定されたデータベースに対するユーザーのすべての権限が取り消されます。

REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';

特定のテーブルに対するユーザーの特定の権限を取り消します。

これにより、指定されたテーブルに対するユーザーの SELECT および INSERT 権限が取り消されます。

REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'localhost';

すべてのデータベースに対するすべてのユーザー権限を取り消します。

REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

おすすめ

転載: blog.csdn.net/m0_64642443/article/details/133238433