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 用戶名@來源地址