MySQL—约束和分页(八)

1.NOT NULL约束

-- 1 NOT NULL 约束
-- 1.1 创建NOT NULL 约束
-- 1.1.2 为id添加非空约束,为name添加非空约束,并设置默认值
CREATE TABLE emp(
id INT(10) NOT NULL,
name VARCHAR(20) NOT NULL DEFAULT 'abc',
sex CHAR NULL
);
-- 1.2 增加NOT NULL 约束
-- 1.2.1 为sex添加非空约束
ALTER TABLE emp MODIFY sex CHAR NOT NULL;
-- 1.3 取消NOT NULL约束
-- 1.3.1 取消sex的非空约束
ALTER TABLE emp MODIFY sex CHAR NULL;
-- 1.3.2 取消sex的非空约束,并添加默认值
ALTER TABLE emp MODIFY name VARCHAR(20) DEFAULT 'ABC' NULL;

2.UNIQUE 约束

-- 2 UNIQUE 约束
-- 2.1 创建UNIQUE约束
CREATE TABLE USER(
id INT NOT NULL,
NAME VARCHAR(25),
PASSWORD VARCHAR(16),
#使用表级约束语法,表示用户名和密码组合不能重复
CONSTRAINT uk_name_pwd UNIQUE(NAME,PASSWORD)
);
-- 2.2 添加唯一约束
-- 2.2.1 添加组合唯一约束,约束名使用默认名字,即id
ALTER TABLE USER ADD UNIQUE(id, NAME);
-- 2.2.2 添加组合唯一约束,指定约束名为name_pwd
ALTER TABLE USER ADD CONSTRAINT name_pwd UNIQUE(NAME,PASSWORD);
-- 2.2.3 添加唯一约束,约束名使用默认名字:id
ALTER TABLE USER MODIFY id INT UNIQUE;
-- 2.3 删除唯一约束
ALTER TABLE USER DROP INDEX id_2;
-- 查看所有索引
SHOW INDEX FROM USER;

3.PRIMARY KEY 约束

-- 3 PRIMARY KEY 约束
-- 说明:相当于非空约束+唯一约束的组合,不允许重复也不允许空值。
-- 3.1 创建主键约束
-- 3.1.1 列级模式
CREATE TABLE emp4(
id INT AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20)
);
-- 3.1.2 表级模式
CREATE TABLE emp5(
id INT,
NAME VARCHAR(20),
PWD VARCHAR(15),
CONSTRAINT emp5_id PRIMARY KEY(id) 
);
-- 3.1.3 组合模式
CREATE TABLE emp6(
id INT,
NAME VARCHAR(20),
PWD VARCHAR(15),
CONSTRAINT emp5_NAME_PWD PRIMARY KEY(NAME,PWD) 
);
-- 3.2 删除主键约束
ALTER TABLE emp5 DROP PRIMARY KEY;
-- 3.3 添加主键约束
ALTER TABLE emp5 ADD PRIMARY KEY(NAME,PWD);
-- 3.4 修改主键约束(要先删除主键后才能执行)
ALTER TABLE emp5 MODIFY id INT PRIMARY KEY;

4.FOREIGN KEY 约束

-- 4 FOREIGN KEY 约束
-- 4.1 创建外键约束
-- 4.1.1 单一外键约束
CREATE TABLE dept(
dept_id INT AUTO_INCREMENT PRIMARY KEY,
dept_name VARCHAR(20)
);CREATE TABLE employee(
emp_id INT AUTO_INCREMENT PRIMARY KEY,
last_name VARCHAR(15),
dept_id INT,
CONSTRAINT employee_dept_id FOREIGN KEY(dept_id) REFERENCES dept(dept_id)
);
-- 4.1.2 组合外键约束
CREATE TABLE classes(
id INT,
name VARCHAR(20),
number INT,
PRIMARY KEY(name, number)
);
CREATE TABLE student(
id INT AUTO_INCREMENT PRIMARY KEY,
class_name VARCHAR(20),
class_number INT,
CONSTRAINT f_name_number FOREIGN KEY(class_name,class_number) REFERENCES classes(name, number)
);
-- 4.2 删除外键约束(只能删除那种指定名字的外键)
ALTER TABLE student DROP FOREIGN KEY f_name_number;
-- 删除KEY
ALTER TABLE student DROP INDEX f_name_number;
-- 4.3 增加外键约束
ALTER TABLE student ADD CONSTRAINT f_name_number FOREIGN KEY(class_name,class_number) REFERENCES classes(name, number);

5.CHECK 约束

CREATE TABLE customer(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
age INT CHECK(age > 20),
sex VARCHAR(4)
);
-- 不会有任何警告或提示
INSERT INTO customer(name,age)
VALUE("Jack",135);

6.limit实现分页

-- 6.1 查询前3条
SELECT * FROM customer LIMIT 0,3;
-- 或
SELECT * FROM customer LIMIT 3;
-- 6.2 从第3条开始(不包含第3条),往后查询4条
SELECT * FROM customer LIMIT 3,4;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识react

初识react 第一步就给我出个问题版本太低 https://www.cnblogs.com/gslgb/p/16585233.html https://blog.csdn.net/xiangshiyufengzhong/article/details/124193898 第二个问题 便利生成dom 需要绑定key 不要总想着加冒号这不是vue 第三个问题 我p标签包裹 MapList组件 MapLis…

java代码实现二叉树的先序、中序、后序和层次遍历的递归和循环迭代方式

import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.Stack;public class InorderTraversal {// 先序遍历// 递归实现/** public static void …

C++并发多线程--临时对象的使用

1--传递临时对象作为线程参数 当使用 detach() 分离线程时,传递参数应注意以下问题: (1)传递 int 等简单类型参数时,建议使用值传递,而不使用引用传递,避免参数回收的问题(主线程首先…

Redis相关配置(3)

⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容:个人博客系统 ⭐我的文档网站:http://xyhwh-nav.cn/ 文章目录 Redis相关配置1、units2、Include3、loadmodule 加载模块4、NET…

创意网页模板免费下载,让你的网站与众不同!

今天给大家带来的网站模板素材,网站类型丰富,包含户外旅行、餐饮、个人网站等等,可以学习和参考其中的布局排版和配色。 ⬇⬇⬇点击获取更多设计资源 https://js.design/community?categorydesign&sourcecsdn&planbbqcsdn772 1、设…

uniapp日期选择器在手机上不能选择日期问题

日期选择器之前是这样写的&#xff1a; <picker mode"date" :value"date" start"" end"" change"bindDateChange"> <view class"picker"> <text class"tishi2"&…

【1++的C++初阶】之vector

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C初阶】 文章目录 一&#xff0c;什么是vector?二&#xff0c;构造与析构三&#xff0c;vector迭代器的实现四&#xff0c;vector部分重要接口的实现 一&#xff0c;什么是vector? vector…

使用NVIDIA FX Composer验证多纹理合成效果

最近项目上有一个需求&#xff0c;需要将4张带透明通道纹理合成为一张&#xff0c;并且每张纹理指定一个全局透明度。由于纹理过多&#xff0c;合成效果无法保证&#xff0c;为了减少项目的风险&#xff0c;领导希望我先快速验证一下我们讨论的方法是否能完成项目的要求。因此我…

Kotlin版本实现Gradle插件

Kotlin版本实现Gradle插件 本文链接&#xff1a;https://blog.csdn.net/feather_wch/article/details/131746478 创建一个Gradle项目&#xff0c;并选择Kotlin/JVM作为项目SDK。假设项目的名称为hello-plugin。在项目中创建一个新的源集&#xff0c;比如plugin&#xff0c;用…

销售易的12年与七个瞬间

导读&#xff1a;企业级没有捷径 12年对一家企业意味着什么&#xff1f; 在消费互联网领域&#xff0c;12年足够长&#xff0c;短短几年内上市的故事过去屡见不鲜。在企业服务的toB领域&#xff0c;产业成熟和企业发展的时间维度被拉长&#xff0c;但故事同样精彩。 2023年7月1…

ylb-接口5产品详情

总览&#xff1a; 1、service处理&#xff08;根据产品id &#xff0c;查询产品信息&#xff09; 在api模块下service包&#xff0c;ProductService接口添加新方法&#xff08;根据产品id &#xff0c;查询产品信息queryById(Integer id)&#xff09;&#xff1a; package …

java后端解决跨域问题(过滤器或者注解)

1。允许整个项目跨域访问&#xff0c;可通过filter来进行过虑,在文件夹下创建一个名叫&#xff1a; web过滤器的java类&#xff1a; 文件位置及文件名&#xff1a;\src\main\java\pm.lms\WebConfig\SimpleCORSFilter.java 注意这两个文件可以放在src\main\java下的任意一个子文…

Python venv 和 virtualenv 虚拟环境的基本使用

1.前言 venv 和 virtualenv 都是搭建虚拟环境的工具&#xff0c;virtualenv 是第三方开源的&#xff0c;而 venv 作为 virtualenv 的一个子集自 Python3.3 开始集成到标准库中&#xff0c;在 virtualenv 的文档中可以看到他们的区别&#xff1a; 没有 app-data 种子方法&#…

Python爬虫——urllib_post请求百度翻译

post请求&#xff1a; post的请求参数&#xff0c;是不会拼接在url后面的&#xff0c;而是需要放在请求对象定制的参数中 post请求的参数需要进行两次编码&#xff0c;第一次urlencode&#xff1a;对字典参数进行Unicode编码转成字符串&#xff0c;第二次encode&#xff1a;将字…

isaac sim添加孔网格

isaac sim仿真和其它仿真实际上一样&#xff0c;对于孔的仿真&#xff0c;是没那么简单的 在此记录一下踩过的坑 1&#xff0c;首先&#xff0c;你需要在soildworks中将你的孔画出来&#xff0c;并导出stl 2&#xff0c;你可以在win10中使用3D画图查看孔的网格&#xff0c;看…

rust学习-panic

panic! panic示例 use std::fs::File; fn main() {// 使用 Result 类型来处理潜在的错误部分中的Result 枚举// enum Result<T, E> {// Ok(T),// Err(E),// }// // File::open 函数的返回值类型是 Result<T, E>// T 放入了成功值的类型 std::fs::File&…

【css】用css样式快速写右上角badge徽标,颜色设置为渐变色

先看效果展示&#xff0c;已公开显示在图片卡片的右上角。 首先是dom代码&#xff1a;需要两个view或者div&#xff0c;public-badge是“已公开”那个矩形&#xff0c;show-signal是右边那个下三角&#xff0c;也就是阴影部分&#xff0c;这样看起来比较有立体感。 <view…

Java基础-内部类

内部类指的是在一个类的内部定义的类&#xff0c;Java 中存在四种内部类&#xff0c;分别是成员内部类、局部内部类、静态内部类和匿名内部类。 成员内部类 成员内部类在类文件中与成员变量和成员方法并列&#xff0c;作为类的成员存在。 成员内部类可以访问外部类的所有成员…

虚拟化技术及实时虚拟化概述

版权声明&#xff1a;本文为本文为博主原创文章&#xff0c;未经本人同意&#xff0c;禁止转载。如有问题&#xff0c;欢迎指正。博客地址&#xff1a;https://www.cnblogs.com/wsg1100/ 文章目录 一、前言二、分时系统三、虚拟化介绍四、虚拟化实现方式及分类模拟器Type2虚拟化…

欧姆龙PLC联网

一、设备信息确认 左上角的为PLC型号,如图该PLC型号为CP1H,不同型号的欧姆龙PLC通讯方面有什么差别呢? 通讯能力和方式不同: 有些型号PLC自带网口,有些则需要扩展(上图中右侧的两个红框内为后扩展的通讯口,扩展模块可以随意组合双网口,双232串口,双485串口都可以)…