数据库MySQL

数据类型

1.数字

类型大小说明
TINYINT1字节小整数
SMALLINT2字节普通整数
MEDIUMINT3字节普通整数
INT4字节较大整数
BIGINT8字节大整数
FLOAT4字节单精度浮点数
DOUBLE8字节双精度浮点数
DECIMAL(10,2)......精确浮点数

2.不精确的浮点数

不精确的浮点数是由于其表示方式、二进制浮点数的精度限制、舍入误差、运算顺序的影响以及机器精度的限制所导致的。在使用浮点数时,需要了解其不精确性,并在必要时采取适当的措施来减少误差。

3.字符串

类型大小说明
CHAR1~255字符固定长度字符串
VARCHAR1~65535字符不固定长度字符串
TEXT1~65535字符不确定长度字符串
MEDIUMTEXT1~1千6百万字符不确定长度字符串
LONGTEXT1~42亿字符不确定长度字符串

4.日期类型

类型大小说明
DATE3字节日期
TIME3字节时间
YEAR1字节年份
DATETIME8字节日期时间
TIMESTAMP4字节时间戳

修改表结构

1.添加字段

ALLTER TABLE 表名称

        ADD 列1 数据类型 [约束] [COMMENT 注释],

2.修改字段属性

ALLTER TABLE 表名称

        MODIFY 列1 数据类型 [约束] [COMMENT 注释],

3.修改字段名字

ALLTER TABLE 表名称

        CHANGE 列1 新列名1 数据类型 [约束] [COMMENT 注释],

4.删除字段

ALLTER TABLE 表名称

        DROP 列1,

字段约束

1.范式

构造数据库必须遵守一定的规则,这种规则就是范式

目前关系数据库有6种范式,一般情况下,只满足第三范式即可

①第一范式:原子性

数据表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能存在重复的属性。

学号姓名班级不符合第一范式
1000张三高三年纪1班

学号姓名年纪班级符合第一范式
1000张三高三年纪1班

②第二范式:唯一性

数据表中的每条记录必须是唯一的。为了实现区分,通常要为表加上一个列用来存储唯一标识,这个唯一属性列 被称作主键列。

学号成绩日期无法区分重复数据
10009020241204
10009020241204

学号成绩日期数据具有唯一性
10009020241204
10019020241204

③第三范式:关联性

每列都与主键有直接关系,不存在传递依赖。

依照第三范式,数据可以拆分保存到不同的数据表,彼此保存关联。

编号姓名性别部门入职日期
1张三0120241204
2李四0320241204

编号部门电话
01财务部02021
02销售部02022
03安保部02023

2.约束

MySQL中有四种约束:主键约束(PRIMARY KEY)、非空约束(NOT NULL)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)

主键约束

主键约束要求字段的值在全表必须唯一,而且不能为NULL值

建议主键一定要使用数字类型,因为数字的检索速度会非常快

如果主键是数字类型,还可以设置自动增长

CREATE TABLE 表名称(

        列名 类型 PRIMARY KEY AUTO_INCREMENT,

);

非空约束

非空约束要求字段的值不能为NULL值

NULL值以为没有值,而不是" "空字符串

CREATE TABLE 表名称(

        列名 类型 PRIMARY KEY AUTO_INCREMENT,

        列名 类型 NOT NULL,

        列名 BOOLEAN NOT NULL DEFAULT FALSE

);

唯一约束

唯一约束要求字段值如果不为NULL,那么在全列必须唯一

CREATE TABLE 表名称(

        列名 类型 NOT NULL UNIQUE

);

外键约束

外键约束用来保证关联数据的逻辑关系。

外键约束的定义是写在子表上。

如果形成外键闭环,我们将无法删除任何一张表的记录

索引机制

创建索引

CREATE TABLE 表名称(

        .........

        INDEX [索引名称](字段),

        .........

);

添加和删除索引

创建索引: CREATE INDEX 索引名称 ON 表名(字段);

添加索引: ALTER TABLE 表名称 ADD INDEX [索引名](字段);

查询索引:SHOW INDEX FROM 表名;

删除索引: DROP INDEX 索引名称 ON 表名;

索引使用规则

数据量很大,而且经常被查询的数据表可以设置索引

索引只添加在经常被用作检索条件的字段上面

不要在大字段上创建索引

分页查询

语法结构:SELECT ...... FROM ...... LIMIT 起始位置,偏移量;

如果LIMIT子句只有一个参数,它表示的是偏移量,起始值默认为0。

SELECT name as "题库名称" from question_bank;  是将name名称替换为题目名称

查询结果集排序

如果没有设置,查询语句不会对结果集进行排序。也就是说,如果想让结果集按照某种顺序排列,就必须使用 ORDER BY子句

ASC代表升序(默认),DESC代表降序

如果排序列是数字类型,数据库就按照数字大小排序,如果是日期类型就按照日期大小排序,如果是字符串就按照

字符集序号排序 如果排序列值相同,默认按照主键排列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值