MySQL數據庫管理

Mysql管理操作

數據庫管理操作

  • 查看數據庫結構
  • 創建及刪除庫和表
  • 管理表的記錄

基本操作命令

  • 查看數據庫列表信息
    • SHOW DATABASES
[root@localhost ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
  • 查看數據庫中的數據表信息
    • USE數據庫名
    • SHOW TABLES
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| .....                     |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)
  • 顯示數據表的結構(字段)
    • DESCRIBE [數據庫名.]表名
mysql> describe db;
+-----------------------+---------------+------+-----+---------+-------+
| Field                 | Type          | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| Host                  | char(60)      | NO   | PRI |         |       |
| Db                    | char(64)      | NO   | PRI |         |       |
| User                  | cha(32)      | NO   | PRI |         |       |
| Select_priv           | enum('N','Y') | NO   |     | N       |       |
| Execute_priv          | enum('N','Y') | NO   |     | N       |       |
| ...                                                                  |
| Trigger_priv          | enum('N','Y') | NO   |     | N       |       |
+-----------------------+---------------+------+-----+---------+-------+
22 rows in set (0.00 sec)

SQL語句概述

SQL語言

  • 是Structured Query Language的縮寫,即結構化查詢語言
  • 是關係型數據庫的標準語言
  • 用於維護管理數據庫,如數據查詢、數據更新、訪問控制、對象管理等功能

SQL分類

  • DDL:數據定義語言
  • DML:數據操縱語言
  • DQL:數據查詢語言
  • DCL:數據控制語言

DDL語句操作

  • DDL語句用於創建數據庫對象,如庫、表、索引等
  • 使用DDL語句新建庫、表
    • 創建數據庫: CREATE DATABASE 數據庫名
    • 創建數據表: CREATE TABLE 表名(字段定義...)
mysql> create database school;
Query OK, 1 row affected (0.00 sec)

mysql> use school;
Database changed
mysql> create table info (
    -> id int(4) ,
    -> name char(10) not null,
    -> address varchar(50) default 'nanjing',
    -> primary key (id));
Query OK, 0 rows affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| info             |
+------------------+
1 row in set (0.00 sec)

DDL語句操作

  • 使用DDL語句刪除庫、表
    • 刪除指定的數據表: DROP TABLE [數據庫名.]表名
    • 刪除指定的數據庫: DROP DATABASE 數據庫名
mysql> drop table info;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
Empty set (0.00 sec)

mysql> drop database school;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

DML語句操作

  • DML語句用於對錶中的數據進行管理
  • 包括以下操作
    • INSERT:插入新數據
    • UPDATE :更新原有數據
    • DELETE :刪除不需要的數據
mysql> create database school;
Query OK, 1 row affected (0.01 sec)

mysql> use school;
Database changed
mysql> create table info ( 
    -> id int(4) not null,
    -> name char(10) not null,
    -> address varchar(50) default 'nanjing',
    -> primary key (id));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into info (id,name,address) values (1,'zhangsan','beijing');
Query OK, 1 row affected (0.01 sec)

mysql> select * from info;       //查看錶所有內容
+----+----------+---------+
| id | name     | address |
+----+----------+---------+
|  1 | zhangsan | beijing |
+----+----------+---------+
1 row in set (0.00 sec)

mysql> update info set address='shanghai' where id=1;    //將info表內id爲1的address更改爲shanghai
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from info;              //查看錶內容
+----+----------+----------+
| id | name     | address  |
+----+----------+----------+
|  1 | zhangsan | shanghai |
+----+----------+----------+
1 row in set (0.00 sec)

mysql> delete from info where id=1;     //根據條件刪除info表中id爲1的數據,不帶where條件時刪除表內所有數據
Query OK, 1 row affected (0.00 sec)

mysql> select * from info;
Empty set (0.00 sec)

DQL語句操作

  • DQL是數據查詢語句,只有一條: SELECT
  • 用於從數據表中查找符合條件的數據記錄
  • 查詢時可不指定條件
    • SELECT 字段名1,字段名2.... FROM表名
mysql> select * from info;       //查看錶所有內容
+----+----------+---------+
| id | name     | address |
+----+----------+---------+
|  1 | zhangsan | beijing |
+----+----------+---------+
1 row in set (0.00 sec)

mysql> select name from info where id=1;      //條件查看錶內容
+----------+
| name     |
+----------+
| zhangsan |
+----------+
1 row in set (0.00 sec)

DCL語句操作

  • 設置用戶權限(用戶不存在時。則新建用戶

    • GRANT 權限列表 ON 數據庫名.表名 TO 用戶名@來源地址 [ IDENTIFIED BY '密碼' ]
  • 查看用戶的權限

    • SHOW GRANT FOR 用戶名@來源地址
  • 撤銷用戶的權限
    • REVOKE 權限列表 ON 數據庫名.表名 FROM 用戶名@來源地址
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章