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

目录

一、数据类型介绍

1.字符类型:char  varchar  text  blob(二进制) 

2.数值类型:int  bigint  float  decimal(货币类型)

3.日期/时间:date time datetime timestamp

二、建表、修改、删除、复制表及查看表结构语法        

1.表的创建🔑

2.查看表结构

3.表的修改

4.表的删除

 5.查看同库所有表

6.表的复制

 三、约束的使用

1.约束的含义:

2.分类 :六大约束

3.添加约束的时机以及分类 

4.创建表时添加约束

5.修改表时添加约束 


一、数据类型介绍

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

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

1.字符类型:char  varchar  text  blob(二进制) 

char-->短字符(男|女)String

varchar-->长字符  String

text-->长文本类型

2.数值类型:int  bigint  float  decimal(货币类型)

  bigint-->相当于Java中的long类型

  Decimal-->double类型

3.日期/时间:date time datetime timestamp

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

time-->HH:mm:ss

datetime-->yyyy:MM:dd

timestamp(时间戳)-->长整数


二、建表、修改、删除、复制表及查看表结构语法        

1.表的创建🔑

语法:

create table 表名(

列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
...
列名 列的类型【(长度) 约束】

 案例:

 create table tb_test_book(
id INT,#编号
bName VARCHAR(20),#图书名
price DOUBLE,#价格
authorId INT,#作者编号
publishDate DATETIME#出版日期
)

2.查看表结构

语法:

DESC 表名

*案例及其运行结构看第一点 ☝

3.表的修改

语法:

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

 ①修改列名(change

ALTER TABLE tb_test_book(表名)  change column price(要改的列名) updPrice(改之后列名) double(及列类型);

 ②修改列的类型或者约束(modify

ALTER TABLE tb_test_book MODIFY COLUMN publishDate(需要修改的列) TIMESTAMP(需要改动的列类型) (时间戳); 

③添加新列(add

ALTER TABLE tb_test_book(表名) ADD COLUMN aaa(新增的列) DOUBLE(以及类型);

④删除列(drop

ALTER TABLE tb_test_book(表名) DROP COLUMN aaa(删除的列);

 

⑤修改表名(rename  to

 ALTER TABLE tb_test_book(表名) RENAME TO book_author(需要修改的表名);

  

4.表的删除

语法:

DROP TABLE IF EXISTS(表名);

通用的写法:

数据库: 

DROP DATABASE IF EXISTS 旧库名;
CREATE DATABASE 新库名;
​表:
DROP TABLE IF EXISTS 旧表名;
CREATE TABLE 表名();

 5.查看同库所有表

语法:

SHOW TABLES;

6.表的复制

①复制表的结构+数据

语法:

create table tb_test_book_copy(复制后表名) as select * from tb_test_book(需要复制的表);

②复制表的结构

语法:

CREATE TABLE copy(复制后的表) LIKE 复制的表;

③ 复制表的结构+数据,只要相关列

语法:

CREATE TABLE copy(复制后的表) as select 需要的列 from 复制的表;


 三、约束的使用

1.约束的含义:

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

2.分类 :六大约束

NOT NULL非空用于保证该字段的值不能为空
比如姓名、学号等
DEFAULT:默认用于保证该字段有默认值
比如性别
PRIMARY KEY:主键用于保证该字段的值具有唯一性,并且非空
比如学号、员工编号等
UNIQUE:唯一用于保证该字段的值具有唯一性,可以为空
比如座位号
CHECK:检查约束mysql中不支持
比如年龄、性别
FOREIGN KEY:外键用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值  .在从表添加外键约束,用于引用主表中某列的值
比如学生表的专业编号,员工表的部门编号,员工表的工种编号

CREATE TABLE 表名(
id INT PRIMARY KEY,     ----------------主键
stuName VARCHAR(20) NOT NULL UNIQUE,      -----------非空
gender CHAR(1) CHECK(gender='男' OR gender ='女'),      -------检查
seat INT UNIQUE,   ---------唯一
age INT DEFAULT 18,   ------------ 默认约束
majorId INT REFERENCES major(id)    ------------外键
);

3.添加约束的时机以及分类 

(1)时机:

①创建表时
 ②修改表时

(2)分类:

①列级约束   :六大约束语法上都支持,但外键约束没有效果

 ②表级约束   :除了非空、默认,其他的都支持

4.创建表时添加约束

1.添加列级约束
语法:​

直接在字段名和类型后面追加 约束类型即可。

只支持:默认、非空、主键、唯一

2.添加表级约束
语法:

在各个字段的最下面【constraint 约束名】 约束类型(字段名)

5.修改表时添加约束 

1、添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束;

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

 另:主键和唯一的大对比:

         保证唯一性   是否允许为空      一个表中可以有多少个         是否允许组合
主键   √                         是                               ×至多有1个          √,但不推荐
唯一  √                           是                              √可以有多个        √,但不推荐

注意👇

外键:

1、要求在从表设置外键关系
2、从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求
3、主表的关联列必须是一个key(一般是主键或唯一)
4、插入数据时,先插入主表,再插入从表

🔑删除数据时,先删除从表,再删除主表 

结束了!!下期再见!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值