MySQL数据库基础操作(约束)

@数据库的基本操作:约束

MySQL数据库基础操作(约束)

约束:
1.主键约束(单字段主键,多字段主键)
2.外键约束
3.非空约束


4.唯一约束
5.默认约束
6.设置表的自动增长

主键约束:(PRIMARY KEY)
单字段主键:不能重复出现 
特点:唯一,非空


-- 创建表必须创建数据库进行连接


-- 创建单字段主键约束(可以有2种方式)


#第一种将id这个字段定义成该表主键,直接在字段后面添加primary key关键字

CREATE TABLE emp
(
	id INT PRIMARY KEY,
 	name VARCHAR(20),
	dept_id INT,
	salary FLOAT
);

效果图:

 

--查看表结构

​DESC emp;​

效果图:

-- 插入数据,验证主键

#第二种或者是在字段列表后面添加primary key(字段名)

CREATE TABLE emp_1
(
	id INT,
 	name VARCHAR(20),
	dept_id INT,
	salary FLOAT,
	PRIMARY KEY(id)
);

--查看表结构

DESC emp_1;

效果图:

多字段联合主键约束

: 不能完全一样,多个字段一样不可以

--多字段联合主键约束

	CREATE TABLE emp_2
(
	id INT ,
 	name VARCHAR(20),
	dept_id INT,
	salary FLOAT,
	PRIMARY KEY(id,name)
);	
-- 查看表结构
    DESC emp_2

效果图:

-- 外键约束
#在附表创建的语句中添加外键约束

语法格式:
	create table 表名
	(
    	字段1 类型,
   	 字段2 类型,
    	………….,
   	constraint 外键约束名 foreign key(外键字段名) 
    	references 关联主表(关联主表字段)
	);

例子

CREATE TABLE dept
(
	id INT PRIMARY KEY,
	name VARCHAR(20),
	location VARCHAR(50)
)ENGINE=InnoDB;

CREATE TABLE emp_3
(
	id INT PRIMARY KEY,
	name VARCHAR(20),
	dept_id INT,
	salary FLOAT,
	CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id)
)ENGINE=InnoDB;

-- 插入数据,验证主键
INSERT INTO emp_3 VALUES(1,'小明',4,5000);

INSERT INTO dept VALUES(4,'eee','广');

INSERT INTO emp_3 VALUES(1,'小明',4,5000);

--查看dept表

DESC dept;

效果图:

--查看emp_3表

DESC emp_3;

效果图:

-- 非空约束
# 当创建表时指定表的字段不能为空,可以使用非空约束,如果添加数据没有指定值,系统会报错

CREATE TABLE emp
(
	id INT PRIMARY KEY NOT NULL,
	name VARCHAR(20) NOT NULL,
	dept_id INT,
	salary FLOAT
);
-- 插入一条数据
INSERT INTO emp VALUES(1,'',4,5000);
INSERT INTO emp VALUES(1,NULL,4,5000);

效果图:

 

--唯一性约束
#当创建表时指定表的字段不能为空,可以使用非空约束,如果添加数据没有指定值,系统会报错

CREATE TABLE emp( 
   id INT PRIMARY KEY, 
   name VARCHAR(20)UNIQUE,  
  dept_id INT, 
   salary FLOAT
);  
-- 插入一条姓名null的语句
INSERT INTO emp_5 VALUES(1,'你好',4,5000);
INSERT INTO emp_5 VALUES(2,NULL,4,5000);
INSERT INTO emp_5 VALUES(3,'',4,5000)

效果图:

--默认约束
#在创建表时指定某一列默认值,如性别默认设置成“男”,在插入一条新记录时,可以不为该字段赋值,系统会字段赋值。

CREATE TABLE emp_6
(
	id INT PRIMARY KEY,
	name VARCHAR(20),
	dept_id INT,
	salary FLOAT DEFAULT 2500
);
 INSERT INTO emp_6 VALUES(1,'项目',4,null); 
 INSERT INTO emp_6(id, name,dept_id)VALUES(2,'得到',4);
  
-- 查看表
	SELECT * FROM emp_6;

效果图:

-- 属性值自动增长约束

#每次插入新记录,希望由系统生成自动增长主键值,可以添加AUTO_INCREMENT关键字来实现,添加该关键字的列必须是数字主键列

CREATE TABLE emp_7
(
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(20),
	dept_id INT,
	salary FLOAT 
);
  
INSERT INTO emp_7(name,dept_id)VALUES('得到',4);

效果图:

 

查看数据表结构

查看字段。字段类型,主键,默认值

 DESC/DESCRIBLE<表名>;

显示创建表的详细语句

 show create table <表名>;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值