数据类型
数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
整形
- 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);
报错:
自动标号: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
);
记录数值
INSERT tb5(username,age) VALUES(‘Zc’,24);
此时如果在添加以 ‘Zc’ 为username的时候会报错,原因是以为唯一约束过了。
默认约束 DEFAULT
示例:
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的相关知识。