MySQL之数据类型,建表以及约束

1.回顾MySQL入门

2.MySQL数据类型介绍

MySQL中定义数据字段的类型对数据库的优化非常重要

MySQL支持多种类型,大致分为三类:数值,日期/时间和字符串(字符)

①字符类型:char,varchar,text,blob

②数值类型:int,bigint,float,decimal

③日期类型:data,time,datetime,timestamp

date:   yyyy:MM:dd      HH:mm:ss

time:   HH:mm:ss

datetime:    yyyy:MM:dd

timestemp(时间戳):   长整数

3.建表

建表

create table book(
id int,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期
)

表的修改

alter table 表名 add/drop/modify/change column 列名【列类型,列约束】

 修改列名

alter table book change column publishdate pubDate datetime;
alter table book_chinese change column author writer varchar(20);

修改列名的类型或约束

alter table book change column pubdate timestamp;

添加新列

alter table book add column annual double;

删除列

alter table book drop column annual;

 修改表名

alter table book rename to book_chinese;

表的删除

drop table if exists book_chinese;

#通用的写法
drop datebase if exists library;

 查询数据库里所有的表

show tables;

表的复制

where 1=1:复制表结构及内容

where 1=2:复制表结构

如果只需要复制部分列,将  *  替换为需要的列名 

create table book_chinese as select * from book_math where 1=1;

4.六大约束

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

NOT NULL :非空,用于保证该字段的值不能为空比如姓名、学号等

DEFAULT  :默认,用于保证该字段有默认值比如性别

PRIMARY KEY  :主键,用于保证该字段的值具有唯一性,并且非空比如学号、员工编号等

UNIQUE  :唯一,用于保证该字段的值具有唯一性,可以为空比如座位号

CHECK  :检查约束【mysql中不支持】比如年龄、性别

FOREIGN KEY  :外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的

值在从表添加外键约束,用于引用主表中某列的值比如学生表的专业编号,员工表的部门编号,员

工表的工种编号
 

列级约束

第一种写法

create table book(
id int primary key,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期
)

第二种写法

create table book(
id int,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期

primary key(id);
)

 表级约束

create table book(
id int,#编号
bname varchar(20),#书名
price FLOAT,#价格
author int,#作者
publishDate varchar(20)#出版日期

constraint pk primary key(id),

constraint uq unique (bname),

)

修改表时添加约束

添加列级约束

alter table 表名 modify column 字段名 字段类型 新约束;

添加表级约束

alter table 表名 add 【constraint 约束名】 约束类型(字段名)【外键的引用】;

1.添加非空约束
ALTER TABLE MODIFY COLUMN bname VARCHAR(20) NOT NULL;

2.添加默认约束
ALTER TABLE book_chinese MODIFY COLUMN price INT DEFAULT 18;

3.添加主键

①列级约束
ALTER TABLE book_chinese MODIFY COLUMN id INT PRIMARY KEY;

②表级约束
ALTER TABLE book_chinese ADD PRIMARY KEY(id);

4.添加唯一

①列级约束
ALTER TABLE book_chinese MODIFY COLUMN bname INT UNIQUE;

②表级约束
ALTER TABLE book_chinese ADD UNIQUE(bname);


5.添加外键
ALTER TABLE book_chinese ADD CONSTRAINT library_book_chinese_major FOREIGN KEY(majorid) REFERENCES major(id);

修改表时删除约束


1.删除非空约束
ALTER TABLE book_chinese MODIFY COLUMN bname VARCHAR(20) NULL;

2.删除默认约束
ALTER TABLE book_chinese MODIFY COLUMN price INT ;

3.删除主键
ALTER TABLE book_chinese DROP PRIMARY KEY;

4.删除唯一
ALTER TABLE book_chinese DROP INDEX bname;

5.删除外键
ALTER TABLE book_chinese DROP FOREIGN KEY library_book_library_major;

SHOW INDEX FROM book_chinese ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宝的宝呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值