mysql数据库管理-2019整理

 

  • mysql数据库管理

【注:大部分命令不区分大小写】

  • SQL语言的作用是什么?

结构化查询语言(structured query  language)简称SQL
数据查询语言(DQL)= 查
数据定义语言(DDL)= 增删改
数据操纵语言(DML)= 插入  更新
数据控制语言(DCL)= 控制用户访问权控制
  • 使用SQL语言的常见错误?

SQL语句语法错误,如缺少标点、括号等
表或视图不存在
SQL语句中混入了不合法的关键词
字段定义模糊
完整性约束冲突
不能创建操作系统文件
  • 常见MySQL字段含义

自增长:auto_increment
非空:not null
默认值:default
唯一:unique
指定字符集:charset
主键:primary key

  • 常见的MySQL语句命令

进入mysql 命令行:mysql -uroot -p;
查看所有数据库:show databases;
创建数据库:create database niu charset utf8;
删除数据库:drop database niu;
选择数据库:use databases;
查看所有表:show tables;
查看创建数据库的语句:show create database databasename;
查看创建表的语句:show create table tablename;
查看表结构:desc tablenmae;
 

  • 库操作


创建数据库:create database shujukuba;
创建带字符集的数据库:create database mydb2 CHARACTER SET=utf8;
创建带校验的数据库:create database mydb3 CHARACTER SET=utf8 COLLATE utf8_general_ci;
显示数据库:show databases;
删除数据库:DROP DATABASE shujukuba;
修改数据库编码:ALTER DATABASE shujukuba character set gb2312;

 

  • 查看数据库默认是什么引擎和支持哪些引擎

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

  • 查看数据库结构;查看数据库列表信息;格式:show databases

root@mysql ~]# netstat -anpt|grep 3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2131/mysqld 

[root@mysql ~]# mysql -uroot -p123123

mysql> show databases;

 

  • 查看数据库中的数据表信息;格式:use 数据库名;show tables

mysql> use mysql;

mysql> show tables;

| ndb_binlog_index          |

| user                      |

24 rows in set (0.01 sec)

  • 显示数据表的结构(字段);格式:describ [数据库.]表名

mysql> describe mysql.user;

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |         |          

| Select_priv            | enum('N','Y')                     | NO   |     | N       |       |

   

| authentication_string  | text                              | YES  |     | NULL    |       |

+------------------------+-----------------------------------+------+-----+---------+-------+

42 rows in set (0.00 sec)

mysql> use mysql;

Database changed

mysql> describe user;

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |

  • DDL语句操作

数据定义语言,用于增删改数据库的对象,如库、表、索引等

  • create 创建新库、创建新表

create table 表名(

    列名1 类型(长度) [约束],  );

格式: create database 数据库名;create tables表名(定义字段);

mysql> create database auth;  【新建一个名为auth的数据库】

Query OK, 1 row affected (0.00 sec)

mysql> use auth;  【使用auth 这个数据库】

Database changed

mysql> create table users (user_name char(20) not null, user_passwd char(30) default '', primary key (user_name));【其中''是俩个单引号,这个的意思是在auth库中,创建名为users的表,表内两个字段为(user_name最多20个字节 不能为空,user_passwd 最多30个字节 默认为空,索引关键字user_name)】

  • 长度区别
  • int类型带长度:不影响存取值,即使设定的值超出了长度的范畴,也能存,如果没有达到设定的长度,则使用空格自动填充到设定的长度
  • char类型:不可变字符,设定的长度就是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,使用空格填充到设定的长度
  • varchar:可变字符,设定的长度同样是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,不会使用空格填充,实际多长就是多长

 

  • 表约束

1.非空约束    NOT NULL

2.默认值约束  DEFAULT '男'

3.唯一约束    UNIQUE

4.主键约束    PRIMARY KEY

  • 查看表结构

DESC 表名

mysql> desc user;
+-----------+----------+------+-----+---------+-------+
| Field     | Type     | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| user_name | char(20) | NO   |     | NULL    |       |
+-----------+----------+------+-----+---------+-------+
1 row in set (0.00 sec)

  • 同时对多表名进行改名

mysql> rename table ali to ali0,deng to deng0;  ##同时把表名ali改为ali0,deng改为deng0
Query OK, 0 rows affected (0.01 sec)
 

  • 删除库、删除表

格式: drop tables [数据库名.]表名;drop database 数据库名;

mysql> drop table auth.users;【删除auth库的users表】

Query OK, 0 rows affected (0.00 sec)

mysql> drop database auth;【删除auth数据库】

Query OK, 0 rows affected (0.00 sec)

修改表名(前提是进入数据库中)

alter table user ios;  ##把表名user修改为ios
或者
mysql> rename table ios to you;   ##把表名ios修改为you
Query OK, 0 rows affected (0.01 sec)



修改列名

Alter table 表名  change  列名  新列名 类型;

修改列类型

Alter table 表名  change 列名  列名  新类型;

修改列类型

Alter table 表名  modify  列名  新类型;

  • 数据查询-单表

查询表中全部信息

select * from 表名;

mysql> select * from zt_team;
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
| id | root | type    | account        | role         | limited | join       | days | hours | estimate | consumed | left | order |
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
|  1 |    1 | project | dev3           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  2 |    1 | project | productManager | 产品经理     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  3 |    1 | project | tester2        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  4 |    1 | project | tester1        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  5 |    2 | project | projectManager | 项目经理     | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
5 rows in set (0.00 sec)

查询表中指定列的信息

select 列1,列2 from 表名;

mysql> select type,role from zt_team;    ##查看表zt_team中tpye和role列的信息
+---------+--------------+
| type    | role         |
+---------+--------------+
| project | 研发         |
| project | 产品经理     |
| project | 测试         |
 

数据去重

select distinct 列…. From 表名;

mysql> select distinct type from zt_team;   ##只查看表zt_team中列type中的不重复的数据
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    229
Current database: zentao

+---------+
| type    |
+---------+
| project |
+---------+
1 row in set (0.10 sec)
 

拼接结果

select concat(列1,列2) from 表名;

mysql> select concat (type,role) from zt_team;   ##把表zt_team中type列和role列的数据拼接在一起
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    230
Current database: zentao

+---------------------+
| concat (type,role)  |
+---------------------+
| project研发         |
| project产品经理     |
| project测试         |
| project测试         |
 


运算符优先级:
1.乘法和除法的优先级高于加法和减法
2.同级运算的顺序是从左到右
3.表达式中使用"括号"可强行改变优先级的运算顺序

select 列1[+-*/]列2 from 表名;
设置别名(注意:关键字as可以省略)

select 列 as 别名 from 表名;   
select 列 别名 from 表名;   
 


 

  • 条件查询
select 列… from 表名 where 条件; 

mysql> select id  from zt_team where id>10;

+----+
| id |
+----+
| 11 |
| 12 |
| 13 |
| 14 |

  • 条件中比较运算符:( 等于:=  大于:>  大于等于:>=  小于:<  小于等于:<=  不等于:!= 或 <>  )
where 列  比较运算符  值;

mysql> select id from zt_team where id = 10;
+----+
| id |
+----+
| 10 |
+----+
1 row in set (0.01 sec)
 

注意:字符串、日期需使用单引号括起来
语句的执行顺序:from—>where—>select

  • 逻辑运算符( 并且:and 或 &&   或:or    非:not 或 !    )
where 条件1  逻辑运算符  条件2;  
where not 条件;

mysql> select id from zt_team where id=1 or id=10;

+----+
| id |
+----+
|  1 |
| 10 |
+----+
2 rows in set (0.01 sec)
 

mysql> select id from zt_team where not id>2;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.05 sec)
 

 

  • 范围查询
where 列 between 条件1  and 条件2;          //列在这个区间的值
where 列 not between 条件1 and 条件2;    //不在这个区间
where !( 列 between 条件1 and 条件2 );     //同样表示不在这个区间

mysql> select id from zt_team where id between 5 and 10 ;
+----+
| id |
+----+
|  5 |
|  6 |
|  7 |
|  8 |
|  9 |
| 10 |
+----+
6 rows in set (0.00 sec)
 

mysql> select id from zt_team where id not between  2 and 23;
+----+
| id |
+----+
|  1 |
| 24 |
| 25 |
| 26 |
+----+
4 rows in set (0.01 sec)
 

mysql> select id from zt_team where !(id between  2 and 23);
+----+
| id |
+----+
|  1 |
| 24 |
| 25 |
| 26 |
+----+
4 rows in set (0.00 sec)

  • 设置别名(注意:关键字as可以省略)
select 列 as 别名 from 表名;   
select 列 别名 from 表名;

 

mysql> select account as act from zt_team;  ##不改变数据库表的列名,只在命令输入后显示时改变别名
+----------------+
| act            |
+----------------+
| dev1           |
| dev2           |
| dev3           |
| productManager |
mysql> select * from zt_team;    ##查看时还是原来的列名
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
| id | root | type    | account        | role         | limited | join       | days | hours | estimate | consumed | left | order |
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
|  1 |    1 | project | dev3           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
mysql> select account zct from zt_team;   ##同第一条
+----------------+
| zct            |
+----------------+
| dev1           |
| dev2           |
 

  • 集合查询( 判断列的值是否在指定的集合中 )
where 列 in(值1,值2);          //列中的数据是in后的值里面的
where 列 not in(值1,值2);   //不是in中指定值的数据

mysql> select id from zt_team where id in(1,5);
+----+
| id |
+----+
|  1 |
|  5 |
+----+
2 rows in set (0.00 sec)

mysql> select id from zt_team where id not in(3,4,5,6,7,8);
+----+
| id |
+----+
|  1 |
|  2 |
 

 

  • NULL值查询( 注意:列中值为null不能使用=去查询 )
where 列 is null;  //查询列中值为null的数据
  • 模糊查询
%:表示0到多个字符,示例:
where 列 like '%0';   //表示以0结尾
where 列 like  '0%';   //表示以0开头
where 列 like  '%0%';   //表示数据中包含0
  • _:表示一个字符,可多次使用,示例:
where 列 like '%0_';   //数据结尾第二位是0
  • 结果排序( 对查询出的结果按照一列或多列进行升序还是降序排列 升序:asc  降序:desc    注意:不能使用中文的别名排序)
where 条件 order by 列 [asc/desc]

mysql> select id from zt_team where id>10  order by id desc;
+----+
| id |
+----+
| 26 |
| 25 |
| 24 |
| 23 |
| 22 |
| 21 |
| 20 |
| 18 |
| 17 |
| 16 |
| 15 |
| 14 |
| 13 |
| 12 |
| 11 |
+----+
15 rows in set (0.00 sec)

 

语句的执行顺序:from—>where—>select—>order by

  • 分页查询( beginIndex:表示从第多少条数据开始   pageSize:表示每页显示的数据条数 )
where [条件] limit beginIndex,pageSize;

mysql> select id from zt_team where id>0 limit 0,3;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+
3 rows in set (0.00 sec)
 

beginIndex公式:(当前页数-1)*pageSize

  • 聚集函数( 作用于一组数据,并对一组数据返回一个值 )

COUNT:统计结果记录数,若统计的是列,列中为Null,那么count将不会计算值

MAX:  统计计算最大值

MIN:  统计计算最小值

SUM:  统计计算求和

AVG:  统计计算平均值

分组函数( 注意:如果要对分组后的数据进行筛选,那么必须使用having关键字,条件写在having后 )

select 聚集函数 from 表名 where [条件] group by 列 having 分组后的条件
语句的执行顺序:FROM—> WHERE—>group by---->Having—>SELECT-->ORDER BY
 


Where和having的区别:
Where: 先过滤已有的数据(数据是已经存在的),在进行分组,在聚集计算
Having:先分组,在对每组进行计算,根据得到结果在过滤(分组把数据算出之后,在过滤)
注意:使用having的时候,它是可以使用别名的


  • 数据查询-多表

 

  • 交叉连接:又名笛卡尔积,使用交叉连接会产生笛卡尔积
  • 假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
select *  from 表1,表2

mysql> select * from zt_team,zt_todo;

+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+----+-----------+------------+-------+------+--------+-------+---------+-----+--------------+------+--------+---------+--------+------------+------------+---------------------+------------+---------------------+----------+---------------------+

| id | root | type    | account        | role         | limited | join       | days | hours | estimate | consumed | left | order | id | account   | date       | begin | end  | type   | cycle | idvalue | pri | name         | desc | status | private | config | assignedTo | assignedBy | assignedDate        | finishedBy | finishedDate        | closedBy | closedDate          |

+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+----+-----------+------------+-------+------+--------+-------+---------+-----+--------------+------+--------+---------+--------+------------+------------+---------------------+------------+---------------------+----------+---------------------+

|  1 |    1 | project | dev3           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  2 |    1 | project | productManager | 产品经理     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  3 |    1 | project | tester2        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  4 |    1 | project | tester1        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  5 |    2 | project | projectManager | 项目经理     | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  6 |    2 | project | tester2        | 测试         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  7 |    2 | project | tester1        | 测试         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  8 |    2 | project | dev3           | 研发         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  9 |    2 | project | dev2           | 研发         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 10 |    2 | project | dev1           | 研发         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 11 |    1 | project | dev1           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 12 |    1 | project | dev2           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 13 |    1 | project | projectManager | 项目经理     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 14 |    1 | project | testManager    | 测试主管     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 15 |    2 | project | productManager | 产品经理     | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 16 |    3 | project | admin          |              | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 17 |    3 | project | cuichengqun    | 研发         | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 18 |    3 | project | lijun          | 研发         | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 20 |    3 | project | wangheng       | 研发         | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 21 |    3 | project | xiehongxin     | 项目经理     | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 22 |    3 | project | wuxuewen       | 研发主管     | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 23 |    3 | project | liusiyuan      | 研发         | no      | 2019-05-13 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 24 |    3 | project | youshuo        | 产品经理     | no      | 2019-05-13 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 25 |    3 | project | liweifang      | 研发         | no      | 2019-05-20 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 26 |    3 | project | lizeqing       | 研发         | no      | 2019-05-21 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+----+-----------+------------+-------+------+--------+-------+---------+-----+--------------+------+--------+---------+--------+------------+------------+---------------------+------------+---------------------+----------+---------------------+

25 rows in set (0.00 sec)

 

  • 内连接:过滤为空的数据(查询的实际上是两张表数据的交集部分)    目的 ==》解决笛卡尔积现象,正确查询了需要的数据
select * from 表1,表2  where 表1.字段=表2.字段;  //隐式内连接,使用where条件消除笛卡尔积
select * from 表1 [inner] join 表2 on 表1.字段=表2.字段;  //显式内连接,如果是多张表,则一直在join..on后依次添加join..on即可,inner关键字可被省略
mysql> select * from zt_file,zt_burn where addedDate = date;     ## 隐式内连接
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|  1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
8 rows in set (0.03 sec)
mysql> select * from zt_file  inner join zt_burn  on  addedDate=date;      ##显示内连接
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|  1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
8 rows in set (0.00 sec)
 

 

  • 外连接:左外连接、右外连接、全外连接
左外连接:以左边表为主,返回左边表中所有数据,若右表中无数据,则显示为NULL,请参考实际查询结果来理解
select * from 表1 left [outer] join 表2 on 表1.字段=表2.字段;   //表1为左表,表2为右表,outer关键字可被省略


mysql> select * from zt_file left outer join zt_burn  on  addedDate=date;
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|  1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
8 rows in set (0.00 sec)
 

 

  • 右外连接:以右边表为主,返回右表中所有数据,若左表中无数据,则显示为NULL,结合实际查询结果来理解
select * from 表1 right [outer] join 表2 on 表1.字段=表2.字段;  //表1为左表,表2为右表,outer关键字可被省略

select * from zt_file right outer join zt_burn on zt_file.addedDate=zt_burn.date;  和 select * from zt_file right outer join zt_burn on addedDate=date;得到的结果一致,同理左连接也是。

mysql> select * from zt_file right outer join zt_burn on addedDate=date;
+------+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id   | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+------+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|    1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       1 |    0 | 2012-06-05 |        0 |    0 |       38 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-06 |       86 |   78 |        6 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-07 |      544 |  528 |       11 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-08 |      544 |  516 |       19 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-09 |      544 |  504 |       26 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-10 |      544 |  504 |       26 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-11 |      544 |  504 |       26 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-14 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-16 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-17 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-18 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-19 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-20 |      547 |  469 |       74 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-21 |      547 |  491 |      104 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-22 |      547 |  491 |      149 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-23 |      547 |  463 |      177 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-24 |      547 |  463 |      215 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-25 |      547 |  463 |      215 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-26 |      547 |  463 |      215 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-27 |      547 |  431 |      243 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-28 |      549 |  451 |      296 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-29 |      549 |  393 |      312 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-30 |      549 |  401 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-31 |      549 |  397 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-06-03 |      549 |  397 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-06-04 |      549 |  397 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-06-05 |      549 |  397 |      330 |
+------+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
35 rows in set (0.00 sec)
 

 

  • 全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,使用多表查询的语法,来查询一张表,查询过程中一定要使用别名
  • 多用在分类数据、省市县分类数据、权限…
select 表1.字段1,表2.字段2 from 表名 as 表1,表名 as 表2 where 表1.字段1=表2.字段2

全外连接

select   表1.字段1,表2.字段2   from   表名,表名    where   表1.字段1=表2.字段2

mysql> select it_Development.*,it_Operate.* from it_Development,it_Operate where it_Development.年龄=it_Operate.年龄;
+-----------+--------+----------+-----------+--------+-----------+--------+----------+--------+--------+
| 姓名      | 年龄   | 员工id   | 学历      | 薪资   | 姓名      | 年龄   | 员工id   | 学历   | 薪资   |
+-----------+--------+----------+-----------+--------+-----------+--------+----------+--------+--------+
| 小小春    |     22 |      123 | 研究生    |  10000 | 小小东    |     22 |      131 | 本科   |   9000 |
| 小小夏    |     23 |      123 | 研究生    |  11000 | 小小西    |     23 |      132 | 本科   |  10000 |
+-----------+--------+----------+-----------+--------+-----------+--------+----------+--------+--------+
2 rows in set (0.00 sec)
 

 


 

  • 子查询:将一个查询结果作为另一个查询的对象,直白的讲就是SQL语句嵌套

 

什么是子查询?子查询就是嵌套在主查询中的查询。

子查询可以嵌套在主查询中所有位置,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。

select * from (select * from 表名) as 别名
select * from where 条件->条件中包含查询语句

注意:1.查询结果的虚拟表必须取别名
           2.字段与关键字一样,冲突时,需要给字段名加``,(Esc键下面、1的左边)
           3.如果给虚拟结果表中的字段取了别名,则对虚拟结果表查询时,应该用 表别名.虚拟表字段别名


 

 

  • 创建新的数据库和表(及怎么解决mysql数据库不支持中文)

mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test
Database changed
mysql> show tables;
Empty set (0.00 sec)

  • 在数据库test中创建表it_Development和it_Operate


create table it_Development(姓名 char(10)not null,年龄 int(3)not null,员工id int(6)not null,学历 char(5)not null,薪资 int(8)not null);
create table it_Operate(姓名 char(10)not null,年龄 int(3)not null,员工id int(6)not null,学历 char(5)not null,薪资 int(8)not null);

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| it_Development |
| it_Operate     |
+----------------+
2 rows in set (0.00 sec)

  • 查看表it_Development的结构

mysql> desc it_Development;
+----------+----------+------+-----+---------+-------+
| Field    | Type     | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| 姓名     | char(10) | NO   |     | NULL    |       |
| 年龄     | int(3)   | NO   |     | NULL    |       |
| 员工id   | int(6)   | NO   |     | NULL    |       |
| 学历     | char(5)  | NO   |     | NULL    |       |
| 薪资     | int(8)   | NO   |     | NULL    |       |
+----------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)

  • 查看表it_Operate的结构

mysql> desc it_Operate;
+----------+----------+------+-----+---------+-------+
| Field    | Type     | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| 姓名     | char(10) | NO   |     | NULL    |       |
| 年龄     | int(3)   | NO   |     | NULL    |       |
| 员工id   | int(6)   | NO   |     | NULL    |       |
| 学历     | char(5)  | NO   |     | NULL    |       |
| 薪资     | int(8)   | NO   |     | NULL    |       |
+----------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)

 

  • 查看mysql数据库的编码是什么语言

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

  • 一次性修改使数据库支持中文,重启数据库后失效!
set character_set_database = utf8;
set character_set_server = utf8;
set character_set_client = utf8;
set character_set_server = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set collation_connection = utf8_general_ci;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;

 

mysql> show create table it_Development;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                           |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Development | CREATE TABLE `it_Development` (
  `姓名` char(10) NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1           |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

 

  • 修改it_Development表的编码为utf8,默认为拉丁语(latinl)


mysql> alter table it_Development default character set utf8;  
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    287
Current database: test

Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

 

mysql> show create table it_Development;
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                                                                   |
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Development | CREATE TABLE `it_Development` (
  `姓名` char(10) CHARACTER SET latin1 NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) CHARACTER SET latin1 NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8           |
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 修改列的编码为utf8,注意 tdb_goods_cates 的编码仍然为 latinl,虽然此时表的编码已经是 utf8,姓名和学历的编码依然为latinl,需要把这俩个也修改为utf8
alter table it_Development change 学历 学历 char(5) character set utf8;
alter table it_Development change 姓名 姓名 char(10) character set utf8;

mysql> show create table it_Development;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                                 |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Development | CREATE TABLE `it_Development` (
  `姓名` char(10) DEFAULT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) DEFAULT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8           |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 在表it_Development中插入数据

insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小春',22,000123,'研究生',10000);
insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小夏',23,000123,'研究生',11000);
insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小秋',24,000123,'研究生',12000);
insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小冬',25,000123,'研究生',13000);

  • 查看数据库test中的表it_Development的数据

mysql> select * from it_Development;
+-----------+--------+----------+-----------+--------+
| 姓名      | 年龄   | 员工id   | 学历      | 薪资   |
+-----------+--------+----------+-----------+--------+
| 小小春    |     22 |      123 | 研究生    |  10000 |
| 小小夏    |     23 |      123 | 研究生    |  11000 |
| 小小秋    |     24 |      123 | 研究生    |  12000 |
| 小小冬    |     25 |      123 | 研究生    |  13000 |
+-----------+--------+----------+-----------+--------+
4 rows in set (0.00 sec)

  • 查看it_Operate表的编码语言,修改拉丁语为utf8

mysql> show create table it_Operate;
+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                                                                       |
+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Operate | CREATE TABLE `it_Operate` (
  `姓名` char(10) NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1           |
+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 修改表的编码语言为utf8

mysql> alter table it_Operate default  character set utf8;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

  • 把表的编码拉丁语修改为utf8后,发现列姓名和列学历的编码变为拉丁语

mysql> show create table it_Operate;
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                                                                                                               |
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Operate | CREATE TABLE `it_Operate` (
  `姓名` char(10) CHARACTER SET latin1 NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) CHARACTER SET latin1 NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8           |
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 修改列的编码语言为utf8

mysql> alter table it_Operate change 姓名 姓名 char(10) character set utf8;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table it_Operate change 学历 学历 char(5) character set utf8;
Query OK, 0 rows affected (0.05 sec)

  • 插入数据到it_Operate表里

insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小东',22,000131,'本科',9000);
insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小西',23,000132,'本科',10000);
insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小南',20,000133,'本科',8500);
insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小北',21,000134,'本科',8000);

  • 查看表it_Operate的数据

mysql> select * from it_Operate;
+-----------+--------+----------+--------+--------+
| 姓名      | 年龄   | 员工id   | 学历   | 薪资   |
+-----------+--------+----------+--------+--------+
| 小小东    |     22 |      131 | 本科   |   9000 |
| 小小西    |     23 |      132 | 本科   |  10000 |
| 小小南    |     20 |      133 | 本科   |   8500 |
| 小小北    |     21 |      134 | 本科   |   8000 |
+-----------+--------+----------+--------+--------+
4 rows in set (0.00 sec)

 

 


  • DML语句操作

数据操纵语言,用于对表中的数据进行增删改

  •  insert 插入新数据

注意: 1.如果插入的表中的主键是自增类型的,可以不用插入值
            2.如果主键是非自增 ,插入的数据则是填补主键字段值空余的值
            3.如果主键设置了自动递增,会从主键字段最大值开始插入数据

格式:insert into 表名(字段1,字段2,.......)values('字段1的值',‘字段2的值’......);

其他插入方式:

insert into 表名(字段1,字段2) values(值1,值2),(值1,值2);     //插入多条数据【MYSQL】
insert into 表名 values(值1,值2);                    //针对全表所有字段进行插入操作
insert into 表名(字段) select 字段 from 表2;         //查询结果插入
insert into 表名 select 字段 from 表2;               //查询结果,全表插入
 

mysql> create database auth;

Query OK, 1 row affected (0.00 sec)

mysql> use auth;

Database changed

mysql> create table users (user_name char(20) not null, user_passwd char(30) default '', primary key (user_name));

Query OK, 0 rows affected (0.01 sec)

mysql> desc users;

+-------------+----------+------+-----+---------+-------+

| Field       | Type     | Null | Key | Default | Extra |

+-------------+----------+------+-----+---------+-------+

| user_name   | char(20) | NO   | PRI | NULL    |       |

| user_passwd | char(30) | YES  |     |         |       |

+-------------+----------+------+-----+---------+-------+

2 rows in set (0.00 sec)

mysql> insert into users(user_name,user_passwd)values('zhangsan',password('123123'));【在users表的(字段user_name,字段user_passwd)中添加(‘zjangsan’,条用函数password(‘123123’));】

Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> insert into users values('lisi',password('123123'));【字段内容可省略】【表名users返回值李四】

Query OK, 1 row affected, 1 warning (0.00 sec)【询问ok,1行收到影响,1警告,0.00秒】

mysql> select*from users;【挑选来自users表的】

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| lisi      | *E56A114692FE0DE073F9A1DD68A00 |

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

2 rows in set (0.00 sec)

  •  update更改原有数据

格式:upfate 表名 set 字段名 1=值1[,字段2=值2]where  条件表达式;      ##带条件修改指定数据,否则修改全表

mysql> update auth.users set user_passwd=password('')where user_name='lisi';【更改zuth库的users表指定密码为密码 定位用户为李四】

Query OK, 1 row affected (0.29 sec)

Rows matched: 1  Changed: 1  Warnings: 0【匹配行1被改变1行被警告】

【where定位对谁做修改】

mysql> update mysql.user set password=password('123123')where user='root';【修改mysql登录root定位用户密码为123123

Query OK, 0 rows affected (0.04 sec)

Rows matched: 4  Changed: 0  Warnings: 0【匹配行4 被改变0 被警告0】

mysql> flush privileges;【刷新权限】

Query OK, 0 rows affected (0.30 sec)【询问ok 0行警告】

  • delete 删除不需要的数据

格式:delete from 表名 where 条件表达式;      ##删除数据带条件指定数据,否则删除全表数据

mysql> delete from auth.users where user_name='lisi';【在auth库中的users表中,删除用户名为lisi的记录】

Query OK, 1 row affected (0.03 sec)

mysql> select * from auth.users;

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

1 row in set (0.00 sec)

mysql> delete from mysql.user where user='';【在mysql库中的user表中,删除空的用户名的记录】

Query OK, 2 rows affected (0.00 sec)

  • DDL语句操作

数据查询语言,用于数据查询

  • select 查询语句

格式: select 字段名1,字段名2,......from 表名;

       selete字段名1,字段名2,........from 表名 where 条件表达式

mysql> select user_name from auth.users;

+-----------+

| user_name |

+-----------+

| zhangsan  |

+-----------+

1 row in set (0.00 sec)

mysql> select * from auth.users where user_name='zhangsan';

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

1 row in set (0.00 sec)


  • 数据备份

在命令行窗口进行,若操作系统版本高,则使用管理员模式

导出:

mysqldump -u账户 -p密码 数据库名称>脚本文件存储地
ex:         mysqldump -uroot -proot jdbcdemo> C:/shop_bak.sql
导入:

mysql -u账户 -p密码 数据库名称< 脚本文件存储地址
ex:         mysql -uroot -proot jdbcdemo< C:/shop_bak.sql
使用可视化导入导出:
Navicat工具的导入和导出/Navicat工具的备份和还原

 

  • 数据索引

索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

什么列适合建索引??
1.表的主键、外键必须有索引;
2.数据量超过30000的表应该有索引;
3.经常与其他表进行连接的表,在连接字段上应该建立索引;
4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5.索引应该建在选择性高的字段上;
6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 

sql语句创建和删除索引
创建索引: 

CREATE INDEX 索引名称 ON 表名 (列名)


删除索引:

方式一:

DROP INDEX 索引名 ON 表名 

方式二:  

ALTER TABLE 表名 DROP INDEX 索引名
 


  •  建立公司IT运营部工资数据表 

      需求描述:为公司建立员工工资数据库imployee_salary,在imployee_salary数据库中,建立IT_salary数据表,以保存IT 运营部员工的工资信息,如下表所示:

  •  建立数据库 imployee_salary

mysql> show databases

    -> ;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| libai              |

| mysql              |

| performance_schema |

| test               |

+--------------------+

6 rows in set (0.00 sec)

mysql> create database imployee_salary;

Query OK, 1 row affected (0.00 sec)

mysql> use imployee_salary;

Database changed

  •   建立数据库表IT_salary

mysql> create table IT_salary(岗位类别 char(20)not null,姓名 char(15)not null,年龄 int, 员工ID int not null, 学历 char(6), 年限 int, 薪资 int not null,primary key (员工ID));

Query OK, 0 rows affected (0.02 sec)

【int数字类型、char字符串类型、not null不能为空、char()指定最多字节个数、primary key()指定索引字段】

mysql> desc IT_salary;

+--------------+----------+------+-----+---------+-------+

| Field        | Type     | Null | Key | Default | Extra |

+--------------+----------+------+-----+---------+-------+

| 岗位类别     | char(20) | NO   |     | NULL    |       |

| 姓名         | char(15) | NO   |     | NULL    |       |

| 年龄         | int(11)  | YES  |     | NULL    |       |

| 员工ID       | int(11)  | NO   | PRI | NULL    |       |

| 学历         | char(6)  | YES  |     | NULL    |       |

| 年限         | int(11)  | YES  |     | NULL    |       |

| 薪资         | int(11)  | NO   |     | NULL    |       |

+--------------+----------+------+-----+---------+-------+

7 rows in set (0.01 sec)

  •  IT运营部的员工工资信息插入到IT_salary

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('网络工程师','孙悟空',27,011,'本科',3,4800);

Query OK, 1 row affected (0.01 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('windows工程师','貂蝉',19,012,'中专',2,3500);

3,'本科',8,15000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('java工程师','赵云',38,014,'本科',10,17000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('硬件驱动工程师','诸葛亮',29,015,'本科',9,16500);

Query OK, 1 row affected (0.41 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('linux工程师','卢布',32,013,'本科',8,15000);

Query OK, 1 row affected (0.02 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('java工程师','赵云',38,014,' 本科',10,17000);

Query OK, 1 row affected (0.00 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('硬件驱动工程师','诸葛亮',29,015,'本科',9,16500);

Query OK, 1 row affected (0.01 sec)

  • 在记事本中编辑号如下内容,复制粘贴进数据库

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('windows工程师','貂蝉',19,012,'中专',2,3500);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('linux工程师','卢布',32,013,'本科',8,15000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('java工程师','赵云',38,014,'本科',10,17000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('硬件驱动工程师','诸葛亮',29,015,'本科',9,16500);

  • 查看核对信息

mysql> select * from IT_salary;                                                                          

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

  • 用户权限设置grand
  •  设置用户权限(用户不存在的,则新建用户)

mysql> grant all on*.* to 'root'@'192.168.1.139'IDENTIFIED BY'123456';

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT select ON imployee_salary.* TO 'amber'@'localhost'IDENTIFIED BY'123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

[root@mysql ~]# mysql -uamber -p123456

mysql> select * from imployee_salary.IT_salary;

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

mysql> quit

Bye

[root@mysql ~]# mysql -uroot -p123123

mysql> grant all on*.* to 'root'@'192.168.1.138'IDENTIFIED BY'123456';【允许用户root123456作为密码,从ip192.168.1.138的主机连接到mysql服务器】【此root只是个名字,和超级管理员root不是一个root

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT select ON imployee_salary.* TO 'yun'@'192.168.1.138'IDENTIFIED BY'123456';【允许用户yun123456作为密码从ip192.168.1.138的主机连接到mysql服务器的imployee­_salary数据库】【用户不存在的则自动新建用户】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[root@mysql ~]# mysql -uyun -p123456

mysql> select * from imployee_salary.IT_salary;

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

mysql> quit

Bye

  • 查看用户权限

[root@mysql ~]# mysql -uyun -p123456

mysql> show grants;

+------------------------------------------------------------------------------------------------------------+

| Grants for yun@localhost                                                                                   |

+------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'yun'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |

| GRANT SELECT ON `imployee_salary`.* TO 'yun'@'localhost'                                                   |

+------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

mysql> show grants for 'yun'@'localhost';

+------------------------------------------------------------------------------------------------------------+

| Grants for yun@localhost                                                                                   |

+------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'yun'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |

| GRANT SELECT ON `imployee_salary`.* TO 'yun'@'localhost'                                                   |

+------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

  • 撤销用户权限

若宿主机连接报错,查看权限设置是否正确,可尝试如下命令:

【admin超级管理员的意思,administrator的缩写】

  • mysql的其他常用命令
  • 查看mysql的登录用户

方法一

mysql> select * from mysql.user;

localhost     | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

mysql         | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

127.0.0.1     | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

::1           | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

192.168.1.139 | root  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

localhost     | amber | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

192.168.1.138 | root  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

localhost     | yun   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

方法二

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| yun   | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

mysql> select * from auth.users; 【查询auth库里的所有用户】

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

1 row in set (0.00 sec)

  • 修改mysql用户名
语法:rename user '用户名'@'主机名' to  '用户名'@'主机名';

【如果不指定用户的主机(用户名@主机),则默认为所有,即:%(用户名@%)】

mysql> select user,host from mysql.user;【修改前查看mysql用户名和主机】

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| yun   | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

mysql> rename user'yun'@'localhost' to 'cun'@'localhost';【修改用户yun为用户cun

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;【修改后,查看mysql用户名和主机】

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| cun   | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.01 s

mysql> rename user'cun'@'localhost' to 'yun'@'%';【用户cun主机为localhost的改为用户yun,主机为所有主机】

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| yun   | %             |

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

  • 删除用户名

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| yun   | %             |

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

mysql> delete from mysql.user where user='yun';【删除用户yun

Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

7 rows in set (0.00 sec)

mysql> select user,host from mysql.user;【删除前】

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

7 rows in set (0.00 sec)

mysql> delete from mysql.user where user='root';【删除用户root,默认会把所有root用户都删除】

Query OK, 6 rows affected (0.00 sec)

mysql> select user,host from mysql.user;【删除后】

+-------+-----------+

| user  | host      |

+-------+-----------+

| amber | localhost |

+-------+-----------+

1 row in set (0.01 sec)

mysql> delete from mysql.user where user='amber';【删除最后的amber用户】

Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user;【查看mysql的用户。显示为空】

Empty set (0.00 sec)

mysql> flush privileges;【更新权限】

Query OK, 0 rows affected (0.00 sec

mysql> quit

Bye

【删除所有用户后用原来的所有用户密码登录失败,意味着数据库报废】
【用其他用户yun登录后,不能查看mysql的用户】

[root@mysql ~]# mysql -uyun -p123456

mysql> select user,host from mysql.user;

ERROR 1142 (42000): SELECT command denied to user 'yun'@'localhost' for table 'user'

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| imployee_salary    |

| test               |

+--------------------+

3 rows in set (0.00 sec)

  • 数据库知识补充
  1.    在数据库创建数据表的时候,字段后必须指定char(30),否则会报错
  2.     Mysql数据库查看帮助命令help create
  3.    索引项最多不会超过255字符
  4.    Default ‘’ 俩个单引号中间为空,是没有设置密码
  5.    Primary key 代表创建索引,(指定键下不能为空,不能重名)
  6.    Insert into users()括号中也可为空
  7.    Password (‘12313’)括号代表加密 password后是函数变量
  8.    数据库会损坏是因为索引功能
  9.    Mysql -uroot -p123123 -e ‘source  ./test.sql’【把脚本(表)写入数据库,此处也可用“”】
  10.    %代表所有的主机都可以登录
  11.    *.*代表  所有数据库.所有表
  12.    Grep “user” 绝对路径  可以搜索该字符
  13.    Char是字符集的缩写,set 重置 utf8万国语言
  14.    Show databases 加“s”代表复数 所有的数据库
  15.     Show  tables 看数据表
  16. Describe mysql.user;查看mysql的user表
  17.     [mysql]对登录的mysql起作用
  18.     Where 定位对谁作修改
  19.     命令  \G 分行显示【一直未成功】
  20.     On后根范围
  • 在数据库外修改数据库里的数据

[root@mysql ~]# mysql -uroot -p123123 -e 'show databases;'

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| mysql              |

| performance_schema |

| test               |

+--------------------+

[root@mysql ~]# mysql -uroot -p123123 -e "show databases;"

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| mysql              |

| performance_schema |

| test               |

+--------------------+

[root@mysql ~]# mysql -uroot -p123123 -e "create database libai;show databases;"【libai创建成功】

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| libai              |

| mysql              |

| performance_schema |

| test               |

+--------------------+

&&修改数据库密码与修改虚拟机的root密码是一致的

  • 删除数据库的所有用户后出现的问题

   yum失效,镜像不再挂载 mount /dev/sr0 /var/ftp/centos7/执行此命令挂载即可解决

 数据库报废

【执行此命令后发现已经关闭】

[root@mysql ~]# /etc/init.d/mysqld stop

 ERROR! MySQL server PID file could not be found!

【再次查看进程发现还有mysql进程运行】

[root@mysql ~]# netstat -anpt|grep mysql

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2131/mysqld

[root@mysql ~]# killall mysqld   【执行此命令杀死所有mysql进程】

[root@mysql ~]# mysqld_safe --skip-grant-tables &【进入安全模式】

[1] 11921

[root@mysql ~]# 190510 02:24:27 mysqld_safe Logging to '/usr/local/mysql/data/mysql.err'.

190510 02:24:27 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@mysql ~]# mysql

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> insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';【创建一个root用户】

Query OK, 1 row affected (0.00 sec)

mysql> update user set Host='localhost',select_priv='y',

    -> insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',

    -> drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',

    -> create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',

    -> repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',

    ->

Event_priv='y',Trigger_priv='y',Create_tablespace_priv='y',

 

    -> create_user_priv='y' where user='root';

Query OK, 1 row affected (0.01 sec)【设置root用户的权限,所有权限为'y',即拥有最高权限】

Rows matched: 1  Changed: 1  Warnings: 0

 

[root@mysql ~]# /etc/init.d/mysqld restart

Shutting down MySQL.190510 03:27:05 mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended

 SUCCESS!

Starting MySQL.. SUCCESS!

[1]+  完成                  mysqld_safe --skip-grant-tables

mysql> use mysql【使用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> update user set password=password('123123')where user='root';【修改root密码为123123

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;【刷新用户权限】【这里也可以重启mysql

Query OK, 0 rows affected (0.00 sec)

 

mysql> select * from user\G【查看所有用户的所有权限】

*************************** 1. row ***************************

                  Host: localhost

                  User: root

              Password: *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

           Select_priv: Y

           Insert_priv: Y

[root@mysql ~]# mysql -uroot -p123123

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> grant all on *.* to 'root'@'192.168.1.139' identified by '123456';【允许root用户用密码123456192.168.1.139登录,此处的密码和用户都是随便的,默认没有的用户会自动创建,此处ip为测试端ip 也可以是本机ip,此处为了方便理解用其他主机ip,并且这个测试机也必须有mysql数据库】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;【更新权限】

Query OK, 0 rows affected (0.01 sec)

mysql> grant select on imployee_salary.* to 'amber'@'localhost' identified by '12345';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

【在192.168.1.139主机测试】

[root@client ~]# mysql -uroot -p123456 -h 192.168.1.138【登录192.168.1.138主机的mysql数据库】

mysql> quit

Bye

【在本机测试】

[root@mysql ~]# mysql -uamber  -p12345【登录成功】

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| imployee_salary    |

| test               |

+--------------------+

3 rows in set (0.00 sec)

mysql> use mysql;【因为只授权登录imployee_salary 所以登录其他数据库都会报错

ERROR 1044 (42000): Access denied for user 'amber'@'localhost' to database 'mysql'

mysql> use imployee_salary【登录成功】

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 IT_salary;【查看表IT_salary

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

mysql> delete from imployee_salary.IT_salary where 姓名='吕布';【删除表中吕布失败,此账户只有读权限】

ERROR 1142 (42000): DELETE command denied to user 'amber'@'localhost' for table 'IT_salary'

 

  • 查看用户权限【只能查看已经拥有的用户】只能在root用户登录的mysql查看

mysql> show grants for 'root'@'192.168.1.139'\G【】

*************************** 1. row ***************************

Grants for root@192.168.1.139: GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.139' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

1 row in set (0.00 sec)

mysql> show grants for 'amber'@'localhost'\G

*************************** 1. row ***************************

Grants for amber@localhost: GRANT USAGE ON *.* TO 'amber'@'localhost' IDENTIFIED BY PASSWORD '*00A51F3F48415C7D4E8908980D443C29C69B60C9'

*************************** 2. row ***************************

Grants for amber@localhost: GRANT SELECT ON `imployee_salary`.* TO 'amber'@'localhost'

2 rows in set (0.00 sec)

mysql> show grants\G

*************************** 1. row ***************************

Grants for root@localhost: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' WITH GRANT OPTION

*************************** 2. row ***************************

Grants for root@localhost: GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

2 rows in set (0.00 sec)

  • 撤销用户权限

mysql> revoke select on imployee_salary.* from 'amber'@'localhost';【撤销用户amber登录权限】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;【更新权限】

Query OK, 0 rows affected (0.00 sec)

【mysql通配符:  _: 任意但个字符, &:  任意长度的任意字符】

mysql> grant all on *.* to 'amber'@'%' identified by '1234';【允许用户amber用密码1234从任意主机登录mysql数据库】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| amber | %             |

| root  | 192.168.1.139 |

| amber | localhost     |

| root  | localhost     |

| xiao  | localhost     |

+-------+---------------+

5 rows in set (0.00 sec)

【在客户机192.168.1.139测试,】

[root@localhost ~]# mysql -uamber -p12345 -h localhost【登录成功】

ERROR 1045 (28000): Access denied for user 'amber'@'localhost' (using password: YES)

[root@localhost ~]# mysql -uamber -p1234 -h 192.168.1.138

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 5.5.22-log Source distribution

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

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

MySQL [(none)]> quit

Bye

【测试:在win系统安装navicat软件用用户amber密码1234登录】

 

  • 【若宿主机连接报错,查看权限设置是否正确,可尝试如下命令】

mysql> grant all privileges on *.* to 'amber'@'%' identified by '1234' WITH GRANT OPTION;

mysql> flush privileges;

  • 修复root  密码 后的mysql数据库后的数据库

[root@mysql ~]# mysql -uroot -p123123

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.5.22-log Source distribution

Copyright (c) 2000, 2011, 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> 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> select user,host from mysql.user;【查看mysql的数据库表,修复之后的数据库只有一个root用户】

+------+-----------+

| user | host      |

+------+-----------+

| root | localhost |

+------+-----------+

1 row in set (0.00 sec)

mysql> grant all on *.* to 'root'@'192.168.1.138' IDENTIFIED BY '123456';【之所以会报错,是因为root为超级管理员,禁止其他用户访问,需要创建其他root用户】

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

mysql> CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '123456';【创建普通用户root密码123456

Query OK, 0 rows affected (0.00 sec)

mysql> create user 'xiao'@'localhost' identified by '123456';【创建普通用户xiao 密码123456

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;【再次查看mysql的用户多了俩】

+------+-----------+

| user | host      |

+------+-----------+

| root | 127.0.0.1 |

| root | localhost |

| xiao | localhost |

+------+-----------+

3 rows in set (0.00 sec)

mysql> grant replication slave on *.*  to root@'127.0.0.1';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.*  to 'root'@'192.168.1.139' identified by '123456';【赋予root用户用密码123456.139ip登录mysql

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;【查看数据库中的数据表信息】

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| event                     |

| func                      |

| general_log               |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| host                      |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| proxies_priv              |

| servers                   |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

24 rows in set (0.00 sec)

mysql> describe mysql.user\G 【显示数据库中数据表的结构】

*************************** 1. row ***************************

  Field: Host

   Type: char(60)

   Null: NO

    Key: PRI

Default:

  Extra:

*************************** 2. row ***************************

  Field: User

   Type: char(16)

   Null: NO

    Key: PRI

Default:

  Extra:

mysql> describe user\g

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |         |       |

| User                   | char(16)                          | NO   | PRI |         |       |

| Password               | char(41)                          | NO   |     |         |       |

| Select_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Insert_priv            | enum('N','Y')                     | NO   |     | N       |       |

mysql> use auth

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> desc users;

+-------------+----------+------+-----+---------+-------+

| Field       | Type     | Null | Key | Default | Extra |

+-------------+----------+------+-----+---------+-------+

| user_name   | char(20) | NO   | PRI | NULL    |       |

| user_passwd | char(30) | YES  |     |         |       |

+-------------+----------+------+-----+---------+-------+

2 rows in set (0.00 sec)

mysql> insert into users(user_name,user_passwd) values('zhang',password('123456'));【在users表的(字段user_name,字段user_passwd)中添加('zhang',调用函数password'123456'))】

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into users values('li',password('123456'));【创建li 密码123456

Query OK, 1 row affected, 1 warning (0.49 sec)

mysql> select * from users;【查看所有用户密码】

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| li        | *6BB4837EB74329105EE4568DDA7DC |

| zhang     | *6BB4837EB74329105EE4568DDA7DC |

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

3 rows in set (0.00 sec)

mysql> insert into users values('root',password('123456'));

Query OK, 1 row affected, 1 warning (0.38 sec)

mysql> select * from users;

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| li        | *6BB4837EB74329105EE4568DDA7DC |

| root      | *6BB4837EB74329105EE4568DDA7DC |

| zhang     | *6BB4837EB74329105EE4568DDA7DC |

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

4 rows in set (0.00 sec)

  • 用户权限设置

[root@mysql ~]# mysql -uroot -p123456

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  • centos7.5 没有killall命令

安装以下包

[root@mysql ~]# yum install psmisc

psmisc包包含三个帮助管理/proc目录的程序。安装fuser   killall   pstreepstree.x11(到pstree的链接)  

  • 显示数据库的表

mysql> desc user;

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |         |       |

| User                   | char(16)                          | NO   | PRI |         |       |

| Password               | char(41)                          | NO   |     |         |       |

| 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       |       |

| Reload_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Shutdown_priv          | enum('N','Y')                     | NO   |     | N       |       |

| Process_priv           | enum('N','Y')                     | NO   |     | N       |       |

| File_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       |       |

| Show_db_priv           | enum('N','Y')                     | NO   |     | N       |       |

| Super_priv             | enum('N','Y')                     | NO   |     | N       |       |

| Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N       |       |

| Lock_tables_priv       | enum('N','Y')                     | NO   |     | N       |       |

| Execute_priv           | enum('N','Y')                     | NO   |     | N       |       |

| Repl_slave_priv        | enum('N','Y')                     | NO   |     | N       |       |

| Repl_client_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       |       |

| Create_user_priv       | enum('N','Y')                     | NO   |     | N       |       |

| Event_priv             | enum('N','Y')                     | NO   |     | N       |       |

| Trigger_priv           | enum('N','Y')                     | NO   |     | N       |       |

| Create_tablespace_priv | enum('N','Y')                     | NO   |     | N       |       |

| ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |

| ssl_cipher             | blob                              | NO   |     | NULL    |       |

| x509_issuer            | blob                              | NO   |     | NULL    |       |

| x509_subject           | blob                              | NO   |     | NULL    |       |

| max_questions          | int(11) unsigned                  | NO   |     | 0       |       |

| max_updates            | int(11) unsigned                  | NO   |     | 0       |       |

| max_connections        | int(11) unsigned                  | NO   |     | 0       |       |

| max_user_connections   | int(11) unsigned                  | NO   |     | 0       |       |

| plugin                 | char(64)                          | YES  |     |         |       |

| authentication_string  | text                              | YES  |     | NULL    |       |

+------------------------+-----------------------------------+------+-----+---------+-------+

42 rows in set (0.00 sec)

  • root用户给权限失败的root的数据(修复后的数据库的数据)

*************************** 2. row ***************************

                  Host: localhost

                  User: root

              Password: *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

           Select_priv: Y

           Insert_priv: Y

           Update_priv: Y

           Delete_priv: Y

           Create_priv: Y

             Drop_priv: Y

           Reload_priv: Y

         Shutdown_priv: Y

          Process_priv: Y

             File_priv: Y

            Grant_priv: Y

       References_priv: Y

            Index_priv: Y

            Alter_priv: Y

          Show_db_priv: Y

            Super_priv: Y

 Create_tmp_table_priv: Y

      Lock_tables_priv: Y

          Execute_priv: Y

       Repl_slave_priv: Y

      Repl_client_priv: Y

      Create_view_priv: Y

        Show_view_priv: Y

   Create_routine_priv: Y

    Alter_routine_priv: Y

      Create_user_priv: Y

            Event_priv: N

          Trigger_priv: N

Create_tablespace_priv: N

              ssl_type:

            ssl_cipher:

           x509_issuer:

          x509_subject:

         max_questions: 0

           max_updates: 0

       max_connections: 0

  max_user_connections: 0

                plugin:

 authentication_string: NULL

  •  给权限的root  192.168.1.139的数据(修复后的数据库的数据)

*************************** 1. row ***************************

                  Host: 192.168.1.139

                  User: root

              Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

           Select_priv: N

           Insert_priv: N

           Update_priv: N

           Delete_priv: N

           Create_priv: N

             Drop_priv: N

           Reload_priv: N

         Shutdown_priv: N

          Process_priv: N

             File_priv: N

            Grant_priv: N

       References_priv: N

            Index_priv: N

            Alter_priv: N

          Show_db_priv: N

            Super_priv: N

 Create_tmp_table_priv: N

      Lock_tables_priv: N

          Execute_priv: N

       Repl_slave_priv: Y

      Repl_client_priv: N

      Create_view_priv: N

        Show_view_priv: N

   Create_routine_priv: N

    Alter_routine_priv: N

      Create_user_priv: N

            Event_priv: N

          Trigger_priv: N

Create_tablespace_priv: N

              ssl_type:

            ssl_cipher:

           x509_issuer:

          x509_subject:

         max_questions: 0

           max_updates: 0

       max_connections: 0

  max_user_connections: 0

                plugin:

 authentication_string: NULL

  • 创建的用户的数据(修复后的数据库的数据)

*************************** 3. row ***************************

                  Host: 127.0.0.1

                  User: root

              Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

           Select_priv: N

           Insert_priv: N

           Update_priv: N

           Delete_priv: N

           Create_priv: N

             Drop_priv: N

           Reload_priv: N

         Shutdown_priv: N

          Process_priv: N

             File_priv: N

            Grant_priv: N

       References_priv: N

            Index_priv: N

            Alter_priv: N

          Show_db_priv: N

            Super_priv: N

 Create_tmp_table_priv: N

      Lock_tables_priv: N

          Execute_priv: N

       Repl_slave_priv: Y

      Repl_client_priv: N

      Create_view_priv: N

        Show_view_priv: N

   Create_routine_priv: N

    Alter_routine_priv: N

      Create_user_priv: N

            Event_priv: N

          Trigger_priv: N

Create_tablespace_priv: N

              ssl_type:

            ssl_cipher:

           x509_issuer:

          x509_subject:

         max_questions: 0

           max_updates: 0

       max_connections: 0

  max_user_connections: 0

                plugin:

 authentication_string: NULL

*************************** 4. row ***************************

                  Host: localhost

                  User: xiao

              Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

           Select_priv: N

           Insert_priv: N

           Update_priv: N

           Delete_priv: N

           Create_priv: N

             Drop_priv: N

           Reload_priv: N

         Shutdown_priv: N

          Process_priv: N

             File_priv: N

            Grant_priv: N

       References_priv: N

            Index_priv: N

            Alter_priv: N

          Show_db_priv: N

            Super_priv: N

 Create_tmp_table_priv: N

      Lock_tables_priv: N

          Execute_priv: N

       Repl_slave_priv: N

      Repl_client_priv: N

      Create_view_priv: N

        Show_view_priv: N

   Create_routine_priv: N

    Alter_routine_priv: N

      Create_user_priv: N

            Event_priv: N

          Trigger_priv: N

Create_tablespace_priv: N

              ssl_type:

            ssl_cipher:

           x509_issuer:

          x509_subject:

         max_questions: 0

           max_updates: 0

       max_connections: 0

  max_user_connections: 0

                plugin:

 authentication_string: NULL

  • 正常mysql的数据库的数据(在下一个实验)
  • mysql 的其他常用命令

【用于显示广泛的服务器状态信息】

mysql> show status;

+------------------------------------------+-------------+

| Variable_name                            | Value       |

+------------------------------------------+-------------+

| Aborted_clients                          | 0           |

| Aborted_connects                         | 5           |

....................................................

【显示创建特定数据库或表】

mysql> help create database;

Name: 'CREATE DATABASE'

Description:

Syntax:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

    [create_specification] ...

create_specification:

    [DEFAULT] CHARACTER SET [=] charset_name

  | [DEFAULT] COLLATE [=] collation_name

CREATE DATABASE creates a database with the given name. To use this

statement, you need the CREATE privilege for the database. CREATE

SCHEMA is a synonym for CREATE DATABASE.

URL: http://dev.mysql.com/doc/refman/5.5/en/create-database.html

mysql> help create tables;

Nothing found

Please try to run 'help contents' for a list of all accessible topics

【显示授权用户的安全权限】

mysql> show grants\G

*************************** 1. row ***************************

Grants for root@localhost: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' WITH GRANT OPTION

*************************** 2. row ***************************

Grants for root@localhost: GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

2 rows in set (0.00 sec)

【显示服务器错误或警告信息】

mysql> show errors;

Empty set (0.00 sec

mysql> show warnings;

Empty set (0.00 sec)

【显示当前连接用户】

mysql> select user();

+----------------+

| user()         |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

【显示当前时间】

mysql> select now();

+---------------------+

| now()               |

+---------------------+

| 2019-05-10 10:06:47 |

+---------------------+

1 row in set (0.00 sec)

【显示当前用户及时间】

mysql> select current_user(),current_timestamp;

+----------------+---------------------+

| current_user() | current_timestamp   |

+----------------+---------------------+

| root@localhost | 2019-05-10 10:08:12 |

+----------------+---------------------+

1 row in set (0.00 sec)

【显示当前数据库】

mysql> select database();

+------------+

| database() |

+------------+

| mysql      |

+------------+

1 row in set (0.00 sec)

【显示服务器状态】

mysql> status;

--------------

mysql  Ver 14.14 Distrib 5.5.22, for Linux (x86_64) using  EditLine wrapper

Connection id:                 3

Current database:          mysql

Current user:                    root@localhost

SSL:                           Not in use

Current pager:                 stdout

Using outfile:                    ''

Using delimiter:   ;

Server version:                5.5.22-log Source distribution

Protocol version: 10

Connection:                      Localhost via UNIX socket

Server characterset:      utf8

Db     characterset:   utf8

Client characterset:       utf8

Conn.  characterset:   utf8

UNIX socket:                    /tmp/mysql.sock

Uptime:                              2 hours 4 min 17 sec

Threads: 4  Questions: 130  Slow queries: 0  Opens: 49  Flush tables: 1  Open tables: 42  Queries per second avg: 0.017

--------------

  • 【数据库的备份与恢复】

方法一:可直接备份目录  /var/local/mysql/var

方法二: 使用专用备份工具 mysqldump

备份操作

mysqldump -u 用户名 -p  [密码][选项][数据库名][表名] > /备份路径/备份文件名

常见选项:

--all-databases

--opt

[root@mysql ~]# mysqldump -u root -p  mysql user > mysql-user.sql

Enter password:123123

[root@mysql ~]# mysqldump -u root -p  --database auth > auth.sql

Enter password: 123123

[root@mysql ~]# mysqldump -u root -p  --opt --all-databases  > all-data.sql

Enter password:123123

【恢复操作】

mysql -u root -p [数据库名] < /备份路径/备份文件名

[root@mysql ~]# mysql -u root -p test < mysql-user.sql

Enter password:123123

  • MySQL查询日志文件位置

  • 查找错误日志文件所在

mysql> show variables like 'log_error';
+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| log_error     | /var/log/mysql/error.log |
+---------------+--------------------------+
1 row in set (0.00 sec)

  • 查找日志文件路径

mysql> show variables like 'general_log_file';
+------------------+--------------------------------------------+
| Variable_name    | Value                                      |
+------------------+--------------------------------------------+
| general_log_file | /var/lib/mysql/iZ8vb0ywcounjc3oh3rv2jZ.log |
+------------------+--------------------------------------------+
1 row in set (0.00 sec)

  • 慢查询日志文件路径

mysql> show variables like 'slow_query_log_file';
+---------------------+-------------------------------------------------+
| Variable_name       | Value                                           |
+---------------------+-------------------------------------------------+
| slow_query_log_file | /var/lib/mysql/iZ8vb0ywcounjc3oh3rv2jZ-slow.log |
+---------------------+-------------------------------------------------+
1 row in set (0.00 sec)
 

 


以上内容结合mysql官网和博文https://blog.csdn.net/qq_38225558/article/details/82776348,博文https://www.shujukuba.com/mysql/99.html,结合书本,外加自己的理解实践整理而成!!越努力越幸运!!!

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值