文章

数据库

数据库

sql启动

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中出现模糊匹配字符 使用’_‘作为一个字符的模糊匹配

1
like '_'

注释

1
2
单行注释 --
多行注释 /* */

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表查询

1
2
show tables
#查询所有表
1
2
desc 表名:
#查询表结构

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数据查询

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)*每页记录数 查询第一页数据,直接写第二个参数

执行顺序

顺序

本文由作者按照 CC BY 4.0 进行授权