MySQL 常见约束和常见数据类型
常见约束
/*
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
create table 表名(
字段名 字段类型 约束,
字段名 字段类型 列级约束
表级约束
)
分类:
not null 非空
unique 唯一
default 默认,该字段有默认值
priamry key 主键,主码 唯一,非空
foreign key 外键 用于限制两个表的关系的
references
用于保证该字段的值必须来自于主表的关联列的值
check 检查约束【mysql不支持,其他都支持】
添加的时机
1.创建表
2.修改表
添加分类:
列级约束:unique,not null,check,(foreign key 没有效果),primary key,default
表级约束:除了非空、默认
*/
一.创建表示添加约束
#1.列级约束
CREATE DATABASE students;
USE students;
CREATE TABLE student(
id INT PRIMARY KEY,
NAME VARCHAR(10) NOT NULL,
gender CHAR(1) CHECK(gender='男' OR gender='女'),
seat INT UNIQUE,
age INT DEFAULT 18
);
CREATE TABLE aa(
id INT PRIMARY KEY,
NAME VARCHAR(10) NOT NULL
);
SHOW INDEX FROM student;
#2.修改表时添加约束
/*
1.添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束
2.添加表级约束
alter table 表名 add 约束类型(字段名)
*/
#标识列
/*
又称自增长列
/*
#1.创建表时设置标识列
auto_increment
DROP TABLE IF EXISTS tab
CREATE TABLE tab(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10)
);
INSERT INTO tab(NAME) VALUES(‘gjy’);
SELECT * FROM tab;
#查询标识列
SHOW VARIABLES LIKE '%auto_increment%';
#设置步长
SET auto_increment_increment=3;
常见的数据类型
/*
数值型:
整型
小数
定点数
浮点数
字符型:
较短的文本:char,varchar
较长的文本:text,blob(较长的二进制数据)
日期型
/
#一、整型
/
分类:
tinyint,smallint,mediumint,int/integer,bigint
字节12 3 4 8
特点:
1.默认为有符号,(unsigned 有符号)
2.如果超出范围,会报out of range 异常,并且插入临界值
3.有默认长度
*/
#1.如何设置无符号和有符号
CREATE TABLE bb(
t1 INT
t3 INT(7) ZEROFILL #如果不够 左面0填充
t2 INT UNSIGNED
);
#二、小数
/*
浮点型:
float
double
定点型:
dec(M,D)
decimal(M,D)
*/
#三、字符型
/*
较短的文本:
char,varchar
较长的文本:
text,blob
enum() 一次只能插入一个
set() 一次可以插入多个
*/
#四、日期型
/*
date
datetime
timestamp
time
year
*/
CREATE TABLE tab_date(
t1 DATETIME,
t2 TIMESTAMP
);
INSERT INTO tab_date() VALUES(NOW(),NOW());
SELECT * FROM tab_date;
#查询时区
SHOW VARIABLES LIKE 'time_zone';
#设置时区
SET time_zone='+9:00'
点赞
收藏
分享
文章举报
weixin_43353748
发布了13 篇原创文章 · 获赞 0 · 访问量 170
私信
关注