基于Mac OS X系统

MySQL的安装和配置

首先进入 MySQL 官网,选择免费的Community版:MySQL Community Server。MySQL 官网提供了tar.gz和dmg两种格式的安装包,对于MacOSX用户可以选择dmg用户,下载后安装,按照提示完成安装操作

然后打开Terminal配置相关的环境:

装后直接在命令行输入mysql会提示mysql: command not found,需要先将其添加到环境变量:

1
vim ~/.bash_profile

添加以下指令:

1
export PATH=${PATH}:/usr/local/mysql/bin

保存后立即使其生效:

1
source ~/.bash_profile

MySQL管理

登陆MySQL

1
mysql -u root -p

USE 数据库名 :

选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。

1
2
mysql> use Mysql;
Database changed

SHOW DATABASES:

列出 MySQL 数据库管理系统的数据库列表。

1
2
3
4
5
6
7
8
9
10
11
12
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| date |
| information_schema |
| mysql |
| performance_schema |
| RUNOOB |
| sys |
+--------------------+
6 rows in set (0.02 sec)

SHOW TABLES:

显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。

1
2
3
4
5
6
7
8
9
mysql> use date;
Database changed
mysql> show tables;
+----------------+
| Tables_in_date |
+----------------+
| runoob_tbl |
+----------------+
1 row in set (0.00 sec)

SHOW COLUMNS FROM 数据表:

显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

SHOW INDEX FROM 数据表:

显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

SHOW TABLE STATUS LIKE [FROM db_name] [LIKE ‘pattern’] G:

该命令将输出Mysql数据库管理系统的性能及统计信息。

数据库操作

创建数据库

我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:

1
CREATE DATABASE 数据库名;

删除数据库

使用 root 用户登录,root 用户拥有最高权限。
在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。
在删除过程中,我们使用drop命令进行删除数据库的操作:

1
drop database 数据库名;

选择数据库

在MySQL中可以使用use命令实现当前操作数据库的选择

1
2
mysql> use Learn;
Database changed

MySQL数据类型

整数

*对于MySQL3.23 以前的版本,DECIMAL(M, D) 列的每个值占用M 字节,而符号(如果需要)和小数点包括在M 字节中。因此,类型为DECIMAL(5, 2) 的列,其取值范围为-9.99 到9 9 . 9 9

而在MySQL3.23 之后的版本中,DECIMAL 值是根据ANSI 规范进行处理的, ANSI 规范规定DECIMAL(M, D) 必须能够表示M 位数字及D 位小数的任何值。

日期和时间类型

*TIMESTAMP有自动更新的特性

字符串类型

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

(此内容来自http://www.runoob.com/mysql/mysql-data-types.html)

数据表操作

创建数据表

创建MySQL数据表需要以下信息:

  • 表名
  • 表字段名
  • 定义每个表字段

创建数据表的通用语法为:

1
CREATE TABLE table_name (column_name column_type);

实例:

1
2
3
4
5
6
7
mysql> create table table1(
-> num_id int not null auto_increment,
-> num_title varchar(100) not null,
-> num_author varchar(30) not null,
-> mission_date datetime,
-> primary key (num_id)
-> )engine=InnoDB default charset=utf8;

*在命令的最后一行出现了
engine
选项,以及default选项,可以通过连接的网站具体了解!

*关于其中not null 和 null选项可以通过null or not null进行具体的了解

可以通过show columns from table1查看创建的结果:

1
2
3
4
5
6
7
8
9
mysql> show columns from table1;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| num_id | int(11) | NO | PRI | NULL | auto_increment |
| num_title | varchar(100) | NO | | NULL | |
| num_author | varchar(30) | NO | | NULL | |
| mission_date | datetime | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+

MySQL 删除数据表

MySQL中删除数据表是非常容易操作的,进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。

1
drop table table_name;

关于删除操作的几点补充:

删除表内数据使用delete命令

1
2
3
4
delete from 表名 where 删除条件;
e.g
delete from table1 where num_author = "Alice";
实例:删除table1表内num_author为Alice的记录。

另外,在执行delete操作之后,可以使用命令optimize table table_name将删除的磁盘空间释放

清除表内数据但是保存表结构truncate命令

1
2
3
4
truncate table 表名;
e.g.
truncate table table1;
清楚表table1内的全部数据

MySQL插入数据

MySQL 表中使用 INSERT INTO SQL语句来插入数据。
插入的具体语法为:

1
2
3
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );

特别地,如果数据是字符型,那么请使用''或者"",如"value1"

实例:向table1表中插入一行数据

1
2
3
4
5
6
7
mysql> insert into table1
-> (num_title,num_author,mission_date)
-> values
-> ("MySQL","Chaotic",now());
Query OK, 1 row affected (0.09 sec) *NOW() 是一个 MySQL 函数,该函数返回日期和时间。

使用select * from <table_name>命令查看数据表中的内容可以看到:

1
2
3
4
5
6
7
mysql> select * from table1;
+--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 1 | MySQL | Chaotic | 2018-10-16 14:38:08 |
+--------+-----------+------------+---------------------+
1 row in set (0.01 sec)

MySQL中查询数据

MySQL 数据库使用SQL SELECT语句来查询数据

语法:

1
2
3
4
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • 可以使用*来 代替命令中的选项,select会返回表中所有的字段数据
  • where语句中可以包含任何你想要的条件
  • limit可以设定返回值的数量
  • offset可以设置偏移量,默认为0

实例

使用select * from <table_name>命令查看数据表中的内容可以看到:

1
2
3
4
5
6
7
mysql> select * from table1;
+--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 1 | MySQL | Chaotic | 2018-10-16 14:38:08 |
+--------+-----------+------------+---------------------+
1 row in set (0.01 sec)

where字句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中

在where字句中:

  • 指定任何条件
  • 使用 AND 或者 OR 指定一个或多个条件
  • 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令
  • 类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据,可以使用 = != > < >= <=等逻辑运算符号

实例

1
2
3
4
5
6
7
8
9
10
mysql> select * from table1 where num_author='Chaotic';
+--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 1 | MySQL | Chaotic | 2018-10-16 14:38:08 |
+--------+-----------+------------+---------------------+
1 row in set (0.00 sec) mysql> select * from table1 where num_author='Arron';
Empty set (0.01 sec)

MySQL UPDATE字句

修改或更新 MySQL 中的数据,使用 SQL UPDATE 命令来操作。

语法:

1
2
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

对于UPDATE命令,有以下的限定条件:

  • 同时更新1个或者多个字段
  • 可以在where中限定任何条件
  • 在一个单独表中同时更新数据

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
原始表格:
mysql> select * from table1;
+--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 1 | MySQL | Chaotic | 2018-10-16 14:38:08 |
| 2 | C++ | Arron | 2018-10-16 15:00:06 |
| 3 | Python | Alice | 2018-10-16 15:00:20 |
+--------+-----------+------------+---------------------+ 使用UPDATE命令:
mysql> update table1 set num_author="Bob" where num_id =3; 得到结果:
mysql> select * from table1;
+--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 1 | MySQL | Chaotic | 2018-10-16 14:38:08 |
| 2 | C++ | Arron | 2018-10-16 15:00:06 |
| 3 | Python | Bob | 2018-10-16 15:00:20 |
+--------+-----------+------------+---------------------+

使用UPDATE改变其中的某几个字符串:

1
2
3
4
5
6
7
8
9
10
11
12
update <table_name> set <filed>=replace(filed,'value1','value2') where clause;
例如:
mysql> update table1 set num_author=replace(num_author,'tic','s') where num_id = 1;
结果: mysql> select * from table1; +--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 1 | MySQL | Chaos | 2018-10-16 14:38:08 |
| 2 | C++ | Arron | 2018-10-16 15:00:06 |
| 3 | Python | Bob | 2018-10-16 15:00:20 |
+--------+-----------+------------+---------------------+

Like语句

我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。
WHERE 子句中 = 来设定条件,如 “num_author = ‘RUNOOB.COM’”。

但是当需要获取 num_author 字段含有 “a” 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。

SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。

实例:

1
2
3
4
5
6
mysql> select * from table1 where num_author like 'Cha%';
+--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 1 | MySQL | Chaos | 2018-10-16 14:38:08 |
+--------+-----------+------------+---------------------+

补充,%_的配合使用

1
2
3
4
5
6
'%a'     //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
'_a_' //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的

MySQL UNION操作符

MySQL UNION 操作符用于连接2个以上的 SELECT 语句的结果组合到一个结果集合中。其中多个 SELECT语句会删除重复的数据。

其语法为:

1
2
3
4
5
6
7
8
9
10
11
SELECT column_name1, column_name2, ... column_name_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT column_name1, column_name2, ... column_name_n
FROM tables
[WHERE conditions]; 其中:
1、DISTINCT:删除结果集中重复的数据
2、ALL:返回所有结果,包含重复数据

MySQL UNION操作符

MySQL UNION 操作符用于连接2个以上的 SELECT 语句的结果组合到一个结果集合中。其中多个 SELECT语句会删除重复的数据。

其语法为:

1
2
3
4
5
6
7
8
9大专栏  Mysql简单总结n>
10
11
SELECT column_name1, column_name2, ... column_name_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT column_name1, column_name2, ... column_name_n
FROM tables
[WHERE conditions]; 其中:
1、DISTINCT:删除结果集中重复的数据
2、ALL:返回所有结果,包含重复数据

排序

从 MySQL 表中使用 SQL SELECT 语句来读取数据。

如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

1
SELECT * from <table_name> ORDER BY <column_name>;

实例

1
2
3
4
5
6
7
8
mysql> select * from table1 order by num_author;
+--------+-----------+------------+---------------------+
| num_id | num_title | num_author | mission_date |
+--------+-----------+------------+---------------------+
| 2 | C++ | Arron | 2018-10-16 15:00:06 |
| 3 | Python | Bob | 2018-10-16 15:00:20 |
| 1 | MySQL | Chaos | 2018-10-16 14:38:08 |
+--------+-----------+------------+---------------------+

连接的使用

在实际的应用中经常需要从多个数据表中读取数据。 MySQL 的 JOIN可以在两个或多个表中查询数据。可以在 SELECT, UPDATEDELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。

JOIN 按照功能大致分为如下三类:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

INNER JOIN

得到两个表相同的地方:

1
2
语法
SELECT a.column_name1, a.column_name2, ... b.column_name1, b.column_name2,... from <table_name1> a INNER JOIN <table_name2> b ON a.column_nameX = b.columen_nameY

实例

我们先新建一个表:table2

1
2
3
4
mysql> create table table2(
-> num_author varchar(100) not null,
-> num_admi int not null
-> )engine = InnoDB default charset=utf8;

添加两条记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql> insert into table2(num_author, num_admi)
-> values
-> ("Arron",10);
Query OK, 1 row affected (0.07 sec) mysql> insert into table2(num_author, num_admi)
-> values
-> ("Bob",17);
Query OK, 1 row affected (0.05 sec) mysql> select * from table2;
+------------+----------+
| num_author | num_admi |
+------------+----------+
| Arron | 10 |
| Bob | 17 |
+------------+----------+

使用inner join命令

1
2
3
4
5
6
7
mysql> select a.num_id, a.num_author, b.num_admi from table1 a inner join table2 b on a.num_author = b.num_author;
+--------+------------+----------+
| num_id | num_author | num_admi |
+--------+------------+----------+
| 2 | Arron | 10 |
| 3 | Bob | 17 |
+--------+------------+----------+

Left Join

选择左侧的表+两个表相同的地方,如果有相同的部分则只显示一次

语法

1
2
语法
SELECT a.column_name1, a.column_name2, ... b.column_name1, b.column_name2,... from <table_name1> a Left JOIN <table_name2> b ON a.column_nameX = b.columen_nameY

实例

1
2
3
4
5
6
7
8
mysql> select a.num_id, a.num_author, b.num_admi from table1 a left join table2 b on a.num_author = b.num_author;
+--------+------------+----------+
| num_id | num_author | num_admi |
+--------+------------+----------+
| 2 | Arron | 10 |
| 3 | Bob | 17 |
| 1 | Chaos | NULL |
+--------+------------+----------+

Right Join

选择右侧的表+两个表相同的地方,如果有相同的部分则只显示一次

语法

1
2
语法
SELECT a.column_name1, a.column_name2, ... b.column_name1, b.column_name2,... from <table_name1> a Right JOIN <table_name2> b ON a.column_nameX = b.columen_nameY

实例

1
2
3
4
5
6
7
mysql> select a.num_id, a.num_author, b.num_admi from table1 a right join table2 b on a.num_author = b.num_author;
+--------+------------+----------+
| num_id | num_author | num_admi |
+--------+------------+----------+
| 2 | Arron | 10 |
| 3 | Bob | 17 |
+--------+------------+----------+

MySQL ALTER

当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

首先创建一个新的表

1
2
3
4
5
6
7
8
9
10
11
12
mysql> create table table3(
-> i int,
-> c char(1)
-> ); mysql> show columns from table3;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i | int(11) | YES | | NULL | |
| c | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+

对表字段的操作

使用ALTERDROP删除表字段

1
2
3
4
5
6
7
8
9
10
mysql> alter table table3 drop i;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from table3;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+

使用ALTERADD命令添加表字段

1
2
3
4
5
6
7
8
9
10
11
mysql> alter table table3 add i int;
Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from table3;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c | char(1) | YES | | NULL | |
| i | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+

*如果你需要指定新增字段的位置,可以使用关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。

对字段的操作

使用ALTERMODIFY修改字段的类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> show columns from table3;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c | char(1) | YES | | NULL | |
| i | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec) mysql> alter table table3 modify c varchar(100);
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from table3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c | varchar(100) | YES | | NULL | |
| i | int(11) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+

使用ALTERCHANGE修改名字和类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> show columns from table3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c | varchar(100) | YES | | NULL | |
| i | int(11) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec) mysql> alter table table3 change i j tinyint;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from table3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c | varchar(100) | YES | | NULL | |
| j | tinyint(4) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+

对字段默认值的操作

使用ALTER修改字段默认值

语法

1
alter table <table_name> alter <row_name1> set <column_name1> <修改值>

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> show columns from table3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c | varchar(100) | YES | | NULL | |
| j | int(11) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.01 sec) mysql> alter table table3 alter j set default 1000;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from table3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c | varchar(100) | YES | | NULL | |
| j | int(11) | YES | | 1000 | |
+-------+--------------+------+-----+---------+-------+

使用ALTERDROP删除字段默认值

语法

1
alter table <table_name> alter <row_name1> drop <column_name1>

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> show columns from table3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c | varchar(100) | YES | | NULL | |
| j | int(11) | YES | | 1000 | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec) mysql> alter table table3 alter j drop default;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from table3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c | varchar(100) | YES | | NULL | |
| j | int(11) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+

对表名的操作

语法

1
alter table <table_name> rename to <change_name>;

索引

创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

普通索引

创建索引

  • 使用MySQL命令创建
1
2
3
mysql> create index index1 on table1(num_author(30));
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
  • 修改表结构创建
1
2
3
mysql> alter table table2 add index index2(num_author);
Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0
  • 创建表的时候直接指明
1
2
3
4
5
6
mysql> create table table4( 
-> num_id int not null,
-> num_name varchar(30) not null,
-> index index4 (num_name(30))
-> );
Query OK, 0 rows affected (0.03 sec)

删除索引

1
drop index <index_name> on <table_name>;

唯一索引

在普通索引的命令1中,在index前加上unique即可
在命令2和命令3中,将index替换为unique即可。

显示索引信息

1
2
3
4
5
6
7
8
9
show index from <table_name>

mysql> show index from table1;
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| table1 | 0 | PRIMARY | 1 | num_id | A | 2 | NULL | NULL | | BTREE | | | YES |
| table1 | 1 | index1 | 1 | num_author | A | 3 | NULL | NULL | | BTREE | | | YES |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

SQL注入

我决定另外用一个单独的文章介绍这部分的内容 :)

请大家帮我测试!
链接:https://pan.baidu.com/s/1FU22qe1xNk88_FyJ8wmh4w 密码:4p9f

Mysql简单总结的更多相关文章

  1. python(pymysql)之mysql简单操作

    一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...

  2. Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(二)

    然后是项目下的文件:完整的项目请看  上一篇 Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(一) 项目下的springmvc-servlet.xml配置文件: ...

  3. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

  4. mysql简单主从复制(一)

    MYSQL简单主从复制 master:172.25.44.1 slave:172.25.44.2 mysql5.7安装 master和slave均操作 准备rpm包:mysql-5.7.17-1.el ...

  5. MySql 简单统计查询消耗时间脚本

    MySql 简单统计查询消耗时间脚本 by:授客 QQ:1033553122 drop procedure if exists selectTime; delimiter; create proced ...

  6. MySQL简单查询详解-单表查询

    MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...

  7. Gin实战:Gin+Mysql简单的Restful风格的API(二)

    上一篇介绍了Gin+Mysql简单的Restful风格的API,但代码放在一个文件中,还不属于restful风格,接下来将进行进一步的封装. 目录结构 ☁ gin_restful2 tree . ├─ ...

  8. Mysql基本操作、C++Mysql简单应用、PythonMysql简单应用

    MySql基本操作 -- 当指定名称的数据库不存在时创建它并且指定使用的字符集和排序方式 CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET UTF ...

  9. SSH整合框架+mysql简单的实现

    SSH整合框架+mysql简单的实现 1. 框架整合原理: struts2整合Spring 两种: 一种struts2自己创建Action,自动装配Service : 一种 将Action交给Spri ...

  10. mysql简单优化思路

    mysql简单优化思路 作为开发人员,数据库知识掌握的可能不是很深入,但是一些基本的技能还是要有时间学习一下的.作为一个数据库菜鸟,厚着脸皮来总结一下 mysql 的基本的不能再基本的优化方法. 为了 ...

随机推荐

  1. Python模块——hashlib

    简介 hashlib模块是用于对字符串进行加密,其可以把任意长度的数据转换为一个长度固定的数据串,且这种加密是不可逆的,故这种加密方式的安全性都很高.hash本质是一个函数,该模块提供了许多不同的加密 ...

  2. Linux bootloader

    1.bootloader:初始化相关的硬件  loader:将操作系统从硬盘当中拷贝到内存当中去,,然后让CPU跳转到内存中执行操作系统. 2.boot阶段:(1)关闭影响cpu正常执行的外设   比 ...

  3. 用JS打开新窗口,防止被浏览器阻止的方法

    相信做web前端或者使用JS的朋友都会遇到需要在新窗口打开页面的情况,现在浏览器大都具有弹出窗口拦截功能,所以传统的window.open()不再那么好用了.借鉴于网上查到的方法和我个人的实践,把弹出 ...

  4. 让几个横向排列的浮动子div居中显示的方法

    div设置成float之后,就无法使子div居中显示了,那么如何让几个横向排列的浮动的div居中显示呢,下面有个不错的方法,希望对大家有所帮助 div设置成float之后,在父div中设置text-a ...

  5. 数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)

    T-SQL语言 按用途分四部分 数据定义语言(CREATE,DROP,ALTER) 数据操作语言(INSERT,DELETE,UPDATE) 数据查询语言(SELECT) 数据控制语言(GRANT,R ...

  6. [Algo] 175. Decompress String II

    Given a string in compressed form, decompress it to the original string. The adjacent repeated chara ...

  7. java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V

    java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/St ...

  8. mysql 数据库保存\n 微信分享时不能换行

    主要因为保存的是\n 但是查询出来是\\n 所以需要把\\n替换为\n即可(不转换的话不会换行并且显示\n)

  9. Kruskal算法详解

    本章介绍克鲁斯卡尔算法.和以往一样,本文会先对克鲁斯卡尔算法的理论论知识进行介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现. 最小生成树 在含有n个顶点的连通图中选择n-1条边, ...

  10. How Cocoa Beans Grow And Are Harvested Into Chocolate

    What is Cocoa Beans Do you like chocolate? Most people do. The smooth, brown candy is deliciously sw ...