数据库基础篇二

函数

约束

概述
  1. 概念:约束是作用于表字段上的规则,用于限制存储在表中的数据。
  2. 目的:保证数据库中数据的正确、有效性和完整性。
  3. 分类:
外键约束

外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

添加外键

alter table 表名 add constraint 外键名称 foreign key(外键字段名) references 主表(主表列名);

删除外键

alter table 表名 drop foreign key 外键名称;

多表查询

内连接
  • 隐式内连接
select 字段列表 from 表1,表2 where 条件……;
  • 显式内连接
select 字段列表 from 表1 [inner] join 表2 on 连接条件……;
外连接

外连接查询语法:

左外连接

select 字段列表 from 表1 left [outer] join 表2 on 条件……;

相当于查询字段1(左表)的所有数据包含表1和表2交集部分的数据

右外连接

select 字段列表 from 表1 right [outer] join 表2 on 条件……;

相当于查询表2(右表)的所有数据包含表1和表2交集部分数据

自连接

自连接查询语法:

select 字段列表 from 表A 别名A join 表名A 别名B on 条件……;

自连接查询,可以是内连接,也可以是外连接查询。一定要起别名

联合查询 - union,union all(集合查询)

select 字段列表 from 表A ……

union [all]

select 字段列表 from 表B ……;

子查询

概念:SQL语句中嵌套select语句,称为嵌套语句,又称子查询。

select * from t1 where column1 = (select column1 from t2);

子查询外部的语句可以使insert / update / delete / select 的任何一个。

根据子查询结果不同,分为:

标量子查询(子查询结果为单个值)

列子查询(子查询结果为一列)

行子查询(子查询结果为一列)

表子查询(子查询结果为多行多列)

根据子查询位置,分为: where之后、from之后、select之后。

标量子查询

子查询返回的结果是单个值(数字、字符串、日期等),最简单地形式,这种子查询称为标量子查询

常用的操作符:= <> > >= < <=

# a. 查询”销售部“部门ID

select id from dept where name = '销售部';

# b. 根据销售部门ID,查询员工信息

select * from emp where dept_id = 4;

select * from emp where dept_id = (select id from dept where name = '销售部');

列子查询

子查询返回的结果是一列(可以是多行),这种查询称为列子查询

常用的操作符: in、 not in、 any 、some 、all

# 查询 销售部 和 市场部 的部门ID

select id from dept where name = '销售部' or name = '市场部';

# 根据部门ID,查询员工信息

select * from emp where dept_id in (select id from dept where name = '市场部' or name = '销售部');

行子查询

子查询返回的结果是一行(可以是多列),这种子查询称为行子查询。

常用的操作符:= 、 <> 、 in、 not in

# 行子查询

# 查询 张无忌 的薪资及直属领导相同的员工信息

select salary, managerid from emp where name = '张无忌';

# 查询与 张无忌 的薪资及直属领导相同的员工信息

select * from emp where (salary, managerid) = (select salary, managerid from emp where name = '张无忌');

表子查询

子查询返回的结果是多行多列,这种子查询称为表子查询。

常用的操作符:in

# 表子查询

# 查询 鹿杖客、宋远桥 的职位和薪资

select job, salary from emp where name = '鹿杖客' or name = '宋远桥';

# 查询与 鹿杖客、宋远桥 的职位和薪资相同的员工信息

select * from emp where (job, salary) in (select job, salary from emp where name = '鹿杖客' or name = '宋远桥');

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

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

相关文章

git push错误->Error: src refspec master does not match any

参考:https://blog.csdn.net/weixin_40908748/article/details/128574907 问题描述&#xff1a;在执行命令 git push origin master 时报错->Error: src refspec master does not match any 问题分析&#xff1a;在网上查找解决方法&#xff0c;大部分人说是暂存区没有文件…

【C进阶】内存函数

strcpy拷贝的仅仅是字符串&#xff0c;但是内存中的数据不仅仅是字符&#xff0c;所以就有了memcpy函数 1. memcpy void *memcpy &#xff08;void * destination &#xff0c;const void * source , size_t num) 函数memcpy从source的位置开始向后拷贝num个字节的数据到desti…

webrtc用clang编译支持h264,支持msvc调用库

webrtc遇到困扰&#xff1a; 如果msvc编译&#xff0c;ffmpeg编译失败&#xff0c;需要替换ffmpeg库。如果用clang编译&#xff0c;vs或qt调用dll又存在崩溃。 经过反复尝试找到解决方法&#xff1a; 一、编译 1、编译参数 //我得环境配置 set DEPOT_TOOLS_UPDATE0 set DEP…

$attrs 和 $listeners (vue2vue3)

目录 透传 Attributes Attributes 继承​ 对 class 和 style 的合并 v-on 监听器继承 深层组件继承 禁用 Attributes 继承 多根节点的 Attributes 继承 vue2 $attrs 和 $listeners $attrs 概念说明 $attrs 案例 $listeners 概念说明 $listeners案例 vue3 $attr…

zsh: command not found: conda问题解决

参考:https://zhuanlan.zhihu.com/p/158703094 一、问题介绍与环境介绍 系统为macOS Catalina 10.15.4 所用终端为zsh 安装了oh-my-zsh之后conda命令在终端中不可用。 二、原因分析 终端中zsh的可访问的程序一般放在/bin, /usr/bin, /usr/local/bin&#xff0c;/bin目录下&…

Android Studio git 取消本地 commit(未Push)

操作比较简单 1.选中项目然后依次选择&#xff1a;Git->Repository->Reset HEAD 2.然后再to Commit中输入HEAD^&#xff0c;表示退回到上一个版本。

区块链金融的开发流程

区块链金融应用的开发流程与一般的软件开发流程有许多相似之处&#xff0c;但它还涉及到智能合约的编写、区块链网络集成和加密货币处理等特定方面的工作。以下是一般区块链金融应用的开发流程&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件…

工程物料管理信息化建设(十二)——关于工程物料管理系统最后的思考

目录 1 功能回顾1.1 MTO模块1.2 请购模块1.3 采购模块1.4 催交模块1.5 现场管理模块1.6 数据分析和看板模块1.7 其它模块 2 最后几个问题2.1 按管线发料和直接发料重叠2.2 YHA 材料编码的唯一性问题2.3 “合同量单-箱单-入库单” 数据映射 3 关于未来的思考3.1 三个专业之间的关…

Springboot 订餐管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 订餐管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有 完整的源代码和数据库&…

PBA.客户需求分析管理

1 需求的三个层次: Requirement/Wants/Pains 大部分人认为&#xff0c;产品满足不了客户需要&#xff0c;是因为客户告知的需求是错误的&#xff0c;这听起来有一些道理&#xff0c;却没有任何意义。不同角色对于需求的理解是不一样的。在客户的需求和厂家的需求之间必然有一定…

vue3 + element Plus实现表格根据关键字合并行,并实现行的增删改操作

根据关键字合并表格 1.实现初始化表格2.实现添加班级与学生的功能3.添加的弹窗4.删除班级5.删除学生 首先看最终实现的效果 1.实现初始化表格 <template><div class"main-page"><div class"flex-end"><div class"public-search…

【C++】哈希表

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;C仓库 个人专栏&#xff1a;C专栏 文章目录 前言一、什么是哈希&#xff1f;二、哈希表的插入及哈希冲突解决哈希冲突的方式1.闭散列的哈希表闭散列哈希表的删除实现&#xff08;重点细节处理&#xf…