MySQL之数据类型&建表&约束

一,数据类型

介绍:MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1)字符类型:char varchar text blob



2)数值类型:int bigint float decimal
int -> int
bigint -> long
float -> 成绩
decimal -> 货币类型(精度,小数)



3)日期类型:date time datetime timestamp
date -> yyyy:MM:dd HH:mm:ss
time -> HH:mm:ss
datetime -> yyyy:MM:dd
timestamp(时间戳) -> 长整数

二,建表

示例:

--建表
create table tb_book(
id int,
bname VARCHAR(20),
price double
)

--删除库&表
drop database if exists 旧库名; 
create database 新库名;
​
drop database if exists 旧表名;
create database 表名();


--查看表数据类型
desc tb_book

 三,表的修改

--修改book表的bname为uname,数据类型也改了
alter table tb_book change column bname uname VARCHAR(33);

--修改列类型或约束
alter table tb_book modify column pubdate TIMESTAMP

--添加新列(书籍数量)
alter table tb_book add column num int;

--删除列
alter table tb_book drop column num;

--修改表名
alter table tb_book rename to books

--复制表(想要改动原有表数据又怕出错,后续想要回退到之前的表设计)
create table tb_book_copy as select *from tb_book

--新建表,只想要某张表其中几个字段
create table tb_book_some as select id,bname from tb_book

--在项目开发阶段数据异常,需要正式数据(开发时使用数据≠投入使用时的数据),只保留表结构
create table tb_book_test as  select *from tb_book where 1=0
PS:where后填不成立的条件

--保留部分表结构
create table tb_book_test as  select id,bname from tb_book where 1=0

查看效果:

 四,约束

一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性

表级约束:


create table tb_stu(
id,int primary key,#主键约束
stuName VARCHAR(22) not null#非空约束
sex char(1) check(sex='男'or sex='女'),#检查约束(MySQL中不支持)
seat int unique,#唯一约束
age int default 18,#默认约束
majorId int references major(id)#外键约束
)

列级约束:


create table tb_stu(
id int,
stuName VARCHAR(22),
sex char(1),
seat int,
age int,
majorId int,

constraint pk primary key(id),#主键约束
constraint uq unique(seat),#唯一约束
constraint ck check(sex='男'or sex='女'),#检查约束(MySQL中不支持)
constraint tb_major foreign key(majorId) references major(id)#外键约束
)

 修改时添加约束:


#主键
alter table tb_stu modify column id primary key
alter table tb_stu add primary key(id)

#非空
alter table tb_stu modify column stuName VARCHAR(22) not null
#默认
alter table tb_stu modify column age int default 18

#唯一
alter table tb_stu modify column seat int unique 
alter table tb_stu add unique(seat)
#外键
alter table tb_stu add constraint tb_major foreign key(majorId) references major(id)

修改表时删除约束

alter table tb_stu modify column stuName VARCHAR(22) null#删除非空,即重新设置字段

alter table tb_stu modify column age int#删除默认,即重新设置字段

alter table tb_stu drop primary key(id)#主键

alter table tb_stu drop unique(seat)#唯一

alter table tb_stu drop foreign key tb_major#外键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值