sql启动
简介
关系型数据库 RDBMS
建立在关系模型基础上,多张相互连接的二维表组成的数据库
数据类型分类 | 具体数据类型 | 详细信息 |
---|
数值类型 | TINYINT | 字节数:1;有符号范围:-128 到 127;无符号范围:0 到 255 |
数值类型 | SMALLINT | 字节数:2;有符号范围:-32768 到 32767;无符号范围:0 到 65535 |
数值类型 | MEDIUMINT | 字节数:3;有符号范围:-8388608 到 8388607;无符号范围:0 到 16777215 |
数值类型 | INT | 字节数:4;有符号范围:-2147483648 到 2147483647;无符号范围:0 到 4294967295 |
数值类型 | BIGINT | 字节数:8;有符号范围:-9223372036854775808 到 9223372036854775807;无符号范围:0 到 18446744073709551615 |
数值类型 | FLOAT | 字节数:4;范围:大约 -3.402823466E+38 到 -1.175494351E-38、0 和 1.175494351E-38 到 3.402823466E+38 |
数值类型 | DOUBLE | 字节数:8;范围:大约 -1.7976931348623157E+308 到 -2.2250738585072014E-308、0 和 2.2250738585072014E-308 到 1.7976931348623157E+308 |
数值类型 | DECIMAL(M,D) | 字节数:取决于 M 和 D;范围:依赖于精度 M 和标度 D。M 是最大位数,D 是小数点后的位数。 |
日期和时间类型 | DATE | 范围:’1000-01-01’ 到 ‘9999-12-31’;格式:YYYY-MM-DD |
日期和时间类型 | TIME | 范围:’-838:59:59’ 到 ‘838:59:59’;格式:HH:MM:SS |
日期和时间类型 | DATETIME | 范围:’1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’;格式:YYYY-MM-DD HH:MM:SS |
日期和时间类型 | TIMESTAMP | 范围:’1970-01-01 00:00:01’ UTC 到 ‘2038-01-19 03:14:07’ UTC;格式:YYYY-MM-DD HH:MM:SS |
日期和时间类型 | YEAR | 范围:1901 到 2155;格式:YYYY |
字符串类型 | CHAR(M) | 最大长度:M 字节,M 范围为 0 到 255 |
字符串类型 | VARCHAR(M) | 最大长度:M 字节,M 范围为 0 到 65535 |
字符串类型 | TINYTEXT | 最大长度:255 字节 |
字符串类型 | TEXT | 最大长度:65535 字节 |
字符串类型 | MEDIUMTEXT | 最大长度:16777215 字节 |
字符串类型 | LONGTEXT | 最大长度:4294967295 字节 |
字符串类型 | BINARY(M) | 最大长度:M 字节,M 范围为 0 到 255 |
字符串类型 | VARBINARY(M) | 最大长度:M 字节,M 范围为 0 到 65535 |
字符串类型 | TINYBLOB | 最大长度:255 字节 |
字符串类型 | BLOB | 最大长度:65535 字节 |
字符串类型 | MEDIUMBLOB | 最大长度:16777215 字节 |
字符串类型 | LONGBLOB | 最大长度:4294967295 字节 |
枚举和集合类型 | ENUM(‘value1’,’value2’,…) | 最大元素数量:65535 个不同的值 |
枚举和集合类型 | SET(‘value1’,’value2’,…) | 最大元素数量:64 个不同的值 |
模糊匹配
sql中出现模糊匹配字符 使用’_‘作为一个字符的模糊匹配
注释
DDL 数据库操作
1
2
| show databases;
# 查询所有数据库
|
1
2
| select database();
# 查询当前数据库
|
1
2
| create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则]
# 创建
|
1
2
| drop database [if exists]
# 删除
|
DDL表查询
DDL表创建
1
2
3
| create table 表(
id(字段) int(类型) comment (注释),
);
|
DDL表修改
添加字段
1
| alter table 表名 add 字段名 类型(长度) comment
|
修改数据类型
1
| alter table 表名 modify 字段名 新数据类型(长度);
|
修改字段名和字段类型
1
| alter table 表名 change 旧字段名 字段名 数据类型(长度);
|
删除字段
1
| alter table 表名 drop 字段名;
|
重命名
1
| alter table 表名 rename to 字段名;
|
DML 对数据增删改查
增加
指定字段
1
| insert into 表名(指定字段) values 值;
|
全部增加
1
| insert into 表名 values 值; 顺序需要对应
|
融合进阶版本(一个效果,添加多条数据)
1
2
| insert into 表名 values 值,值,值; 顺序需要对应
insert into 表名(指定字段) values 值,值,值; 顺序需要对应
|
修改
1
2
| updata 表名 set 字段 = 值 , 字段1 = 值 [where 条件]
# 若不带where 则是全部数据
|
删除
1
| delete from 表名 [where 条件]
|
DQL数据查询
基本查询
1
2
3
| select 字段[as 别名] from 表名 #查询出来的属性值就是别名 别名就是自己定义的名字
select * from 表名 #全部属性
select distinct 字段 from 表名 #不相同的值的返回
|
条件查询 (where关键字)
1
| select 字段 from 表名 where 条件列表
|
条件列表如图
聚合函数
分组查询
1
| select 字段 from 表名 where ... group by 字段 having ...
|
having 与 where 区别
![区别] (https://github.com/rocky-lxj/rocky-lxj.github.io/raw/main/src/img/mysql/havingwhere.png)
排序查询
字段 升降序 升序 asc 降序 desc
1
2
| select 字段 from 列表 order by
情况一 情况二
|
分页查询
1
| select 字段 from 表名 limit 起始,查询记录数
|
起始索引 = (查询页码-1)*每页记录数 查询第一页数据,直接写第二个参数
执行顺序