高度なMySQLデータベース管理

1つは、データベースの基本操作

1.1データベースの構造を見る-1

■データベース情報を表示する

SHOW   DATABASES
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| auth               |
| myadm              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

1.2データベース構造の表示-2

■データベースのテーブル情報を表示する

USE 数据库名
mysql> use mysql;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
......
31 rows in set (0.00 sec)

1.3データベース構造を見る-3

■データテーブルの構造(フィールド)を表示する

DESCRIBE [数据库名.]表名
###也可以使用“desc user;”
mysql> describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
......

2つ目は、データベースとテーブルの作成と管理

2.1データベースとテーブルを作成する

■DDLステートメントを使用して、ライブラリ、テーブル、インデックスなどのデータベースオブジェクトを作成できます。
■DDLステートメントを使用して、新しいライブラリとテーブルを作成します。

  • データベースを作成する CREATE DATABASE 数据库名
  • データテーブルを作成するCREATE TABLE 表名(字段定义......)
mysql> create database auth;
Query OK, 1 row affected (0.00 sec)
mysql> use auth;
Database changed
mysql> 
mysql> create table users (user_name CHAR(16) NOT NULL,user_passwd CHAR(48) DEFAULT'',PRIMARY KEY (user_name));
Query OK, 0 rows affected (0.01 sec)

2.2管理表のデータ-1

■DMLステートメントは、テーブル内のデータを管理するために使用されます
■インクルード操作

  • INSERT:新しいデータを挿入する
  • 更新:元のデータを更新します
  • 削除:不要なデータを削除します

2.3管理表のデータ-2

■データテーブルに新しいデータレコードを挿入する

UPDATE 表名 SET 字段名1=值1[,字段名2=值2]WHERE 条件表达式
mysql> update auth.users set user_passwd=password('123456') where user_name='lisi';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 1
mysql> flush privileges;  ### 刷新下
mysql> update mysql.user set authentication_string=PASSWORD('123456') where user='root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 1
mysql> flush privileges;  ### 刷新下

2.3管理表のデータ-3

■データテーブル内の指定されたデータレコードを削除する

DELETE FROM 表名 WHERE 条件表达式
mysql> delete from auth.users where user_name='lisi';
Query OK, 0 rows affected (0.01 sec)

■where条件のないステートメントは、テーブル内のすべてのレコードを削除することを意味します

mysql> delete from auth.users;
Query OK, 0 rows affected (0.00 sec)
###不带where子句时需谨慎操作

2.4管理表のデータ-4

■DQLはSELECTのみのデータクエリステートメントです。
■これは、データテーブルから条件を満たすデータレコードを検索するために使用されます。
■条件を指定せずにクエリを実行できます。

SELECT 字段名1,字段名2.....FROM 表名
mysql> select * from auth.users;
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| wangwu    | *E710DC2512FCF6F18FE0D652B53290DCB11F3334 |
+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

2.5管理表のデータ-5

SELECT 字段名1,字段名2......FROM 表名 WHERE 条件表达式
mysql> select user_name,user_passwd from kk.KK where user_name='lisi'; 
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

2.5高度なデータベース操作-1

■空のテーブル

  • テーブル名から削除
  • TRUNCATE TABLE tablename
mysql> truncate table tmp;

2.6高度なデータベース操作-2

■一時テーブル

  • 一部の一時データの保存に使用される一時的に作成されたテーブルは、長期間存在しません
在这里插入代码片

2.7高度なデータベース操作-3

■クローンテーブル

  • LIKEメソッド
mysql> create table test like mytmp;
mysql> insert into test select * from mytmp;
  • SHOW CREATE TABLEメソッド
mysql> show create table mytmp\G
mysql> create table test(......);
mysql> insert into test select * from mytmp;

3、データベースユーザー認証

3.1データベースユーザー認証-1

■ユーザー権限を設定するDCLステートメント(ユーザーが存在しない場合は、新しいユーザーを作成します)

GRANT 权限列表 ON 数据库名 TO 用户名@来源地址 [IDENTIFIED BY '密码']
mysql> GRANT select ON auth.* TO 'xiaoqi'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

3.2データベースユーザー認証-2

■ユーザー権限を表示する

SHOW GRANTS FOR 用户名@来源地址
mysql> SHOW GRANTS FOR 'lisi'@'20.0.0.6';

■ユーザー権限を取り消す

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
mysql>  REVOKE all ON auth.* FROM 'xiaoqi'@'localhost';

おすすめ

転載: blog.csdn.net/weixin_44733021/article/details/108488211