MySQL数据库(二)---数据类型、数据表、约束

时间:2022-09-21 11:06:11

数据类型

数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。

整形

  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • INT
  • BIGINT

浮点型

M是数字总位数 D是小数点后面的位数
M>=D

  • FLOAT[(M,D)] 单精度浮点数 浮点精确到大约7位小数
  • DOUBLE[(M,D)] 双精度浮点数

日期和时间型

  • YEAR 1
  • TIME 3
  • DATE 3
  • DATETIME 8
  • TIMESTAMP

字符型

  • CHAR(M) M个字节0 - 255 定长
  • VARCHAR(M) 0-65535 变长
  • TINYTEXT
  • TEXT
  • MEDIUMTEXT
  • LONGTEXT
  • ENUM(’value1‘,’value2’,….) 枚举值 最多65535个值
  • SET(’value1‘,’value2’,….)集合 最多64个成员

数据表

数据表是数据库最重要的组成部分之一,是其他对象的基础

创建数据表

模板:
CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,….);
示例:

CREATE TABLE tb1
(
username VARCHAR(20),
age TINYINT UNSIGNED,
salary FLOAT(8,2) UNSIGNED
);

查看数据表列表

模板:SHOW TABLES [FROM db_name]
示例:

SHOW TABLES FROM mysql;

查看数据表的结构

模板:SHOW COLUMNS FROM tbl_name;
示例:

SHOW COLUMNS FROM tb1;

插入记录 INSERT

模板:INSERT [INTO] tbl_name [(col_name,…)] VALUES(val,…);
示例:

INSERT tb1 VALUES ('Zc',25,7863.25);
INSERT tb1 (username,salary)VALUES ('Wy',4867.25);

记录查找 SELECT

模板:
SELECT expr,… FROM tbl_name;
示例:

SELECT * FROM tb1;   //*为字段的过滤

控制与非空

NULL,字段值可以为空
NOT NULL,字段值禁止为空
示例:

CREATE TABLE tb2
(
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);

此时写入
INSERT tb2 VALUES(‘TOM’,NULL);
是允许的
写入
INSERT tb2 VALUES(NULL,26);
报错:
MySQL数据库(二)---数据类型、数据表、约束

自动标号:AUTO_INCREMEN

自动编号字段必须和主键组合使用,主键不一定和自动编号组合使用。
示例:

错误的代码:

CREATE TABLE tb3
(
id SMALLINT UNSIGNED AUTO_INCREMENT,
username VARCHAR(30) NOT NULL
);

此时会报错 是因为没有主键,所以要添加一个主键才可以

正确的代码

CREATE TABLE tb3
(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL
);

主键约束和其他约束

主键:PRIMARY KEY

  • 主键约束
  • 每张数据表只能存在一个主键
  • 逐渐保证记录的唯一性
  • 逐渐自动为NOT NULL
  • 主键的字段是可以赋值的,但是不能赋值相同的值

UNIQUE KEY 唯一约束

  • 唯一约束
  • 唯一约束可以保证记录的唯一性
  • 唯一约束的字段可以为空值(NULL)
  • 每张数据表可以存在多个唯一约束

示例:

CREATE TABLE tb5
(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
age TINYINT UNSIGNED
);

MySQL数据库(二)---数据类型、数据表、约束

记录数值
INSERT tb5(username,age) VALUES(‘Zc’,24);
此时如果在添加以 ‘Zc’ 为username的时候会报错,原因是以为唯一约束过了。

默认约束 DEFAULTMySQL数据库(二)---数据类型、数据表、约束

示例:

CREATE TABLE tb6
(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
sex ENUM('1','2','3') DEFAULT '3'
);

此时添加数据:INSERT tb6(username) VALUES('ZC');
默认为sex设置为3

您将这篇文章读完了,谢谢你的关注,之后我还会陆续更新关于MySQL的相关知识。