5.1数据表的基本操作

对着背影说爱祢 提交于 2020-01-21 07:59:51

主键 外键 非空约束 唯一性约束 自增

unique和primary key的区别

  • 一个表中可以有多个字段声明为u’nique,但只能有primary key声明;
  • 声明为primary key的列不允许有空值,但是声明为unique的字段允许空值得的存在。

1数据库

 创建数据库
CREATE DATABASE pracitse;
-- 删除数据库
DROP DATABASE pracitse;

2数据表

创建一张父表

 创建数据表
USE pracitse;
CREATE TABLE pritsefather(
 -- id设为主键并自增
 id INT AUTO_INCREMENT,
 -- 设置姓名的唯一性
 NAME VARCHAR(20) UNIQUE,
 -- 设置性别的约束(要么男性或女性)
 -- check在mysql8.0版本以下都不适用,在mysql8.0及以上才有效。
 sex VARCHAR(2) CHECK(sex='男'OR sex='女'),
 address VARCHAR(20) NOT NULL,
 -- 设置一个默认值
 tel VARCHAR(4) DEFAULT '1111',
 -- 给一张表中设置两个主键
 CONSTRAINT PRIMARY KEY (id,NAME)
);
-- 删除数据表pritsefather;
DROP TABLE pritsefather;
-- 给父表添加数据
INSERT INTO pritsefather(NAME,sex,address) VALUES('xiaozhang','男','');
INSERT INTO pritsefather(NAME,sex,address) VALUES('xiaowang','男','月河镇');
-- 删除表中的一条数据
DELETE FROM pritsefather WHERE id=3;
-- 修改表中的数据
UPDATE pritsefather SET sex='女' WHERE id=2;
-- 查询数据表
SELECT * FROM pritsefather;

在这里插入图片描述

-- 删除数据父表
DROP TABLE pritsefather;

创建一张子表

-- 创建另外一张子表
CREATE TABLE pritseson(
-- pid设为主键并自增
 pid INT PRIMARY KEY AUTO_INCREMENT,
 id INT,
 tel VARCHAR(11) NOT NULL,
 -- 外键
 FOREIGN KEY(id) REFERENCES pritsefather(id)
);
-- 给字表中添加数据
INSERT INTO pritseson(id,tel) VALUES(1,15891097012),
				    (2,13978425142);
-- 删除数据表
DROP TABLE pritseson;
-- 修改数据表中的数据
UPDATE pritseson SET tel = '13478564522339' WHERE id = 1;

程序报错
在这里插入图片描述
因为修改的数据长度超过11位。
如下修改则正确。

-- 修改数据表中的数据
UPDATE pritseson SET tel = '13478564529' WHERE id = 1;
-- 查询数据表
SELECT * FROM pritseson;

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!