MySQL笔记

MySQL的安装与配置

两种安装方式

  1. 1.以.msi结尾的安装包安装<br />
  2. 2.以压缩包的方式安装
  3. 第一种方式比较简单,可以看这篇文章:[MySql8.0安装教程超详细 - 简书 (jianshu.com)](https://www.jianshu.com/p/45882f37f47e)
  4. 第二种方式比较复杂,是免安装的,可以看这篇文章:[MySQL的安装与配置——详细教程 - Winton-H - 博客园 (cnblogs.com)](https://www.cnblogs.com/winton-nfs/p/11524007.html)

数据库的基本操作

创建数据库

  1. CREATE DATABASES [IF NOT EXISTS] 数据库名;

查看数据库

  1. SHOW DATABASES;

删除数据库

  1. 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个字符

创建数据表

  1. CREATE TABLE 数据表名(
  2. 字段名1 数据类型 [列级约束条件] [默认值],
  3. 字段名2 数据类型 [列级约束条件] [默认值],
  4. .....
  5. [表级约束条件]
  6. )

查看表结构

  1. DESCRIBE 表名;
  2. --或者
  3. DESC 表名;

修改数据表

1.修改表名
  1. ALTER TABLE 原表名 RENAME [TO] 新表名;

2.修改字段的数据类型
  1. ALTER TABLE 表名 MODIFY 字段名 数据类型;

3.修改字段名
  1. ALTER TABLE 表名 CHANG 原字段名 新字段名 新数据类型;

4.添加字段
  1. ALTER TABLE 表名 ADD 新字段名 数据类型
  2. [约束条件] [FIRST|AFTER 已存在字段名];
  3. #FIRST|AFTER为可选参数
  4. #FIRST表示将新添加的字段设置为表的第一个字段
  5. #AFTER表示将新添加的字段添加到指定的"已存在的字段"的后面

5.删除字段
  1. ALTER TABLE 表名 DROP 字段名

6.修改字段的排序位置
  1. ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST|AFTER 字段2
  2. #字段1b

MySQL建表约束

1.非空约束,默认值约束
  1. create table 表名
  2. (列名 数据类型和长度 NOT NULL
  3. DEFAULT 默认值
  4. ......)

2.主键约束
  1. 能够唯一确定一张表的一条记录,也就是通过莫格字段添加约束,就可以使得更改字段重复且不为空。
  1. create table user(
  2. id int parimary key,
  3. name varchar(20)
  4. );

表数据的曾改删操作还没写完

1.插入数据
  1. insert [low_partition|delayed|high|priority][ignore]
  2. [into] 数据表民[(字段名,...)]
  3. values ({值|default,...}) , (...)
  4. [on duplicate key updata 字段名=表达式,...]

数据查询—单表查询

1.简单数据记录查询
  1. select * from |<字段列表>
  2. from 数据表

2.查询指定字段数据
  1. select 字段名 from|<字段列表>
  2. from 数据表

3.去除重复查询结果
  1. select distinct 字段名
  2. from 表名

4.限制查询结果数量
  1. select * from |<字段列表>
  2. from 数据表
  3. limit [位置偏移量,] 行数;
  4. #位置偏移量 从偏移量的下面一行开始截取

5.条件数据查询
  1. select 字段列表
  2. from 数据表
  3. 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 的查询范围
  1. select 字段1,字段2...
  2. from 数据表名
  3. where 字段1 between 1 and 2
  4. #查询数据表里面不在值1和值2中的数据
  5. select 字段1,字段2...
  6. from 数据表名
  7. where 字段1 not between 1 and 2

(4)带关键字like 的查询范围

like可以实现字符匹配的模糊条件查询

MySQL笔记 - 图1

案例:

  1. select * from reads where readname like '张_'

(5)带关键字is null 的查询范围

is null 可以实现判断字段值是否为空的条件查询

  1. select 字段1,字段2...
  2. from 数据表名
  3. where 字段1 is null

6.order by 对查询结果排序
  1. select 字段1,字段2...
  2. from 数据表名
  3. order by 字段1

(1)单字段排序

排序默认为升序,单字段排序order by后面只添加一个字段

如果要使排序为降序(从大到小)在被排序的字段后面添加DESC

(2)多字段排序

多字段排序首先按照第一个字段的值进行排序,当第一个字段值相同时,再按照第二个字段的值进行排序以此类推

7.使用统计函数查询
函 数 名 说 明
COUNT 求组中项数,返回int类型整数
MAX 求最大值
MIN 求最小值
SUM 返回表达式中所有值的和
AVG 求组中值的平均值

8.单字段分组查询

group by 按照by后面的字段的值进行分组
书本86页

  1. select * from books
  2. group by type

9.多字段分组查询

对多个字段按层级进行分组,首先按第一个字段分组,然后在第一个字段值相同的每个分组中再根据第二个字段值进行分组

10.链接查询-join on