mysql表常见数据类型_MySQL 常见约束和常见数据类型

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'

点赞

收藏

分享

文章举报

5b8f6bc9fa4609a12b6ef2a0b2b48941.png

4a668feaa3018a2e1706f07e5002bcc8.png

weixin_43353748

发布了13 篇原创文章 · 获赞 0 · 访问量 170

私信

关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值