Linux入门之——Linux下数据库的管理操作(MySQL)

Linux下的数据库操作


数据库的基本管理操作
数据库登录

mysql 【-u用户名】 【-p密码】

[root@localhost ~]# mysql -uroot -pWww.ly1.com 
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.21 MySQL Community Server - GPL
数据库查看
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

注:以分号结束

MySQL数据信息
数据表数据信息
information_schema元数据(数据库名称、数据表名称、字段名称)信息
mysql用户信息、用户权限信息
performance_schema数据库性能信息
sys对information_schema数据库的简化,方便管理员查看
创建数据库

create 【database】 【数据库名称】;

mysql> create database game;
Query OK, 1 row affected (0.05 sec)
查看数据库创建信息

show 【create】 【database】 【数据库名称】;

mysql> show create database game;
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                                                |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| game     | CREATE DATABASE `game` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
导入数据库

1.创建数据库

mysql> create database jiaowu;
Query OK, 1 row affected (0.01 sec)

2.导入数据库

[root@localhost ~]# mysql -uroot -pWww.ly1.com jiaowu < ./jiaowu.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
定制数据库编码方式

charset 【编码方式】;

mysql> create database game2 charset utf8;
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> show create database game2 ;
+----------+---------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                   |
+----------+---------------------------------------------------------------------------------------------------+
| game2    | CREATE DATABASE `game2` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+---------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
删除数据库

drop database 【数据库名称】;

mysql> drop database game;
Query OK, 0 rows affected (0.05 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| game2              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
数据库的常用管理操作
使用数据库

use 【数据库名称】;

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
查看数据库内的数据表

show 【数据表名】;

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
33 rows in set (0.00 sec)
查看表结构

desc 【数据表名】;

mysql> desc db;
+-----------------------+---------------+------+-----+---------+-------+
| Field                 | Type          | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| Host                  | char(255)     | NO   | PRI |         |       |
| Db                    | char(64)      | NO   | PRI |         |       |
| User                  | char(32)      | NO   | PRI |         |       |
| Select_priv           | enum('N','Y') | NO   |     | N       |       |
| Insert_priv           | enum('N','Y') | NO   |     | N       |       |
| Update_priv           | enum('N','Y') | NO   |     | N       |       |
| Delete_priv           | enum('N','Y') | NO   |     | N       |       |
| Create_priv           | enum('N','Y') | NO   |     | N       |       |
| Drop_priv             | enum('N','Y') | NO   |     | N       |       |
| Grant_priv            | enum('N','Y') | NO   |     | N       |       |
| References_priv       | enum('N','Y') | NO   |     | N       |       |
| Index_priv            | enum('N','Y') | NO   |     | N       |       |
| Alter_priv            | enum('N','Y') | NO   |     | N       |       |
| Create_tmp_table_priv | enum('N','Y') | NO   |     | N       |       |
| Lock_tables_priv      | enum('N','Y') | NO   |     | N       |       |
| Create_view_priv      | enum('N','Y') | NO   |     | N       |       |
| Show_view_priv        | enum('N','Y') | NO   |     | N       |       |
| Create_routine_priv   | enum('N','Y') | NO   |     | N       |       |
| Alter_routine_priv    | enum('N','Y') | NO   |     | N       |       |
| Execute_priv          | enum('N','Y') | NO   |     | N       |       |
| Event_priv            | enum('N','Y') | NO   |     | N       |       |
| Trigger_priv          | enum('N','Y') | NO   |     | N       |       |
+-----------------------+---------------+------+-----+---------+-------+
22 rows in set (0.00 sec)
创建数据表表

create table 【表名】

【字段名1】 【数据类型】 【属性】,
【字段名2】 【数据类型】 【属性】
);

mysql> create table user(
    -> id int primary key auto_increment,
    -> username char(15) not null,
    -> password char(25) not null,
    -> sex char(6) not null);
Query OK, 0 rows affected (0.09 sec)

mysql> desc user;
+----------+----------+------+-----+---------+----------------+
| Field    | Type     | Null | Key | Default | Extra          |
+----------+----------+------+-----+---------+----------------+
| id       | int      | NO   | PRI | NULL    | auto_increment |
| username | char(15) | NO   |     | NULL    |                |
| password | char(25) | NO   |     | NULL    |                |
| sex      | char(6)  | NO   |     | NULL    |                |
+----------+----------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
数据表属性规则

数据类型:

数字

格式作用
int, int unsigned tiny int, small int, int, medium int, big int整数
float(n, m)单精度浮点数float(5,3)
double(n, m)双精度浮点数
char(10)定长的字符串
varchar(20)变长的字符串
text文本 tiny text, medium text, text, long text
ENUM(“男”, “女”)枚举
date日期时间YYYY-MM-DD time hh:mm:ss datetime YYYY-MM-DD HH:MM:SS

属性:

格式作用
not null不允许为空
default “值”设置默认值
primary key主键
auto_increment自动增长
查看创建数据表信息

show create table 【数据表名称】;

mysql> show create table user;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table
                          |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user  | CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` char(15) NOT NULL,
  `password` char(25) NOT NULL,
  `sex` char(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.21 sec)
          
查看存储引擎

show engines;

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
数据引擎特点

InnoDB引擎

特点:支持事务、行级锁、外键

后缀名属性
*.frm表结构文件
*.ibd数据文件、索引

MyISAM 引擎

特点:支持表级锁、查询性能好

后缀名属性
*.frm表结构文件
*.MYD数据文件
*.MYI索引文件

MEMORY引擎

特点:在内存中存储数据

BLACKHOLE 引擎

特点:黑洞存储存储, 在特殊主从复制架构

修改MySQL数据库默认使用的存储引擎
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
default_storage_engine=MyISAM
删除数据表
mysql> drop table tb01;
修改表结构
修改表结构(修改表名)

alter table 【原属性】 rename 【新属性】;

mysql> alter table user rename player;
Query OK, 0 rows affected (0.03 sec)
mysql> show tables;
+-----------------+
| Tables_in_game2 |
+-----------------+
| player          |
+-----------------+
1 row in set (0.01 sec)
修改表结构(添加字段)

alter table 【原属性】 【操作】;

mysql> desc player;
+----------+----------+------+-----+---------+----------------+
| Field    | Type     | Null | Key | Default | Extra          |
+----------+----------+------+-----+---------+----------------+
| id       | int      | NO   | PRI | NULL    | auto_increment |
| username | char(15) | NO   |     | NULL    |                |
| password | char(25) | NO   |     | NULL    |                |
| sex      | char(6)  | NO   |     | NULL    |                |
| descripe | char(30) | YES  |     | NULL    |                |
+----------+----------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> alter table player add NO int FIRST;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc player;
+----------+----------+------+-----+---------+----------------+
| Field    | Type     | Null | Key | Default | Extra          |
+----------+----------+------+-----+---------+----------------+
| NO       | int      | YES  |     | NULL    |                |
| id       | int      | NO   | PRI | NULL    | auto_increment |
| username | char(15) | NO   |     | NULL    |                |
| password | char(25) | NO   |     | NULL    |                |
| sex      | char(6)  | NO   |     | NULL    |                |
| descripe | char(30) | YES  |     | NULL    |                |
+----------+----------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
mysql> alter table player add age int after password;
Query OK, 0 rows affected (0.52 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc player;
+----------+----------+------+-----+---------+----------------+
| Field    | Type     | Null | Key | Default | Extra          |
+----------+----------+------+-----+---------+----------------+
| NO       | int      | YES  |     | NULL    |                |
| id       | int      | NO   | PRI | NULL    | auto_increment |
| username | char(15) | NO   |     | NULL    |                |
| password | char(25) | NO   |     | NULL    |                |
| age      | int      | YES  |     | NULL    |                |
| sex      | char(6)  | NO   |     | NULL    |                |
| descripe | char(30) | YES  |     | NULL    |                |
+----------+----------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
修改表结构(删除字段)

alter table 【原属性】 【操作】;

mysql> alter table player drop descripe;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc player;
+----------+----------+------+-----+---------+----------------+
| Field    | Type     | Null | Key | Default | Extra          |
+----------+----------+------+-----+---------+----------------+
| NO       | int      | YES  |     | NULL    |                |
| id       | int      | NO   | PRI | NULL    | auto_increment |
| username | char(15) | NO   |     | NULL    |                |
| password | char(25) | NO   |     | NULL    |                |
| age      | int      | YES  |     | NULL    |                |
| sex      | char(6)  | NO   |     | NULL    |                |
+----------+----------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
修改表结构(修改字段)

alter table 【原属性】 【操作】;

mysql> alter table player modify NO char(5);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc player;
+----------+----------+------+-----+---------+-------+
| Field    | Type     | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| NO       | char(5)  | YES  |     | NULL    |       |
| id       | int      | NO   | PRI | NULL    |       |
| username | char(15) | NO   |     | NULL    |       |
| password | char(25) | NO   |     | NULL    |       |
| age      | int      | YES  |     | NULL    |       |
| sex      | char(6)  | NO   |     | NULL    |       |
+----------+----------+------+-----+---------+-------+
6 rows in set (0.00 sec)
数据管理操作
查看数据

select * from 【表名】 【条件】;

mysql> select * from player;
+----+----------+----------+------+-------+
| id | username | password | age  | sex   |
+----+----------+----------+------+-------+
|  1 | tom      | 456      |   15 | man   |
|  2 | ly       | 123      |   22 | man   |
|  3 | ma       | 123      |   21 | woman |
+----+----------+----------+------+-------+
3 rows in set (0.00 sec)
mysql> select * from player where username="ma";
+----+----------+----------+------+-------+
| id | username | password | age  | sex   |
+----+----------+----------+------+-------+
|  3 | ma       | 123      |   21 | woman |
+----+----------+----------+------+-------+
1 row in set (0.00 sec)
添加数据

insert into 【表名】(属性1,属性2) values(属性值1,属性值2);

mysql> insert into player(id,username,password,age,sex) values(0001,"tom","123",15,"man");
Query OK, 1 row affected (0.01 sec)
mysql> select * from player;
+----+----------+----------+------+-----+
| id | username | password | age  | sex |
+----+----------+----------+------+-----+
|  1 | tom      | 123      |   15 | man |
+----+----------+----------+------+-----+
1 row in set (0.00 sec)
删除数据

delete from 【表名】 【条件】;

mysql> select * from player;
+----+----------+----------+------+-------+
| id | username | password | age  | sex   |
+----+----------+----------+------+-------+
|  1 | tom      | 123      |   15 | man   |
|  2 | ly       | 123      |   22 | man   |
|  3 | ma       | 123      |   21 | woman |
|  4 | eee      | 6555     |   55 | man   |
+----+----------+----------+------+-------+
4 rows in set (0.00 sec)
mysql> delete from player where username="eee";
Query OK, 1 row affected (0.01 sec)
mysql> select * from player;
+----+----------+----------+------+-------+
| id | username | password | age  | sex   |
+----+----------+----------+------+-------+
|  1 | tom      | 123      |   15 | man   |
|  2 | ly       | 123      |   22 | man   |
|  3 | ma       | 123      |   21 | woman |
+----+----------+----------+------+-------+
3 rows in set (0.00 sec)
修改数据

update 【表名】 set 【属性名】=【属性值】 【条件】;

mysql> select * from player;
+----+----------+----------+------+-------+
| id | username | password | age  | sex   |
+----+----------+----------+------+-------+
|  1 | tom      | 123      |   15 | man   |
|  2 | ly       | 123      |   22 | man   |
|  3 | ma       | 123      |   21 | woman |
+----+----------+----------+------+-------+
3 rows in set (0.00 sec)

mysql> update player set password="456" where username="tom";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from player;
+----+----------+----------+------+-------+
| id | username | password | age  | sex   |
+----+----------+----------+------+-------+
|  1 | tom      | 456      |   15 | man   |
|  2 | ly       | 123      |   22 | man   |
|  3 | ma       | 123      |   21 | woman |
+----+----------+----------+------+-------+
3 rows in set (0.00 sec)
数据单表查询

select * from 【表名】 【条件】;

按照固定格式显示
mysql> select username,age from player where id=1;
+----------+------+
| username | age  |
+----------+------+
| tom      |   15 |
+----------+------+
1 row in set (0.00 sec)

mysql> select username as 姓名,age as 年龄 from player where id=1;
+--------+--------+
| 姓名   | 年龄   |
+--------+--------+
| tom    |     15 |
+--------+--------+
1 row in set (0.00 sec)
数据库逻辑查询

1.数据库中的“与”查询

mysql> select username as 姓名,age as 年龄 from player where age>21 and age<30;
+--------+--------+
| 姓名   | 年龄   |
+--------+--------+
| ly     |     22 |
+--------+--------+
1 row in set (0.01 sec)


mysql> select username as 姓名,age as 年龄 from player where age between 21 and 30;
+--------+--------+
| 姓名   | 年龄   |
+--------+--------+
| ly     |     22 |
+--------+--------+
1 row in set (0.01 sec)

2.数据中的“或”查询

mysql> select * from tutors where Tname="YiDeng" or Tname="HuYidao";
+-----+---------+--------+------+
| TID | Tname   | Gender | Age  |
+-----+---------+--------+------+
|   5 | YiDeng  | M      |   90 |
|   8 | HuYidao | M      |   42 |
+-----+---------+--------+------+
2 rows in set (0.00 sec)

mysql> select * from tutors where Tname in ("YiDeng","HuYidao");
+-----+---------+--------+------+
| TID | Tname   | Gender | Age  |
+-----+---------+--------+------+
|   5 | YiDeng  | M      |   90 |
|   8 | HuYidao | M      |   42 |
+-----+---------+--------+------+
2 rows in set (0.00 sec)

3.数据中的“非”查询

mysql> select * from tutors where not Age < 80;
+-----+------------+--------+------+
| TID | Tname      | Gender | Age  |
+-----+------------+--------+------+
|   1 | HongQigong | M      |   93 |
|   5 | YiDeng     | M      |   90 |
+-----+------------+--------+------+
2 rows in set (0.00 sec)
数据库中的模糊查询(like)

查询名字中间带ing的人的名字

mysql> select * from students where Name like "%ing";
+-----+---------+------+--------+------+------+------+---------------------+
| SID | Name    | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+---------+------+--------+------+------+------+---------------------+
|   1 | GuoJing |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
+-----+---------+------+--------+------+------+------+---------------------+
1 row in set (0.00 sec)


mysql> select * from students where Name like "%ing%";
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
4 rows in set (0.00 sec)
数据库中的模糊正则查询(rlike)

查询以H或者J开头的人的名字

mysql> select * from students where Name rlike "^[HJ]";
+-----+-----------+------+--------+------+------+------+---------------------+
| SID | Name      | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+-----------+------+--------+------+------+------+---------------------+
|   4 | HuFei     |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
+-----+-----------+------+--------+------+------+------+---------------------+
2 rows in set (0.34 sec)

查询名字中间带ing的人的名字

mysql> select * from students where Name rlike "ing";
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
4 rows in set (0.00 sec)
针对数据表中的空字段查询
mysql> select * from students where TID is null;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
5 rows in set (0.00 sec)
数据排序管理
mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.01 sec)


mysql> select * from students order by Age desc;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.00 sec)


mysql> select * from students where Age > 20 order by Age desc;
+-----+-------------+------+--------+------+------+------+---------------------+
| SID | Name        | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+-------------+------+--------+------+------+------+---------------------+
|   4 | HuFei       |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   8 | Xuzhu       |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   3 | DingDian    |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   9 | LingHuchong |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+-------------+------+--------+------+------+------+---------------------+
4 rows in set (0.00 sec)
限制数据显示行数
mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.01 sec)


mysql> select * from students limit 2;
+-----+---------+------+--------+------+------+------+---------------------+
| SID | Name    | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+---------+------+--------+------+------+------+---------------------+
|   1 | GuoJing |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
+-----+---------+------+--------+------+------+------+---------------------+
2 rows in set (0.00 sec)



mysql> select * from students limit 2, 5;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
5 rows in set (0.00 sec)
函数管理
函数作用
max()求最大值
min()求最小值
sum()求和
avg()求均值
count()求人数
mysql> select avg(Age) as 平均年龄 from students;
+--------------+
| 平均年龄     |
+--------------+
|      21.3000 |
+--------------+
1 row in set (0.02 sec)
mysql> select count(*) as 人数 from students;
+--------+
| 人数   |
+--------+
|     10 |
+--------+
1 row in set (0.06 sec)
mysql> select count(*) as 人数 from students where Age > 18;
+--------+
| 人数   |
+--------+
|      7 |
+--------+
1 row in set (0.00 sec)
数据分组操作
mysql> select count(*) as 人数 ,gender as 性别 from students group by gender;
+--------+--------+
| 人数   | 性别   |
+--------+--------+
|      7 | M      |
|      3 | F      |
+--------+--------+
2 rows in set (0.00 sec)
mysql> select avg(Age) as 平均年龄 ,gender as 性别 from students group by gender;
+--------------+--------+
| 平均年龄     | 性别   |
+--------------+--------+
|      22.8571 | M      |
|      17.6667 | F      |
+--------------+--------+
2 rows in set (0.00 sec)
mysql> select avg(Age) as 平均年龄 ,gender as 性别 from students group by gender having 平均年龄 > 18;
+--------------+--------+
| 平均年龄     | 性别   |
+--------------+--------+
|      22.8571 | M      |
+--------------+--------+
1 row in set (0.00 sec)
数据去重操作
mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.04 sec)

mysql> select distinct Age from students;
+------+
| Age  |
+------+
|   19 |
|   17 |
|   25 |
|   31 |
|   16 |
|   18 |
|   20 |
|   26 |
|   22 |
+------+
9 rows in set (0.00 sec)
嵌套查询操作
mysql> select * from students where Age > (select avg(Age) from students);
+-----+-------------+------+--------+------+------+------+---------------------+
| SID | Name        | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+-------------+------+--------+------+------+------+---------------------+
|   3 | DingDian    |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei       |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   8 | Xuzhu       |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+-------------+------+--------+------+------+------+---------------------+
4 rows in set (0.04 sec)
mysql> select name,Age,Gender from students where name in (select name from students);
+--------------+------+--------+
| name         | Age  | Gender |
+--------------+------+--------+
| GuoJing      |   19 | M      |
| YangGuo      |   17 | M      |
| DingDian     |   25 | M      |
| HuFei        |   31 | M      |
| HuangRong    |   16 | F      |
| YueLingshang |   18 | F      |
| ZhangWuji    |   20 | M      |
| Xuzhu        |   26 | M      |
| LingHuchong  |   22 | M      |
| YiLin        |   19 | F      |
+--------------+------+--------+
10 rows in set (0.01 sec)
数据多表查询
内连接

只有相关联字段存在相同的值时,才会显示结果

1.查询学生的指导老师

ysql> select * from tutors;
+-----+--------------+--------+------+
| TID | Tname        | Gender | Age  |
+-----+--------------+--------+------+
|   1 | HongQigong   | M      |   93 |
|   2 | HuangYaoshi  | M      |   63 |
|   3 | Miejueshitai | F      |   72 |
|   4 | OuYangfeng   | M      |   76 |
|   5 | YiDeng       | M      |   90 |
|   6 | YuCanghai    | M      |   56 |
|   7 | Jinlunfawang | M      |   67 |
|   8 | HuYidao      | M      |   42 |
|   9 | NingZhongze  | F      |   49 |
+-----+--------------+--------+------+
9 rows in set (0.03 sec)
mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.00 sec)
mysql> select students.name,students.age,students.gender.tutors.Tname
    -> from students inner join tutors
    -> on students.TID=tutors.TID;
+-----------+------+--------+--------------+
| name      | age  | gender | tname        |
+-----------+------+--------+--------------+
| GuoJing   |   19 | M      | Miejueshitai |
| YangGuo   |   17 | M      | HongQigong   |
| DingDian  |   25 | M      | Jinlunfawang |
| HuFei     |   31 | M      | YiDeng       |
| HuangRong |   16 | F      | NingZhongze  |
+-----------+------+--------+--------------+
5 rows in set (0.00 sec)

2.查询学生的课程

mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.00 sec)
mysql> select * from courses;
+-----+------------------+-----+
| CID | Cname            | TID |
+-----+------------------+-----+
|   1 | Hamagong         |   2 |
|   2 | TaiJiquan        |   3 |
|   3 | Yiyangzhi        |   6 |
|   4 | Jinshejianfa     |   1 |
|   5 | Qianzhuwandushou |   4 |
|   6 | Qishangquan      |   5 |
|   7 | Qiankundanuoyi   |   7 |
|   8 | Wanliduxing      |   8 |
|   9 | Pixiejianfa      |   3 |
|  10 | Jiuyinbaiguzhua  |   7 |
+-----+------------------+-----+
10 rows in set (0.03 sec)
mysql> select students.Name ,students.CiD1,courses.Cid,courses.Cname 
    -> from students inner join courses
    -> on students.CID1=courses.CID;
+--------------+------+-----+------------------+
| Name         | CiD1 | Cid | Cname            |
+--------------+------+-----+------------------+
| GuoJing      |    2 |   2 | TaiJiquan        |
| YangGuo      |    2 |   2 | TaiJiquan        |
| DingDian     |    6 |   6 | Qishangquan      |
| HuFei        |    8 |   8 | Wanliduxing      |
| HuangRong    |    5 |   5 | Qianzhuwandushou |
| YueLingshang |    8 |   8 | Wanliduxing      |
| ZhangWuji    |    1 |   1 | Hamagong         |
| Xuzhu        |    2 |   2 | TaiJiquan        |
+--------------+------+-----+------------------+
8 rows in set (0.01 sec)

3.查询学生课程及任课老师

mysql> select students.name,students.age,courses.Cname,tutors.Tname 
    -> from students inner join courses inner join tutors
    -> on students.cID1=courses.cid and courses.tid=tutors.tid;
+--------------+------+------------------+--------------+
| name         | age  | Cname            | Tname        |
+--------------+------+------------------+--------------+
| GuoJing      |   19 | TaiJiquan        | Miejueshitai |
| YangGuo      |   17 | TaiJiquan        | Miejueshitai |
| DingDian     |   25 | Qishangquan      | YiDeng       |
| HuFei        |   31 | Wanliduxing      | HuYidao      |
| HuangRong    |   16 | Qianzhuwandushou | OuYangfeng   |
| YueLingshang |   18 | Wanliduxing      | HuYidao      |
| ZhangWuji    |   20 | Hamagong         | HuangYaoshi  |
| Xuzhu        |   26 | TaiJiquan        | Miejueshitai |
+--------------+------+------------------+--------------+
8 rows in set (0.00 sec)
左外连接

以左表为主,显示左表中所有的数据,相关联字段存在相同的值时,显示对应的数 据;否则显示为NULL

mysql> select students.name,students.age,courses.Cname 
    -> from students left join courses
    -> on students.CID1=courses.cid;
+--------------+------+------------------+
| name         | age  | Cname            |
+--------------+------+------------------+
| GuoJing      |   19 | TaiJiquan        |
| YangGuo      |   17 | TaiJiquan        |
| DingDian     |   25 | Qishangquan      |
| HuFei        |   31 | Wanliduxing      |
| HuangRong    |   16 | Qianzhuwandushou |
| YueLingshang |   18 | Wanliduxing      |
| ZhangWuji    |   20 | Hamagong         |
| Xuzhu        |   26 | TaiJiquan        |
| LingHuchong  |   22 | NULL             |
| YiLin        |   19 | NULL             |
+--------------+------+------------------+
10 rows in set (0.00 sec)
右外连接

以右表为主,显示左表中所有的数据,相关联字段存在相同的值时,显示对应的数 据;否则显示为NULL

mysql> select students.name,students.age,courses.Cname 
    -> from students right join courses
    -> on students.CID1=courses.cid;
+--------------+------+------------------+
| name         | age  | Cname            |
+--------------+------+------------------+
| ZhangWuji    |   20 | Hamagong         |
| Xuzhu        |   26 | TaiJiquan        |
| YangGuo      |   17 | TaiJiquan        |
| GuoJing      |   19 | TaiJiquan        |
| NULL         | NULL | Yiyangzhi        |
| NULL         | NULL | Jinshejianfa     |
| HuangRong    |   16 | Qianzhuwandushou |
| DingDian     |   25 | Qishangquan      |
| NULL         | NULL | Qiankundanuoyi   |
| YueLingshang |   18 | Wanliduxing      |
| HuFei        |   31 | Wanliduxing      |
| NULL         | NULL | Pixiejianfa      |
| NULL         | NULL | Jiuyinbaiguzhua  |
+--------------+------+------------------+
13 rows in set (0.00 sec)
数据库用户管理
用户管理操作

用户名格式: 用户名@主机地址

作用格式
单个IP地址admin@192.168.1.1
主机名admin@node01.linux.com
网段admin@192.168.2.%
所有admin@%
存储用户信息的数据表——mysql.user表
mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
创建本地登录用户

create user 【‘用户名’】@【‘认证方式’】 identified by 【‘密码’】;

mysql> create user 'ly'@'localhost' identified by 'Www.ly1.com';
Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| ly               | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
[root@localhost ~]# mysql -uly -pWww.ly1.com 
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.21 MySQL Community Server - GPL

查看当前用户信息
mysql> select user();
+--------------+
| user()       |
+--------------+
| ly@localhost |
+--------------+
1 row in set (0.03 sec)
创建远程用户登录

1.创建对应远程主机IP的用户

mysql> create user 'lll'@'192.168.122.10' identified by 'Www.ly1.com';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| lll              | 192.168.122.10 |
| ly               | localhost       |
| mysql.infoschema | localhost       |
| mysql.session    | localhost       |
| mysql.sys        | localhost       |
| root             | localhost       |
+------------------+-----------------+
6 rows in set (0.00 sec)

2.打开相关主机登录

[root@localhost ~]# mysql -ulll -pWww.ly1.com -h 192.168.122.10
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.21 MySQL Community Server - GPL

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.01 sec)
删除用户
mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| ly               | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
mysql> drop user 'ly'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
修改用户密码

1.mysqladmin

[root@localhost ~]# mysqladmin -uly -p password "Www.ly2.com"
Enter password: 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@localhost ~]# mysql -uly -pWww.ly2.com
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.21 MySQL Community Server - GPL

2.set password for

mysql> set password for 'ly'@'localhost' = 'Www.2.com';
Query OK, 0 rows affected (0.01 sec)
[root@localhost ~]# mysql -uly -pWww.2.com
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.21 MySQL Community Server - GPL
用户授权管理
授予用户相关权限

语法: grant 权限 on 库名.表名 to 用户名 [identified by ‘密码’]
权限: create, drop, select, update, insert, delete all

[root@localhost ~]# mysql -uly -pWww.2.com
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
mysql> use jiaou;
ERROR 1044 (42000): Access denied for user 'ly'@'localhost' to database 'jiaou'
mysql> 
[root@localhost ~]# mysql -uroot -pWww.ly1.com 
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.21 MySQL Community Server - GPL
mysql> grant select on jiaowu.tutors to 'ly'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> select * from students;
ERROR 1142 (42000): SELECT command denied to user 'ly'@'localhost' for table 'students'
mysql> select * from tutors;
+-----+--------------+--------+------+
| TID | Tname        | Gender | Age  |
+-----+--------------+--------+------+
|   1 | HongQigong   | M      |   93 |
|   2 | HuangYaoshi  | M      |   63 |
|   3 | Miejueshitai | F      |   72 |
|   4 | OuYangfeng   | M      |   76 |
|   5 | YiDeng       | M      |   90 |
|   6 | YuCanghai    | M      |   56 |
|   7 | Jinlunfawang | M      |   67 |
|   8 | HuYidao      | M      |   42 |
|   9 | NingZhongze  | F      |   49 |
+-----+--------------+--------+------+
9 rows in set (0.09 sec)
查看用户相关权限
mysql> show grants for 'ly'@'localhost';
+-------------------------------------------------------+
| Grants for ly@localhost                               |
+-------------------------------------------------------+
| GRANT USAGE ON *.* TO `ly`@`localhost`                |
| GRANT SELECT ON `jiaowu`.`tutors` TO `ly`@`localhost` |
+-------------------------------------------------------+
2 rows in set (0.00 sec)
回收用户相关
mysql> show grants for 'ly'@'localhost';
+-------------------------------------------------------+
| Grants for ly@localhost                               |
+-------------------------------------------------------+
| GRANT USAGE ON *.* TO `ly`@`localhost`                |
| GRANT SELECT ON `jiaowu`.`tutors` TO `ly`@`localhost` |
+-------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> revoke select on jiaowu.tutors from 'ly'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for 'ly'@'localhost';
+----------------------------------------+
| Grants for ly@localhost                |
+----------------------------------------+
| GRANT USAGE ON *.* TO `ly`@`localhost` |
+----------------------------------------+
1 row in set (0.00 sec)
用户事务管理

事务 transaction 保证多个操作同时成功、失败
启动事务

  1. 修改操作
  2. 修改操作 提交事务;
  3. 回滚事务
创建事务(提交)

start transaction;
【操作】;
commit;

mysql> start transaction
    -> ;
Query OK, 0 rows affected (0.00 sec)
mysql> use jiaowu;
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> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.03 sec)
mysql> insert into students(name,age,gender,cid1,cid2,tid) values('ly','22','M','2','3','5');
Query OK, 1 row affected (0.04 sec)
mysql> select * from students;
+------+--------------+------+--------+------+------+------+---------------------+
| SID  | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+------+--------------+------+--------+------+------+------+---------------------+
|    1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|    2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|    3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|    4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|    5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|    6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|    7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|    8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|    9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|   10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
| 3907 | ly           |   22 | M      |    2 |    3 |    5 | 2012-04-06 10:00:00 |
+------+--------------+------+--------+------+------+------+---------------------+
11 rows in set (0.00 sec)
mysql> delete from students where name='ly';
Query OK, 1 row affected (0.00 sec)
mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
创建事务(回滚)
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.00 sec)
mysql> insert into students(name,age,gender,cid1,cid2,tid) values('ly','22','M','2','3','5');
Query OK, 1 row affected (0.00 sec)
mysql> select * from students;
+------+--------------+------+--------+------+------+------+---------------------+
| SID  | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+------+--------------+------+--------+------+------+------+---------------------+
|    1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|    2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|    3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|    4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|    5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|    6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|    7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|    8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|    9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|   10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
| 3908 | ly           |   22 | M      |    2 |    3 |    5 | 2012-04-06 10:00:00 |
+------+--------------+------+--------+------+------+------+---------------------+
11 rows in set (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from students;
+-----+--------------+------+--------+------+------+------+---------------------+
| SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
+-----+--------------+------+--------+------+------+------+---------------------+
|   1 | GuoJing      |   19 | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
|   2 | YangGuo      |   17 | M      |    2 |    3 |    1 | 2012-04-06 10:00:00 |
|   3 | DingDian     |   25 | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
|   4 | HuFei        |   31 | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
|   5 | HuangRong    |   16 | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
|   6 | YueLingshang |   18 | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |
|   7 | ZhangWuji    |   20 | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |
|   8 | Xuzhu        |   26 | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |
|   9 | LingHuchong  |   22 | M      |   11 | NULL | NULL | 2012-04-06 10:00:00 |
|  10 | YiLin        |   19 | F      |   18 | NULL | NULL | 2012-04-06 10:00:00 |
+-----+--------------+------+--------+------+------+------+---------------------+
10 rows in set (0.00 sec)
用户视图管理

将频繁使用的多表查询结果,保存到视图

创建视图
mysql> select students.name,students.age,students.gender,tutors.tname 
    -> from students inner join tutors 
    -> on students.tid=tutors.tid;
+-----------+------+--------+--------------+
| name      | age  | gender | tname        |
+-----------+------+--------+--------------+
| GuoJing   |   19 | M      | Miejueshitai |
| YangGuo   |   17 | M      | HongQigong   |
| DingDian  |   25 | M      | Jinlunfawang |
| HuFei     |   31 | M      | YiDeng       |
| HuangRong |   16 | F      | NingZhongze  |
+-----------+------+--------+--------------+
5 rows in set (0.03 sec)
mysql> create view studentstutors
    -> as
    -> select students.name,students.age,students.gender,tutors.tname
    -> from students inner join tutors
    -> on students.tid=tutors.tid;
Query OK, 0 rows affected (0.04 sec)
查看视图

mysql> show tables;
+------------------+
| Tables_in_jiaowu |
+------------------+
| courses          |
| scores           |
| students         |
| studentstutors   |
| tutors           |
+------------------+
5 rows in set (0.00 sec)
mysql> select * from studentstutors;
+-----------+------+--------+--------------+
| name      | age  | gender | tname        |
+-----------+------+--------+--------------+
| GuoJing   |   19 | M      | Miejueshitai |
| YangGuo   |   17 | M      | HongQigong   |
| DingDian  |   25 | M      | Jinlunfawang |
| HuFei     |   31 | M      | YiDeng       |
| HuangRong |   16 | F      | NingZhongze  |
+-----------+------+--------+--------------+
5 rows in set (0.00 sec)
删除视图
mysql> drop view studentstutors;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+------------------+
| Tables_in_jiaowu |
+------------------+
| courses          |
| scores           |
| students         |
| tutors           |
+------------------+
4 rows in set (0.00 sec)
用户索引管理

作用:加速数据库查询速

查看索引
mysql> show index from tutors;
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table  | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| tutors |          0 | TID      |            1 | TID         | A         |           9 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
1 row in set (0.00 sec)
创建索引
mysql> create index stuindex on students(name);
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show index from students;
+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table    | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| students |          0 | SID      |            1 | SID         | A         |          11 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
| students |          1 | stuindex |            1 | Name        | A         |          10 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
2 rows in set (0.01 sec)
删除索引
mysql> drop index stuindex on students;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> show index from students;
+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table    | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| students |          0 | SID      |            1 | SID         | A         |          11 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
1 row in set (0.01 sec)
触发器管理

作用: 当检测到数据表数据发生变化时,其他的表自动更新 基于insert, update, delete操作创建

语法:
1 create trigger trigger_name {BEFORE|AFTER} {INSERT|UPDATE|DELETE} on tb_n ame FOR EACH ROW
2 BEGIN
3 执行的操作;
4 执行的操作;
5 END

触发器创建

1.创建数据自动增加触发器

mysql> create table stu(
    -> name char(10) not null,
    -> age int not null);
Query OK, 0 rows affected (0.05 sec)
mysql> insert into stu(name,age) values("lll","555");
Query OK, 1 row affected (0.01 sec)
mysql> select * from stu;
+------+-----+
| name | age |
+------+-----+
| lll  | 555 |
+------+-----+
1 row in set (0.00 sec)
mysql> create table num ( nu int not null);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into num(nu) values("1");
Query OK, 1 row affected (0.00 sec)
mysql> select * from num;
+----+
| nu |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

mysql> \d !
mysql> create trigger stuadd after insert on stu for each row
    -> begin
    -> update num set nu=nu+1;
    -> end!
Query OK, 0 rows affected (0.01 sec)
mysql> select * from stu!
+------+-----+
| name | age |
+------+-----+
| lll  | 555 |
+------+-----+
1 row in set (0.00 sec)
mysql> select * from num!
+----+
| nu |
+----+
|  1 |
+----+
1 row in set (0.00 sec)
mysql> insert into stu(name,age) values("mmm","22")!
Query OK, 1 row affected (0.01 sec)
mysql> select * from stu!
+------+-----+
| name | age |
+------+-----+
| lll  | 555 |
| mmm  |  22 |
+------+-----+
2 rows in set (0.00 sec)
mysql> select * from num!
+----+
| nu |
+----+
|  2 |
+----+
1 row in set (0.00 sec)

2.创建插入更改数据触发器


mysql> select * from name!
+------+
| name |
+------+
| lll  |
| mmm  |
+------+
2 rows in set (0.00 sec)
mysql> create trigger namadd after insert on stu for each row
    -> begin
    -> insert into name(name) values(new.name);
    -> end!
Query OK, 0 rows affected (0.01 sec)
mysql> create trigger namadd after insert on stu for each row
    -> begin
    -> insert into name(name) values(new.name);
    -> end!
Query OK, 0 rows affected (0.01 sec)
mysql> insert into stu(name,age) values("hhh","22")!
Query OK, 1 row affected (0.01 sec)
mysql> select * from num!
+----+
| nu |
+----+
|  3 |
+----+
1 row in set (0.00 sec)
mysql> select * from name!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
+------+
3 rows in set (0.00 sec)

3.创建自动删除更改信息触发器

mysql> create trigger delnam after delete on stu for each row
    -> begin
    -> delete from name where name=old.name;
    -> end!
Query OK, 0 rows affected (0.01 sec)
mysql> insert into stu(name,age) values("whh","66")!
Query OK, 1 row affected (0.00 sec)
mysql> select * from name!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
| whh  |
+------+
4 rows in set (0.00 sec)
mysql> delete from stu where name="whh"!
Query OK, 1 row affected (0.00 sec)
mysql> select * from name!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
+------+
3 rows in set (0.00 sec)
查看触发器
mysql> show triggers!
+---------+--------+-------+----------------------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------+----------------------+----------------------+--------------------+
| Trigger | Event  | Table | Statement                                          | Timing | Created                | sql_mode                                                                                                              | Definer        | character_set_client | collation_connection | Database Collation |
+---------+--------+-------+----------------------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------+----------------------+----------------------+--------------------+
| stuadd  | INSERT | stu   | begin
update num set nu=nu+1;
end                  | AFTER  | 2020-09-12 05:39:30.95 | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION | root@localhost | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
| namadd  | INSERT | stu   | begin
insert into name(name) values(new.name);
end | AFTER  | 2020-09-12 05:47:41.28 | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION | root@localhost | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
| delnam  | DELETE | stu   | begin
delete from name where name=old.name;
end    | AFTER  | 2020-09-12 05:55:25.64 | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION | root@localhost | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
+---------+--------+-------+----------------------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------+----------------------+----------------------+--------------------+
3 rows in set (0.03 sec)
删除触发器
mysql> drop trigger stuadd!
Query OK, 0 rows affected (0.01 sec)
mysql> drop trigger namadd!
Query OK, 0 rows affected (0.01 sec)
mysql> show triggers!
+---------+--------+-------+-------------------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------+----------------------+----------------------+--------------------+
| Trigger | Event  | Table | Statement                                       | Timing | Created                | sql_mode                                                                                                              | Definer        | character_set_client | collation_connection | Database Collation |
+---------+--------+-------+-------------------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------+----------------------+----------------------+--------------------+
| delnam  | DELETE | stu   | begin
delete from name where name=old.name;
end | AFTER  | 2020-09-12 05:55:25.64 | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION | root@localhost | utf8mb4              | utf8mb4_0900_ai_ci   | utf8mb4_0900_ai_ci |
+---------+--------+-------+-------------------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------+----------------------+----------------------+--------------------+
1 row in set (0.06 sec)
存储过程

作用: 将频繁使用的操作定义为存储过程,方便后续调用

创建存储过程

create procedure sp_name(参数1, 参数2)
begin
执行的操作;
执行的操作;
end

mysql> \d !!
mysql> create procedure stucon()
    -> begin
    -> select count(*) as 用户数据 from students;
    -> end!!
Query OK, 0 rows affected (0.07 sec)
调用存储过程
mysql> call stucon!!
+--------------+
| 用户数据     |
+--------------+
|           10 |
+--------------+
1 row in set (0.06 sec)
Query OK, 0 rows affected (0.06 sec)
创建批量插入存储过过程
mysql> create procedure insdata()
    -> begin
    -> declare i int default 1;
    -> while(i<=10) do
    -> insert into name(name) values(ly);
    -> set i=i+1;
    -> end while;
    -> end!!
Query OK, 0 rows affected (0.00 sec)
mysql> call insdata()!!
Query OK, 1 row affected (0.04 sec)
mysql> select * from name!!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
| ly   |
| ly   |
| ly   |
| ly   |
| ly   |
| ly   |
| ly   |
| ly   |
| ly   |
| ly   |
+------+
13 rows in set (0.00 sec)
创建输入参数存储过程
mysql> delete from name where name="ly"!!
Query OK, 10 rows affected (0.01 sec)
mysql> select * from name!!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
+------+
3 rows in set (0.00 sec)
mysql> drop procedure insdata!!
Query OK, 0 rows affected (0.01 sec)
mysql> create procedure insdata(IN num INT)
    -> begin
    -> declare i int default 1;
    -> while(i<=num) do
    -> insert into name(name) values(ly);
    -> set i=i+1;
    -> end while;
    -> end!!
Query OK, 0 rows affected (0.00 sec)
mysql> call insdata()!!
Query OK, 1 row affected (0.04 sec)

mysql> call insdata(5)!!
Query OK, 1 row affected (0.02 sec)
mysql> select * from name!!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
| ly   |
| ly   |
| ly   |
| ly   |
| ly   |
+------+
8 rows in set (0.00 sec)
创建参数拼接sql语句存储过程
mysql> create procedure insnam(IN num INT,IN name char(10))
begin
set @sql=concat("insert into name(name) values(","'",name,"'",")");
prepare tra from @sql; execute tra; 
end!!
Query OK, 0 rows affected (0.01 sec)
mysql> call insnam("2","llyy")!!
Query OK, 1 row affected (0.01 sec)
mysql> select * from name!!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
| llyy |
+------+
4 rows in set (0.00 sec)
创建输出参数存储过程
mysql> select * from name!!
+------+
| name |
+------+
| lll  |
| mmm  |
| hhh  |
| llyy |
+------+
4 rows in set (0.00 sec)
mysql> create procedure coun(OUT num INT)
    -> begin
    -> select count(*) into num from name;
    -> end!!
Query OK, 0 rows affected (0.00 sec)
mysql> call coun(@number)!!
Query OK, 1 row affected (0.00 sec)
mysql> select @number as 人数!!
+--------+
| 人数   |
+--------+
|      4 |
+--------+
1 row in set (0.00 sec)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪千颜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值