Mysql——数据库约束和加简单查询

数据库中的约束

在创建表格的过程中可以给某些字段追加约束条件

非空约束 NOT NULL

NK

create table t_user (

id int(3) not null,

username varchar(10),

password varchar(15)

);

唯一约束 UNIQUE

UK

create table t_user (

id int(3) not null,

username varchar(10) unique,

password varchar(15)

);

create table t_user (

id int(3) not null,

username varchar(10),

password varchar(15),

constraint UK_username unique(username)

);

主键约束 PRIMARY KEY

主键(PRIMARY KEY),也称“主键约束”。

MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。主键主要是用于其他表的外键关联,以及本记录的修改与删除。

主键(PRIMARY KEY)是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。

PK   效果上 == 非空约束+唯一约束

create table t_user (

id int(3),

username varchar(10),

password varchar(15),

constraint pk_id primary key(id)

);

联合主键

MYSQL是一个关系型数据库管理系统,其中联合主键是一种非常重要的数据库设计概念。在MYSQL中,联合主键是指使用多个列值来唯一标识一个记录的主键。一个联合主键可能包含两个或更多个字段,而这些字段一起组成了一个唯一标识符。这样可以保证在数据表中每个记录都有唯一的标识。

外键约束 FOREIGN KEY

一对一  一对多  多对多

FK  用到两张表格

t_user (一)

t_book (多)

关系维护在(多)方

uid

Username

password

1

Lufei

lufei

2

Qiaoba

qiaoba

bid

Bookname

author

u_id(外键)

1

笑傲江湖

金庸

1

2

神雕侠侣

金庸

2

3

鹿鼎记

金庸

2

4

连城诀

金庸

2

创建过程中分两步进行:

  1. 指定哪一个字段是外键  foreign key(u_id)
  2. 外键需要引用哪一个表格的字段  references t_user(id)

create table t_user (

id int(3),

username varchar(10),

password varchar(15),

constraint pk_id primary key(id)

);

create table t_book (

bid int(3),

bookname varchar(6),

author varchar(3),

u_id int(3),

constraint pk_bid primary key(bid),

constraint fk_u_id foreign key(u_id) references t_user(id)

);

一级菜单   二级菜单     自关联

设计一张菜单表:

id

name

url

oneid

1

用户管理

XXX

2

用户添加

XXX

1

3

用户删除

XXX

1

4

用户查询

XXX

1

5

用户修改

XXX

1

6

商品管理

XXX

7

商品上架

XXX

6

8

商品下架

XXX

6

create table t_menu (

id int(3),

name varchar(10),

url varchar(20),

oneid int(3),

constraint pk_id primary key(id),

constraint fk_oneid foreign key(oneid) references t_menu(id)

);

外键状态下的级联操作:

级联删除谨慎使用

create table t_book (

bid int(3),

bookname varchar(6),

ahthor varchar(3),

u_id int(3),

constraint pk_bid primary key(bid),

constraint fk_u_id foreign key(u_id) references t_user(id) on delete cascade

);

create table t_book (

bid int(3),

bookname varchar(6),

ahthor varchar(3),

u_id int(3),

constraint pk_bid primary key(bid),

constraint fk_u_id foreign key(u_id) references t_user(id) on delete set null

);

检查约束 CHECK

在一个范围中间

create table test32(

id number primary key,

age number check(age>0 and age<120)

);

设计表需要注意的东西   数据库三范式

      1. 第一范式(1NF)
  • 第一范式主要是保证数据表中的每一个字段的值必须具有原子性,也就是数据表中的每个字段的值是不可再拆分的最小数据单元
      1. 第二范式(2NF)
  • 第二范式要求在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的,而且所有的非主键字段,都必须完全依赖主键,不能只依赖主键的一部分。
      1. 第三范式(3NF)
  • 第三范式建立在已经满足第二范式的基础上
  • 数据表中的每一个非主键字段都和主键字段直接相关

查询机制

emp员工表

字段

描述

类型

empno

员工编号

mediumint

ename

员工姓名

varchar

job

职位

varchar

mgr

领导编号

mediumint

hiredate

入职日期

date

sal

工资

decimal

comm

奖金

decimal

deptno

部门编号

mediumint

dept部门表

字段

描述

类型

deptno

部门编号

mediumint

dname

部门名称

varchar

loc

部门位置

varchar

salgrade工资等级

字段

描述

类型

grade

等级

mediumint

losal

最低工资

decimal

hisal

最高工资

decimal

简单查询

查询所有员工信息

SELECT * from emp;

查询所有并起别名

SELECT empno '员工编号',ename '员工姓名',job '职位',mgr '领导编号' from emp;

SELECT e.empno,e.job,e.sal from emp e;

查询公司中的职位

SELECT  DISTINCT  job from emp;

DISTINCT :去重关键字

限定查询

SELECT * FROM 表名称 [限定条件]

Where  >  <  >=  <=  !=   between...and...  and   or  is null   in  like  ...

查询工资高于1500的所有员工信息

SELECT * from emp WHERE sal > 1500;

查询工资高于1500低于3000的所有员工信息

SELECT * from emp WHERE sal >= 1500 and sal <= 3000;

//between...and...取的区间值

SELECT * from emp WHERE sal BETWEEN 1500 and 3000;

查询没有奖金的所有员工信息  or或者

SELECT * from emp where comm = 0 or comm is NULL;

查询有奖金的员工信息

SELECT * from emp where comm > 0;

查询员工姓名中带有S的员工信息

SELECT * from emp where ename like '%S%';

模糊匹配:

%:占位符 代表0个或者多个字符

_:占位符  代表一个字符

查询入职日期在1981年的员工

SELECT * from emp where hiredate BETWEEN '1981-01-01' and '1981-12-31';

SELECT * from emp where hiredate LIKE '%1981%';

查询员工编号在7499  7521  7566 in包含

SELECT * from emp where empno in (7499,7521,7566);

排序查询

SELECT * FROM 表名称 [限定条件][排序条件]

Order by 字段 升序/降序   

升序 asc

降序 desc

根据工资由高到底进行排序查询

SELECT * from emp order by sal desc;

如果工资一样,那么按照入职日期升序

SELECT * from emp order by sal desc,hiredate asc;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型备案关注点最详细说明【附流程+附件】

国家网信办已经公布的通过大模型备案的有117家&#xff0c;部分已面向全社会开放服务。加上业内一些渠道透漏的消息&#xff0c;目前已有超过140个大模型获得备案。相对于算法备案&#xff0c;大模型备案名额显然更难拿到&#xff0c;很多企业在申请大模型备案的时候是一头雾水…

qiankun实现子应用tab页签切换缓存页面

实现背景 项目中是使用的jeecg-boot低代码构建的前端开发环境&#xff0c;由于后期各个模块代码越来越多&#xff0c;打包慢&#xff0c;分支管理麻烦&#xff0c;领导要求使用微前端&#xff0c;每个模块拆分为子应用。 拆分子应用 由于jeecg里面自带qiankun&#xff0c;所…

1.1.2数据结构的三要素

一.数据结构的三要素 数据结构这门课着重关注的是数据元素之间的关系&#xff0c;和对这些数据元素的操作&#xff0c;而不关心具体的数据项内容 。 1.逻辑结构 &#xff08;1&#xff09;集合结构 &#xff08;2&#xff09;线性结构 数据元素之间是一对一的关系。除了第一个…

虚幻引擎 快速的色度抠图 Chroma Key 算法

快就完了 ColorTolerance_PxRange为容差&#xff0c;这里是0-255的输入&#xff0c;也就是px单位&#xff0c;直接用0-1可以更快 Key为目标颜色

[数据集][目标检测]护目镜检测数据集VOC+YOLO格式888张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;888 标注数量(xml文件个数)&#xff1a;888 标注数量(txt文件个数)&#xff1a;888 标注类别…

【微信小程序开发实战项目】——花店微信小程序实战项目(4)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

10种有效提高电子设备可靠性的PCB散热技术

在现代电子领域&#xff0c;随着器件尺寸的不断缩小和性能的不断提高&#xff0c;热管理问题日益凸显&#xff0c;不容忽视。电子设备在运行过程中产生的热量&#xff0c;如果处理不当&#xff0c;散发不了&#xff0c;就会像潜移默化的威胁一样&#xff0c;悄无声息地危及设备…

Desktop docker 部署 WordPress

Desktop Docker 部署 WordPress 之前都是在Linux里面玩的,今天看到别人在windwos下安装docker,一时兴起装了一个试试,效果一般,很吃硬盘空间和内存。 首先在docker官方下载桌面版,安装下一步一直到完成。 安装完docker会自动加入到环境变量,而且docker-compose也会一并安…

SPLL单相软件锁相环相关源代码理解-SOGI及PI系数计算

最近在学习TI的TIDA-010062&#xff08;DSP型号用的是TMS320F280049C&#xff09;&#xff0c;也就是1kW、80 Plus Titanium、GaN CCM 图腾柱无桥 PFC 和半桥 LLC&#xff08;具有 LFU&#xff09;参考设计。在整个框图中看到SPLL_1ph_SOGI的模块&#xff08;实验4&#xff1a;…

软件测试面试题集(含答案)

软件测试面试题集一、Bug基本要素 缺陷ID&#xff0c;状态&#xff0c;类型&#xff0c;所属项目&#xff0c;所属模块&#xff0c;缺陷提交时间&#xff0c;缺陷提交人&#xff08;检测者&#xff09;&#xff0c;严重程度&#xff0c;优先级别&#xff0c;缺陷描述信息&#…

【TS】TypeScript 联合类型详解:解锁更灵活的类型系统

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 联合类型详解&#xff1a;解锁更灵活的类型系统一、联合类型的定义二…

一站式采购!麒麟信安CentOS安全加固套件上架华为云云商店

近日&#xff0c;麒麟信安CentOS安全加固套件正式上架华为云云商店&#xff0c;用户可登录华为云官网搜索“CentOS安全加固”直接采购&#xff0c;一站式获取所需资源。 麒麟信安CentOS安全加固套件已上架华为云 https://marketplace.huaweicloud.com/contents/9fe76553-8d87-…

后端部署Jar包 | 启动失败系列问题(图解-BuiId,Maven)

目录 项目的构建 打包前的准备 合理配置pox.xml文件 Build 打包方式 Maven打包方式 Jar包部署 测试后端接口 项目的构建 我的项目是SpringBoot2脚手架 先准备一个相对于的数据库依赖 数据库的任意库 Yaml配置后 才能正常在IDEA中跑起来 打包前的准备 合理配置pox.xm…

推荐的一键下载1688高保真原图信息

图片在电商中扮演着至关重要的角色。高质量的商品图片能够直观展示产品特性&#xff0c;吸引消费者注意力&#xff0c;提升购买欲望。良好的视觉呈现还能增强品牌形象&#xff0c;提高转化率。此外&#xff0c;图片是跨语言的沟通方式&#xff0c;能够克服语言障碍&#xff0c;…

linux——小细节(Makefile)(gdb)

一、makefile a.out:main.c func.cgcc main.c func.cclean:rm a.out a.out:main.c func.cgcc $^ -o $clean:rm a.out SRCmain.c func.c OBJa.out CCgcc FLAG -g -lpthread $(OBJ):$(SRC)$(CC) $(SRC) $(FLAG)clean:rm $(OBJ) 二、gdb

快速傅里叶变换(Fast Fourier Transform)

快速算法&#xff08;FFT&#xff09;&#xff0c;即快速傅里叶变换&#xff08;Fast Fourier Transform&#xff09;&#xff0c;是一种用于计算离散傅里叶变换&#xff08;DFT&#xff09;及其逆变换的高效算法。FFT算法由J.W.库利和T.W.图基于1965年提出&#xff0c;显著减少…

7-google::protobuf::io命名空间下常用的C++ API----zero_copy_stream_impl.h

一、protobuf输入输出文件流C API总览 二、经常会用到的API

昇思25天学习打卡营第12天|MindSpore-基于MobileNetv2的垃圾分类

基于MobileNetv2的垃圾分类 主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中。 1、实验目的 了解熟悉垃圾分类应用代码的编写(Python语言);了解Linux操作系统的基本使用;掌握atc命令进行模型…

每日Attention学习8——Rectangular self-Calibration Attention

模块出处 [ECCV 24] [link] [code] Context-Guided Spatial Feature Reconstruction for Efficient Semantic Segmentation 模块名称 Rectangular self-Calibration Attention (RCA) 模块作用 空间注意力 模块结构 模块代码 import torch import torch.nn as nn import tor…

Redis基础教程(十四):Redis连接

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…