首页 > 数据库 >数据库(六)约束

数据库(六)约束

时间:2022-10-23 11:35:46浏览次数:40  
标签:ename insert 数据库 sex into 约束 主键

sql约束

概念

  • 对表中的数据进行进一步的限制

  • 保证数据的正确性、有效性、完整性

  • 违反约束的不正确数据无法插入到表中

  • 常见约束

    • 主键:PRIMARY KEY

    • 非空:NOT NULL

    • 唯一:UNIQUE

    • 默认:DEFAULT

    • 外键:FOREIGN KEY

主键约束

  • 主键:一列(或一组列),其值能够唯一标识表中每一行

  • 特点:不可重复,唯一,非空

  • 语法:列名 字段类型 PRIMARY KEY

create table emp2(eid INT ,ename VARCHAR ( 20 ),sex CHAR ( 1 ));
-- 查看数据库结构
desc emp2;
-- 通过ddl语句添加主键约束
alter table emp2 add primary key(eid);

自动增长

-- 创建主键自增的表
CREATE TABLE emp3 (
    eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 10 ),
sex CHAR ( 1 ));


desc emp3;

insert into emp3(ename,sex) values('张三','男');
insert into emp3(ename,sex) values('李四','男');
insert into emp3(ename,sex) values('王五','女');
insert into emp3(ename,sex) values('赵六','男');


-- 创建主键自增的表,并指定自增初始值
CREATE TABLE emp4 (
    eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 10 ),
sex CHAR ( 1 )
)auto_increment=100;


desc emp4;

insert into emp4(ename,sex) values('张三','男');
insert into emp4(ename,sex) values('李四','男');
insert into emp4(ename,sex) values('王五','女');
insert into emp4(ename,sex) values('赵六','男');

注意:

  • delete删除表数据的话,对自增没有影响,再添加数据还会按照原来的编号继续增加

  • truncate table 删除表的话,他会重新进行编号

删除主键约束

-- 删除主键约束
alter table emp drop PRIMARY KEY;

选择主键原则:

  • 针对业务设计主键,一般建议每张表都设计一个主键

  • 主键可以没有业务意义,但是要保证不重复

  • 主键不允许修改也不允许更新

唯一约束

  • 表中某一列的值不能重复

  • 对null不做唯一的判断

  • 语法:列名 字段类型 unique

CREATE TABLE emp (
    eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 20 ) UNIQUE,
sex CHAR ( 1 ));


desc emp;

主键约束和唯一约束的区别:

  1. 主键约束唯一且不为空

  2. 唯一约束唯一但可以为空

  3. 一个表中只能由一个主键约束,但可以有多个唯一约束

默认值约束

  • 用来指定某列的默认值

  • 语法:列名 字段类型 default 默认值

CREATE TABLE emp (
    eid INT PRIMARY KEY auto_increment,
ename VARCHAR ( 20 ) ,
sex CHAR ( 1 ) default '女');


desc emp;


insert into emp(ename,sex) VALUES('小张',DEFAULT);
insert into emp(ename) VALUES('小');
-- 不使用默认值
insert into emp(ename,sex) VALUES('小王','男');

标签:ename,insert,数据库,sex,into,约束,主键
From: https://www.cnblogs.com/joker108/p/16818202.html

相关文章

  • 数据库(三)DML
    DML操作语言插入语法格式:示例:--选择数据库为当前数据库USEhogwarts_stu;--创建表CREATETABLEuser(idint,namevarchar(20),ageint,sexchar(1......
  • 数据库(一)
    数据库基本概念是一个以某种有组织的方式存储的数据集合是存储和管理数据的仓库本质是一个文件系统DBMS(数据库管理系统)数据库分类关系型数据库(RDB)有关系......
  • Django-静态文件配置,链接数据库,request对象方法
    目录-静态文件配置--含义--配置方法--动态解析---含义---实现---示例-pycharm链接MySQL-Django链接MySQL--代码配置--代码声明-request对象常用方法--示例......
  • SpringBoot 创建项目连接mysql数据库
    Spring 创建项目1.创建一个springboot项目2.点击File---- New---- project项目名称可以随便填写...3. Springboot版本尽量不要最新版,怕你们驾驭不了......
  • MySQL - 数据库配置参数、性能优化教程
     将 MySQL 部署到普通的 X86 服务器上,在不经过任何优化情况下,MySQL 理论值正常可以处理 2000 左右 QPS。不过当访问量达到 1500 左右并发连接时,数据库处理性能......
  • 一款开源的数据库在线预览、导出工具
    database-export是一款多线程生成数据库结构文档的开源springboot工程,能支持最新的数据库版本,可以导出docx格式和xlsx的文档,也能直接在网页上预览项目使用技术JDK1.8VUE2.0E......
  • 二、postgresql 14为数据库配置ssl支持,创建sslinfo扩展
    1、配置SSL创建自签名证书opensslreq-new-x509-days365-nodes-text-outserver.crt-keyoutserver.key-subj"/CN=cdh01"chmodog-rwxserver.key创建一个证书签......
  • Linux、数据库、Redis、MongoDB统一管理平台!
    #一、开源项目简介基于DDD分层实现的web版linux(终端文件脚本进程)、数据库(mysqlpostgres)、redis(单机集群)、mongo统一管理操作平台# 二、开源协议使用Apache-2.0......
  • 优化 WordPress 数据库,提高 WordPress 速度
    WordPress的机制是主要使用wp_posts表来存储所有数据,包括日志,页面,附件,导航菜单等等,所以WordPress使用了一定时间之后,数据量一大还是有点慢,除了对WordPress进行全方......
  • 如何给一个 HTAP 数据库做基准测试?StoneDB学术分享会第4期
    在最新一届国际数据库顶级会议ACMSIGMOD2022上,来自清华大学的李国良和张超两位老师发表了一篇论文:《HTAPDatabase:WhatisNewandWhatisNext》,并做了《HTAP......