MySQL数据库——表


创建表的语句
create table name (
name type default 约束 comment ,
name type default 约束 comment ,



)

name:字段名

  • 一般情况下,如果有多个单词构成,用下划线间隔

type:类型

  • int :整数类型
  • double(5,2) :长度为5位保留2位小数
  • char :长度不变 UUID 手机号 身份证号
  • varchar :长度不确定 姓名
  • blob :电影,图片
  • clob :小说

default:默认值

  • 添加数据的时候如果不指定值,则使用默认值

comment :设置注释

  • 为字段设置相关的注释,用于解释说明字段作用

约束:

  • 主键:不重复且不为null
  • unique:不重复,但可以多个null
  • not null
  • 外键:foreign key(name) references table_name(name)——保证数据完整性,不会产生无用的垃圾数据
  • check:MySQL数据不支持

主键约束(不重复且不为null):primary key

1.创建一个表

创建一个test表表中字段id,设置为主键约束

#创建一个test表
create table test(
# 字段id设置为主键约束
id int(11) primary key,
user_name varchar(12) unique,
password varchar(15) not null
)

创建的表

2.插入数据

向test表中的插入三条数据,id不为null且不重复

#向test表中插入三条数据
insert into test (id,user_name,password) values (1,'admin','123')
insert into test (id,user_name,password) values (2,'zhangsan','abc')
insert into test (id,user_name,password) values (3,'lisi','123456')

插入成功
插入数据后的表

3.主键约束字段插入重复数据

向表中插入重复的id

#表中已经存在一个id=2的数据
insert into test (id,user_name,password) values (2,'wangwu','111')

报错

insert into test (id,user_name,password) values (2,'wangwu','111')
> 1062 - Duplicate entry '2' for key 'PRIMARY'
> 时间: 0.001s

数据库中并没有成功插入数据
插入数据失败

4.主键约束字段插入null

# 向表中插入id=null的数据
insert into test (id,user_name,password) values (null,'zhaoliu','2222')

报错

insert into test (id,user_name,password) values (null,'zhaoliu','2222')
> 1048 - Column 'id' cannot be null
> 时间: 0.001s

数据库中没有成功插入数据
插入id=null时无法插入成功

外键约束

  • foreign key(name) references table_name(name)——保证数据完整性,不会产生无用的垃圾数据

unique

不重复,但可以多个null
使用前面创建的test表

  • 由于user_name的约束位unique,所以如果这里如果插入的数据的user_name相同,则只能插入第一条数据。
insert into test (id,user_name,password) values (4444,'admin','admin')

报错

insert into test (id,user_name,password) values (4444,'admin','admin')
> 1062 - Duplicate entry 'admin' for key 'user_name'
> 时间: 0.022s
  • 这里可以插入多个user_name为null的数据
insert into test (id,user_name,password) values (555,null,'123456')
insert into test (id,user_name,password) values (666,null,'123456')
insert into test (id,user_name,password) values (777,null,'123456')

结果
插入成功

not null

数据不能为null
使用前面创建的test表

  • 插入数据
insert into test (id,user_name,password) values (999,'Jim',null)

报错

insert into test (id,user_name,password) values (999,'Jim',null)
> 1048 - Column 'password' cannot be null
> 时间: 0.001s

check

  • MySQL数据不支持

注意

这里需要注意 关键字:null , 字符串:‘null’, 空字符串:’’, 空格字符串:’ '他们之间的区别

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35302939/article/details/89918246