MySQL操作:

MySQL 安装:

完成!

MySQL 管理:

完成

MySQL PHP语法:

MySQL 连接:

MySQL 创建数据库:

1
create database 数据库名

MySQL 删除数据库:

1
drop database 数据库名;

MySQL 选择数据库:

1
use 数据库名;

MySQL 数据类型:

数值类型:

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 Bytes (-128, 127) (0, 255) 小整数值
SMALLINT 2 Bytes (-32 768, 32 767) (0, 65 535) 大整数值
MEDIUMINT 3 Bytes (-8 388 608, 8 388 607) (0, 16 777 215) 大整数值
INT/INTEGER 4 Bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 Bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 Bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) (0,1.175 494 351 E-38,3.402 823 466 E+38 ) 单精度浮点数值
DOUBLE 8 Bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) (0, 2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

日期和时间类型:

类型 大小(bytes) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMETAMP 4 1970-01-01 00:00:00/2038 YYYYMMDD HHMMS 混合日期和时间值,时间戳

字符串类型:

类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

MySQL 创建数据表:

1
2
3
4
5
create table 表名(
字段名 字段类型,
字段名 字段类型,
......

  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码。

例如:

1
2
3
4
5
6
7
mysql> CREATE TABLE runoob_tbl(
-> runoob_id INT NOT NULL AUTO_INCREMENT,
-> runoob_title VARCHAR(100) NOT NULL,
-> runoob_author VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY ( runoob_id )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
查看表结构:
1
desc 表名;

MySQL 删除数据表:

1
drop table 表名;

MySQL 插入数据:

使用SQL语法向MySQL数据表插入数据:

1
2
3
4
insert into 
表名(字段名1,字段名2,字段名3,...字段名n)
values
(数据1,数据2,数据3,...数据n);

实例:

1
2
3
4
INSERT INTO
user_common(name_common,account_common,password_common)
VALUES
("秦始皇","root1","root1");

MySQL 查询数据:

使用SQL语句查询MySQL数据库的数据

1
select 字段名 from 表名;
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

实例:

1
2
3
4
SELECT 
name_common
FROM
user_common;
1
2
3
4
SELECT 
*
FROM
user_common;
1
2
3
4
SELECT 
name_common,account_common
FROM
user_common;

AS

  • 重命名一个列
  • 紧跟列名,也可以在列名和别名之间加入关键字AS,别名使用双引号,以便在别名中包含空格或特殊的字符并区分别大小写。
  • AS 可以省略

案例:

1
2
3
4
SELECT
number AS "序号",id AS "学号",NAME AS "姓名",age AS "年龄"
FROM
software;

去除重复行:

  • 在 SELECT 语句中使用关键字 DISTINCT去除重复行

  • **DISTINCT **需要放到所有列名的前面,如果写成

    **SELECT **

    salary, DISTINCT department_id

    **FROM **

    employees

    会报错。

1
2
3
4
SELECT DISTINCT
age AS "年龄"
FROM
software;

MySQL WHERE语句:

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

1
2
3
4
5
select 
字段名
from
表名
where 条件1and/or 条件2....);

实例:

1
2
3
4
5
SELECT 
*
FROM
student
WHERE grade_student = "软件工程2001";
1
2
3
4
5
SELECT 
*
FROM
student
WHERE grade_student = "软件工程2001" OR grade_student = "软件工程2003";
1
2
3
4
5
SELECT 
*
FROM
student
WHERE grade_student = "软件工程2001" AND age_student = "20";
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号**,** 分割,并使用WHERE语句来设定查询条件。
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以使用 AND 或者 OR 指定一个或多个条件。
  • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
  • WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

以下为操作符列表,可用于 WHERE 子句中。

下表中实例假定 A 为 10, B 为 20

操作符 描述 实例
= 等号,检测两个值是否相等,如果相等返回true (A = B) 返回false。
<>, != 不等于,检测两个值是否相等,如果不相等返回true (A != B) 返回 true。
> 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true (A > B) 返回false。
< 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true (A < B) 返回 true。
>= 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true (A >= B) 返回false。
<= 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true (A <= B) 返回 true。

类型运算符:

运算符 名称 作用 示例
IS NULL 为空运算符 判断值、字符串或表达式是否为空 SELECT B FROM TABLE WHERE A IS NULL
IS NOTNULL 不为空运算符 判断值、字符串或表达式是否不为空 SELECT B FROM TABLE WHERE A IS NOT NULL
LEAST 最小值运算符 在多个值中返回最小值 SELECT D FROM TABLE WHERE C LEAST(A , B)
GREATEST 最大值运算符 在多个值中返回最大值 SELECT D FROM TABLE WHERE C GREATEST(A , B)
BETWEEN AND 两值之间的运算符 判断一个值是否在两个值之间 SELECT D FROM TABLE WHERE C BETWEEN A AND B
ISNULL 为空运算符 判断一个值、字符串或表达式是否为空 SELECT B FROM TABLE WHERE A ISNULL
IN 属于运算符 判断一个值是否为列表中的任意一个值 SELECT D FROM TABLE **WHERE ** C IN(A , B)
NOT IN 不属于运算符 判断一个值是否不是一个列表中的任意一个值 SELECT D FROM TABLE WHERE C NOT IN(A , B)
LIKE 模糊匹配运算符 判断一个值是否符合模糊匹配规则 SELECT C FROM TABLE WHERE A LIKE B
REGEXP 正则表达式运算符 判断一个值是否符合正则表达式的规则 SELECT C FROM TABLE WHERE A REGEXP B
RLIKE 正则表达式运算符 判断一个值是否符合正则表达式的规则 SELECT C FROM TABLE WHERE A RLIKE B

案例:

  1. 空运算符:
1
2
3
4
5
6
7
8
9
10
11
SELECT
*
FROM
software
WHERE NAME IS NULL;

SELECT
*
FROM
software
WHERE NAME IS NOT NULL;

MySQL UPDATE语句:

使用SQL语法修改MySQL中的数据

1
2
3
4
5
6
update 表名 
set
字段名 = 新数据,
字段名 = 新数据,
...
where 条件;

案例:

1
2
3
4
5
6
UPDATE
student
SET
grade_student = "计算机科学与技术2003",
age_student = "19"
WHERE name_student = "陈某人";

MySQL DELETE语句:

1
2
3
delete from
表名
where 条件;
  • 如果没有 WHERE 条件则会清空指定表内的所有数据
  • 如果想要删除某条或者某几条数据,可以通过添加 WHERE 条件做到

案例:

1
2
3
DELETE FROM
test
WHERE age = "19";
1
2
DELETE FROM
test;

MySQL LIKE子句:

在WHERE语句中我们会通过 字段名 = ?的方式来筛选出数据来进行查询或者删除

但有些时候我们不需要这么精确。比如,我们要查询软件工程专业的所有学生,那么我们就不能通过WHERE grade = “软件工程2001” 这样的条件来进行筛选查询。

我们需要一个能够达到模糊查询的方式来实现查找所有软件工程专业学生的数据。

因此,我们在WHERE语句中引入了LIKE子句,来达到这种目的。

1
2
3
4
5
6
select 
字段名
from
表名
where
字段名 like ?(and/or 条件2....);

注意:

LIKE 子句要搭配 % 和 _ 一起使用,具体使用如下:

where 字段 like “x%” 查找以x开头的数据
where 字段 like “% x” 查找以 x 结尾的数据
where 字段 like “% x %” 查找该字段中有 x 的数据
where 字段 like “_ x %” 查找第二个位置为 x 的数据
where 字段 like “x % y” 查找以 x 开头,以 y 结尾的数据
where 字段 like “x _ % _%” 查找以 x 开头,且长度至少为3的数据
where 字段 like “x _% y _%” 查找。。。。。。。(自己猜)

还有很多,总之 _ 代表的意思是单个字符

案例:

1
2
3
4
5
6
SELECT 
*
FROM
student
WHERE
grade_student LIKE "%软件工程%";

MySQL UNION操作符:

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

1
2
3
4
5
6
7
8
9
10
11
select 
字段1
from
表名
where 条件1
union (参数)
select
字段2
from
表名
where 条件2

案例:

1
2
3
4
5
6
7
8
9
SELECT 
*
FROM
user_common
UNION
SELECT
*
FROM
user_manage;
  • 参数有 DISTINCTALL
  • DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
  • ALL: 可选,返回所有结果集,包含重复数据。

MySQL 排序(ORDER BY 语句):

1
2
3
4
5
select 
字段名
from
表名
order by 字段名(参数)
  • 参数:ASC 和 DESC(默认ASC)
  • ASC:升序排列
  • DESC:降序排列
1
2
3
4
5
SELECT 
*
FROM
student
ORDER BY age_student DESC;
1
2
3
4
5
SELECT 
*
FROM
student
ORDER BY age_student;

ORDER BY 也是子句,可以和 WHERE 组合使用。

MySQL 分组(GROUP BY语句):

GROUP BY 语句根据一个或多个列对结果集进行分组。

在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

1

MySQL 连接的使用:

MySQL NULL值处理:

MySQL 正则表达式:

MySQL 事务:

MySQL ALTER命令:

MySQL 索引:

MySQL 临时表:

MySQL 复制表:

MySQL 元数据:

MySQL 序列使用:

MySQL 处理重复数据:

MySQL 及SQL注入:

MySQL 导出数据:

MySQL 导入数据:

MySQL 函数:

MySQL 运算符:

高级语言连接数据库:

Flask Rest API 构建:

数据库设计: