MySQL操作:
MySQL 安装:
完成!
MySQL 管理:
完成
MySQL PHP语法:
MySQL 连接:
MySQL 创建数据库:
MySQL 删除数据库:
MySQL 选择数据库:
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;
|
查看表结构:
MySQL 删除数据表:
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数据库的数据
- 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用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 条件1(and/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 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";
|
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;
|
- 参数有 DISTINCT 和 ALL
- 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,等函数。
MySQL 连接的使用:
MySQL NULL值处理:
MySQL 正则表达式:
MySQL 事务:
MySQL ALTER命令:
MySQL 索引:
MySQL 临时表:
MySQL 复制表:
MySQL 元数据:
MySQL 序列使用:
MySQL 处理重复数据:
MySQL 及SQL注入:
MySQL 导出数据:
MySQL 导入数据:
MySQL 函数:
MySQL 运算符:
高级语言连接数据库:
Flask Rest API 构建:
数据库设计: