MySQL笔记
MySQL的安装与配置
两种安装方式
1.以.msi结尾的安装包安装<br />2.以压缩包的方式安装第一种方式比较简单,可以看这篇文章:[MySql8.0安装教程超详细 - 简书 (jianshu.com)](https://www.jianshu.com/p/45882f37f47e)第二种方式比较复杂,是免安装的,可以看这篇文章:[MySQL的安装与配置——详细教程 - Winton-H - 博客园 (cnblogs.com)](https://www.cnblogs.com/winton-nfs/p/11524007.html)
数据库的基本操作
创建数据库
CREATE DATABASES [IF NOT EXISTS] 数据库名;
查看数据库
SHOW DATABASES;
删除数据库
DROP DATABASES 数据库名
数据表的基本操作
数据类型
1、整型
| 数据类型 | 字节及范围 |
|---|---|
| tinyint(m) | 1个字节 (-128~127) |
| smallint(m) | 2个字节 (-32768~32767) |
| mediumint(m) | 3个字节 (-8388608~8388607) |
| int或integer(m) | 4个字节 (-2147483648~2147483647) |
| bigint(m) | 8个字节 (±9.22*10的18次方) |
2、浮点型
| 数据类型 | 定义 |
|---|---|
| float(m,d) | 单精度浮点型 8位精度(4字节) |
| double(m,d) | 双精度浮点型 16位精度(8字节) |
3、字符串
| 数据类型 | 大小 |
|---|---|
| char(n) | 固定长度,最多255个字符 |
| varchar(n) | 固定长度,最多65535个字符 |
| tinytext | 可变长度,最多255个字符 |
| text | 可变长度,最多65535个字符 |
| mediumtext | 可变长度,最多2的24次方-1个字符 |
| longtext | 可变长度,最多2的32次方-1个字符 |
创建数据表
CREATE TABLE 数据表名(字段名1 数据类型 [列级约束条件] [默认值],字段名2 数据类型 [列级约束条件] [默认值],.....[表级约束条件])
查看表结构
DESCRIBE 表名;--或者DESC 表名;
修改数据表
1.修改表名
ALTER TABLE 原表名 RENAME [TO] 新表名;
2.修改字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 数据类型;
3.修改字段名
ALTER TABLE 表名 CHANG 原字段名 新字段名 新数据类型;
4.添加字段
ALTER TABLE 表名 ADD 新字段名 数据类型[约束条件] [FIRST|AFTER 已存在字段名];#FIRST|AFTER为可选参数#FIRST表示将新添加的字段设置为表的第一个字段#AFTER表示将新添加的字段添加到指定的"已存在的字段"的后面
5.删除字段
ALTER TABLE 表名 DROP 字段名
6.修改字段的排序位置
ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST|AFTER 字段2#字段1b
MySQL建表约束
1.非空约束,默认值约束
create table 表名(列名 数据类型和长度 NOT NULLDEFAULT 默认值......)
2.主键约束
能够唯一确定一张表的一条记录,也就是通过莫格字段添加约束,就可以使得更改字段重复且不为空。
create table user(id int parimary key,name varchar(20));
表数据的曾改删操作还没写完
1.插入数据
insert [low_partition|delayed|high|priority][ignore][into] 数据表民[(字段名,...)]values ({值|default,...}) , (...)[on duplicate key updata 字段名=表达式,...]
数据查询—单表查询
1.简单数据记录查询
select * from |<字段列表>from 数据表
2.查询指定字段数据
select 字段名 from|<字段列表>from 数据表
3.去除重复查询结果
select distinct 字段名from 表名
4.限制查询结果数量
select * from |<字段列表>from 数据表limit [位置偏移量,] 行数;#位置偏移量 从偏移量的下面一行开始截取
5.条件数据查询
select 字段列表from 数据表where 查询条件
(1)mysql支持的关系运算表达式
| 操 作 符 | 描 述 |
|---|---|
| = | 等于 |
| <> | 不等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| BETWEEN | 在某个范围内 |
| LIKE | 搜索某种模式 |
(2)MySQL支持的逻辑运算体哦阿健查询
| 符号 | 符号 | 说明 | 示例 | 说明 |
|---|---|---|---|---|
| not | ! | 非运算 | !x | 如果x是”true”,那么示例的结果是”false”; 如果x是”false”,那么示例的结果是”true”。 |
| or | || | 或运算 | x || y | 如果x或y任一是”true”,那么示例的结果是”true”,否则示例的结果是”false”。 |
| and | && | 与运算 | x && y | 如果x和y都是”True”,那么示例结果是”true”,否则示例的结果是”false”。 |
| xor | ^ | 异或运算 | x ^y | 如果x和y不相同,那么示例结果是”true”,否则示例的结果是”false”。 |
(3)带关键字between and 的查询范围
select 字段1,字段2...from 数据表名where 字段1 between 值1 and 值2;#查询数据表里面不在值1和值2中的数据select 字段1,字段2...from 数据表名where 字段1 not between 值1 and 值2;
(4)带关键字like 的查询范围
like可以实现字符匹配的模糊条件查询

案例:
select * from reads where readname like '张_'
(5)带关键字is null 的查询范围
is null 可以实现判断字段值是否为空的条件查询
select 字段1,字段2...from 数据表名where 字段1 is null;
6.order by 对查询结果排序
select 字段1,字段2...from 数据表名order by 字段1
(1)单字段排序
排序默认为升序,单字段排序order by后面只添加一个字段
如果要使排序为降序(从大到小)在被排序的字段后面添加DESC
(2)多字段排序
多字段排序首先按照第一个字段的值进行排序,当第一个字段值相同时,再按照第二个字段的值进行排序以此类推
7.使用统计函数查询
| 函 数 名 | 说 明 |
|---|---|
| COUNT | 求组中项数,返回int类型整数 |
| MAX | 求最大值 |
| MIN | 求最小值 |
| SUM | 返回表达式中所有值的和 |
| AVG | 求组中值的平均值 |
8.单字段分组查询
group by 按照by后面的字段的值进行分组
书本86页
select * from booksgroup by type
9.多字段分组查询
对多个字段按层级进行分组,首先按第一个字段分组,然后在第一个字段值相同的每个分组中再根据第二个字段值进行分组
