SQL - 进阶语法(二)约束

1. SQL约束

约束用于约束表中的数据规则,如若存在违反行为,行为会被约束终止。

• NOT NULL

确保列不能有NULL值

如果添加一行新的数据,不能有null值,否则无法添加

新建表格

CREATE TABLE new_table(
ID int NOT NULL,
NAME varchar(255) NOT NULL
);

修改

ALERT TABLE new_table
MODEIFY ID int NULL/NOT NULL;

• UNIQUE

确保列中所有值都是唯一

在所设定UNIQUE约束的列中不能含有重复值,但可以是NULL值

新建表格

CREATE TABLE new_table(
ID int NOT NULL UNIQUE,
LastName VARCHAR(255) NOT NULL
);

修改

ALERT TABLE new_table
ADD UNIQUE (ID); //添加
DROP INDEX ID; //删除

• PRIMARY KEY

唯一标识记录,相当于UNIQUE与NULL的结合

每一个表只能有一个PRIMARY KEY,可以由单个列或者多个列组成

表格创建

CREATE TABLE new_tabel
(
ID INT NOT NULL PRIMARY KEY | ID INT, PRIMARY KEY(ID)
LastName varchar(255)
);

多列约束

CREATE TABLE new_table
(
CONSTRAINT PERSONID PRIMARY KEY (ID,LastName)
);

修改&删除

ALERT TABLE new_table
DROP PRIMARY KEY column1;
ALERT TABLE new_table
DROP CONSTRAINT PERSONID;

• FOREIGN KEY

建立两表之间的关系

一个表中的FOREIGN KEY连接着另一个表中的UNIQUE KEY

- 预防破坏表之间的连接行为

- 防止非法数据插入外键列

新建表格

CREATE TABLE new_table(
FOREIGN KEY id REFREENCES old_table(ID) //连接old_table表中ID主键
)
CREATE TABLE new_table(
Id INT FOREIGN KEY REFERENCES old_table(name)
);

修改

ALERT TABLE
ADD FOREIGN KEY (ID)
REFERENCES old_table(name);
ALERT TABLE new_table
DROP FOREIGN KEY ID;

• CHECK

确保列中的值满足特定的条件,限制值的范围

新建表格

CREATE TABLE new_table
(
ID INT NOT NULL,
CHECK (ID > 0)
);
CREATE TABLE new_table
(
ID INT CHECK (ID>0)
);

修改&删除

ALERT TABLE new_table
ADD CHECK (ID>0);
ALERT TABLE new_table
DROP CHECK ID;

• DEFAULT

设置默认值,新创建的数据没有规定值,则会填充默认值

新建表格

CREATE TABLE new_table
(
ID INT NOT NULL,
NAME VARCHAR(255) DEFAULT ‘LOUIS’
);

修改

ALERT TABLE new_table
ALTER NAME DROP DEFAULT;

• INDEX

用于快速访问数据库表中的数据

CREATE INDEX index_name
ON table_name (column_name);

2. SQL删除数据

•删除索引

DROP INDEX index_name ON table_name;

•删除表格

DROP TABLE table_name;

•删除数据库

DROP DATABASE database_name;

删除表中数据,但表仍然存在

TRUNCATE TABLE table_name;

3. 操作表中数据

ALERT对表中列进行操作

3.1 增加列

ALERT TABLE table_name
ADD column_name datatype;

3.2 删除列

ALTER TABLE table_name
DROP COLUMN column_name;

3.3 修改数据约束

ALTER TABLE table_name
ALERT/MODIFY COLUMN column_name datatype; 

4. 自动索引 AUTO INCREMENT

新纪录插入表中时,自动创建主键的值

在这里只讲述MySql中的用法

CREATE TABLE new_table
(
ID INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(255)
);

默认值为1

自行设置默认值

ALERT TABLE new_table
AUTO_INCREMENT = 100;
INSERT INTO new_table (Name)
VALUES (‘LOUIS’); //插入新值,索引+1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146771.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)

目录: 自动化持续集成 (1)环境准备 (2)初始化 Jenkins 插件和管理员用户 (3)工作流程 (4)配置 Jenkins 构建工具 自动化持续集成 互联网软件的开发和发布&#xf…

zynq中断

通用中断控制器的作用: 它是一个中央处理中心,用于管理来自处理器核心(PS)和外设(PL)的中断。它可以启用、禁用、屏蔽和设置中断源的优先级。 中断处理流程: 所有中断源首先被集中到控制器。控…

AI模型对比研究员创意

大语言模型可以接受训练,完成许多任务。其中最广为人知的用途之一是作为生成式人工智能:当收到提示或被问到问题时,它们可以生成文本作为答复。例如,公开的大语言模型 ChatGPT 可以根据用户输入生成文章、诗歌和其他文本形式。 任…

C语言题目之单身狗2

文章目录 一、题目二、思路三、代码实现 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 二、思路 第一步 在c语言题目之打印单身狗我们已经讲解了在一组数据中出现一个单身狗的情况,而本道题是出现两个单身狗的情况。根据一个数…

查询 B 站注册时间

有时候想看看自己玩 B 站多少年了,想知道自己什么时候注册的。 此外,据说注销 B 站账户的话也得提供详细注册日期。 ‍ 通过创作中心查看 登录网页版 B 站,点击右上角的创作中心,然后就能看到在 B 站多少天了: ​…

基于JAVA+SpringBoot+Vue的医院资源管理系统

基于JAVASpringBootVue的医院资源管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈…

Qt开发技巧(七)动态换图,QVideoWidget视频闪烁,Qt日志打印,系统消息处理,编译前后的操作,QSettings配置文件,屏幕自适应

1.动态换图 Qt开发时,有时候我们在界面上需要动态的切换图片,比如接到来自底层驱动的信号分成告警信号,正常信号,危险信号,在界面上使用QLabel通过贴图来表示不同的信号,这时候尽量使用setStyleSheet()&…

和可被k整除的子数组问题

目录 一题目: 二思路: 三代码: 一题目: leetcode链接:. - 力扣(LeetCode) 二思路: 思路:前缀和第二种表示方式即循环列出方式同余定理取模修正: 还是通…

这可能又是一款 Java 程序员的必备插件了,无需解压直接编辑修改 jar 包内文件,神器!(附源码)

作为一名 Java 程序员,在维护一些古老的程序时,可能会遇到这种情况:项目依赖的 jar 包过于久远,已经没有源码了,但是有不得不修改的 bug 要处理。这时候就得想办法反编译 jar 包进行修改,并且重新打包&…

Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版调用链

文章目录 CC1链的第二种方式-LazyMap版调用链LazyMap构造payloadCC1的调用链 系列篇其他文章,推荐顺序观看~ Java反序列化利用链篇 | JdbcRowSetImpl利用链分析Java反序列化利用链篇 | CC1链_全网最菜的分析思路Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版…

网站设计中安全方面都需要有哪些考虑

网站设计中的安全性是一个多方面的问题,需要从多个角度进行考虑和实施。以下是一些关键的安全考虑因素: 数据加密: 使用SSL(安全套接字层)证书来建立加密连接,确保数据在传输过程中不被截获。定期更新SSL证…

低空经济火爆,稀缺无人机教员培训详解

随着科技的飞速发展和低空经济的日益火爆,无人机技术已广泛应用于航拍、农业、物流、救援、环境监测等多个领域,成为推动社会经济发展的新引擎。然而,无人机行业的快速发展也催生了对专业无人机教员的迫切需求。本文将从基础理论学习、实操技…

制造业缺陷检测

制造业缺陷检测是一种在生产过程中检测和识别产品缺陷的技术。它旨在确保产品质量符合制定的标准,从而减少浪费、提高生产效率,并保证最终产品的安全性和可靠性。这种检测通常使用各种技术手段,包括但不限于: 视觉检测系统&#…

静态链表:实现、操作与性能优势【算法 16】

静态链表:实现、操作与性能优势 在算法和数据结构的探索中,链表作为一种基础且灵活的数据结构,广泛应用于各种场景。然而,在算法竞赛或需要高效内存管理的环境中,传统的动态链表可能会因为内存分配和释放的开销而影响性…

爆痘的分级和相应的处理

痘痘的分级 轻度 一级 无炎症性,粉刺总数不超过30个,有少量丘疹和脓疱中度 二级/三级 皮肤表面出现炎性丘疹损害,病损数为30-50个有中等数量的丘疹、脓疱 皮肤炎性损害加重,有大量丘疹和脓疱,并且伴有结节在三个以内,病损数为50-100个重度 四级 除炎性皮疹外,结节与囊肿为主…

SFUD库移植

1.源码 GitHub - armink/SFUD: An using JEDECs SFDP standard serial (SPI) flash universal driver library | 一款使用 JEDEC SFDP 标准的串行 (SPI) Flash 通用驱动库 2.介绍 这个通用驱动库,实际就是帮你封装好了读写spiflash的函数, 我们只需要对接以下底层,就可以轻松…

助力降糖新品“五菌膏”上市 科技特派员秋季行硕果累累

近日,武汉市“科技助力乡村振兴科技特派员秋季行活动”在武汉举行,此次活动由长江新区管委会、市科创局、武汉轻工大学主办,长江新区科技创新与成果转化局、武汉市科技成果转化促进中心、武汉市科技特派员创新联盟承办。 9月19日,…

VM虚拟机下载以及激活

传统的官网已经找不到下载了,这里我将下载好的放在阿里云盘,百度云盘太慢了,懂得都得 阿里云盘分享 下载好了后会是一个exe文件,直接双击运行就可 下载无脑下一步即可,这里不做介绍 下载好了后,需要密钥这里…

免费的AI测肤

AI测肤 https://beifuting.com/

实用好软-----电脑端 全能音视频转换器 转换各种音视频格式

软件介绍: 工具是一款免费的视频格式转换软件,支持几乎所有视频格式的转换,基本的有DVD, AVI, MP4, 3GP, WMV, ASF等格式。对于一些特殊格式的视频,不用担心看不到,除了保证转换质量,还能转换为你想要的类…