简单官网模板/seo关键词排名优化如何
本文章主要内容
1、表的管理:创建表,修改表结构,删除字段,修改字段,添加字段,删除表,添加表约束;
2、数据管理:新增记录,修改记录,删除记录,查询数据;
3、查询数据:普通程序,条件查询,各种查询条件的灵活应用;
4、多表连接:内连接,左外连接,右外连接,完全连接,自然连接,交叉连接;
5、子查询;
目标
SQL
SQL分类
SQL 支持下列类别的命令:



数据控制语言(DCL)
Oracle 数据类型
字符类型 | CHAR | 固定长度的字符串,列长度可以是 1 到 2000 个字节 |
VARCHAR2 | 支持可变长度字符串,大小在1至4000个字节范围 | |
LONG | 存储可变长度字符数据,最多能存储 2GB | |
数值类型 | NUMBER | NUMBER [( p[, s])],存储整数、浮点数和实数,最高精度为 38 位 |
日期类型 | DATE | 存储日期和时间部分,精确到整个的秒 |
TIMESTAMP | 存储日期、时间和时区信息,秒值精确到小数点后6位 | |
RAW | RAW | 存储二进制数据,最多能存储 2000 字节 |
LONG RAW | 存储可变长度的二进制数据,最多能存储 2 GB | |
大对象 LOB | LOB 类型可以存储 4GB内容,LOB 数据类型允许对数据进行高效、随机、分段的访问 | |
CLOB | 即 Character LOB,它能够存储大量字符数据 | |
BLOB | 即 Binary LOB(二进制 LOB),可以存储较大的二进制对象,如图形、视频剪辑和声音文件 | |
BFILE | 即 Binary File,用于将二进制数据存储在数据库外部的操作系统文件中 | |
伪列 | 伪列就像一个表列,但是它并没有存储在表中,伪列可以从表中查询,但不能插入、更新和删除它们的值 | |
ROWID | 表中行的存储地址,可以使用 ROWID 伪列快速地定位表中的一行 | |
ROWNUM | ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数 |
数据定义语言
数据定义语言举例
创建表
CREATE TABLE DEPT ( DEPTNO NUMBER (2) NOT NULL, DNAME VARCHAR2 (14), LOC VARCHAR2 (13), PRIMARY KEY ( DEPTNO )
)
修改表
修改LOC字段
ALTER TABLE DEPT MODIFY LOC VARCHAR2(20);
添加字段
ALTER TABLE DEPT ADD MGR NUMBER(4);
添加约束
ALTER TABLE DEPT ADD CONSTRAINT FK_EMPFOREIGN KEY (MGR) REFERENCES EMP (EMPNO)
删除字段
ALTER TABLE DEPT DROP COLUMN MGR;
删除表
DROP TABLE DEPT;
DML – 利用现有的表创建表
语法CREATE TABLE <new_table_name> ASSELECT column_names FROM <old_table_name>;
SQL> CREATE TABLE NEWEMPAS SELECT * FROM EMP;SQL> CREATE TABLE NEWEMPAS SELECT EMPNO, ENAME, SAL FROM EMP;
不复制原表数据到新表
SQL>CREATE TABLE NEWEMPAS SELECT EMPNO, ENAME, SAL FROM EMP WHERE 1 = 2;
表完整性与约束
主键约束alter table DEPT add constraint pk_DEPT primary key(deptno);
外键约束alter table EMP add constraint fk_d_m foreign key(deptno) references DEPT(deptno);
Check 约束Alter table emp add constraint ck_emp_sex check(sex=‘男’ or sex=‘女’)
Unique唯一约束
Alter table emp add constraint uk_emp unique(fname,lname)
数据操纵语言
DML – INSERT
INSERT INTO emp VALUES(1000,'PETER',7369,'12-5月-05',2800,1);INSERT INTO emp VALUES(1001,‘MIKE',7369, TO_DATE('2005-10-18', 'YYYY-MM-DD'),2800,1);INSERT INTO emp (empno,ename,sal) VALUES(1000,'PETER',2800 );
插入来自其它表中的记录
INSERT INTO <table_name> [(cloumn_list)]
SELECT column_names FROM <other_table_name>;
SQL> INSERT INTO NEWEMPSELECT * FROM EMP; SQL> INSERT INTO NEWEMP(EMPNO,ENAME,SAL) SELECT EMPNO,ENAME,SAL FROM EMP;
DML – update
INSERT INTO emp VALUES(1001,'PETER',7369,'12-5月-05',2800,1);UPDATE emp SET sal=sal+100; --所有员工工资加100UPDATE emp SET ename=‘PETER ZHANG’ where empno=‘1001’;UPDATE emp SET ename=‘PETER CHEN’,mgr=‘7876’,hiredate=to_date(‘2004/10/21’,’YYYY/MM/DD’),sal=3200,deptno=2
WHERE empno=‘1001’;
SQL> DELETE EMP WHERE deptno = 1 AND hiredate>to_date(‘2005/10/10’,‘YYYY/MM/DD’); --删除符合条件的数据
SQL> DELETE EMP --删除所有行
数据控制语言
SQL> GRANT SELECT, UPDATE ON EMP TO user;SQL> GRANT SELECT ON EMP TO user WITH GRANT OPTION;SQL> GRANT UPDATE(SAL, HIREDATE) ON EMP TO user;SQL> REVOKE SELECT, UPDATE ON EMP FROM user;
SQL 操作符
SELECT
where子句中的运算符
查询条件 | 运算符 |
比较 | =,>,<,>=,<=,<>,!=,NOT |
范围 | between and,not between and |
集合 | In,not in |
字符匹配 | like,not like |
空值 | is null,is not null |
多重条件 | and,or |
Oracle中的用例表
SQL>conn sys/change_on_install as sysdba
SQL>alter user hr identified by hr account unlock; sys登录,解锁hr用户,并修改密码为hr
SQL>conn hr/hr
SQL>select table_name from user_tables;
Departments 部门信息表
Employees 雇员信息表
Jobs 职位信息表
Jobs_history 工作历史信息表
Locations 地址信息表
Regions 地区信息表
可以通过Desc tableName语句查看表的基本信息
SELECT
默认为升序,Desc(降序)和Asc(升序)
select empno,ename,sal from emp order by sal asc;select empno,ename,sal from emp order by deptno asc,hiredate desc;between and,not between and可以进行某一范围的查询 ,范围包含最大值和最小值 。Select * from emp where sal between 2000 and 5000;Select * from emp where sal not between 2000 and 5000;in,not in是集合运算符,只要查询的值等于集合中的一个元素,表达式为真。Select * from emp where empno in (select mgr from EMP)Select * from emp where empno not in(7389,7367,7782)like,not like
模糊匹配,“_”表示任意一个字符,“%”表示任意多个字符,如果字符串中有与匹配符相同的字符,需要使用逃逸字符串escape 。select * from emp where ename like ‘S%’;select * from emp where empno not in(7389,7367,7782);select * from emp where ename like 'MULS#_I_' escape '#‘And 多个条件同时成立时条件表达式才为真select * from emp where empno>7600 and sal>2000Or多个条件中只要有一个条件为真时条件表达式就为真select * from emp where empno>7600 or sal>2000
连接查询
CREATE TABLE DEPT ( DEPTNO NUMBER (2) NOT NULL, DNAME VARCHAR2 (14), LOC VARCHAR2 (13), PRIMARY KEY ( DEPTNO )
);CREATE TABLE EMP ( EMPNO NUMBER (4) NOT NULL, ENAME VARCHAR2 (10), MGR NUMBER (4), HIREDATE DATE, SAL NUMBER (7,2), DEPTNO NUMBER (2), CONSTRAINT PK_EMPPRIMARY KEY ( EMPNO )
);
•内连接
查询所有员工及其所在的部门信息SELECT e.*, d.DNAME from EMP e, DEPT d WHERE e.DEPTNO = d.DEPTNO AND e.SAL > 2000
查询部门信息SELECT d.*, e.ENAME from DEPT d, EMP e WHERE e.MGR = e.EMPNO and d.deptno=e.deptno
•左外连接
查询所有部门及其部门下的员工(没有员工的部门也要查询出来)
select d.*, e.ename from dept d left join emp e on d.deptno=e.deptno
select d.*, e.ename from dept d,emp e where d.deptno = e.deptno;
查询所有部门编号大于20及其部门下的员工
select d.*, e.ename from dept d left join emp e on d.deptno=e.deptno WHERE d.deptno > 20
SELECT e.empno,e.ename,d.dname FROM EMP e FULL JOIN dept d ON e.deptno=d.deptno
SELECT e.empno, e.ename,d.name FROM EMP e CROSS JOIN DEPT
对自身的连接查询
在Emp表中,每个雇员都对应一个经理,如何查询所有雇员及其经理的名称通过给其中一个表取不同的别名,然后使用对自身的联合查询来实现
select manager.ename as m_name, e.ename as e_name from EMP e, EMP managerwhere e.mgr = manager.empno;
select d.dname , manager.ename as m_name, e.enamefrom EMP e, EMP manager, DEPT dwhere d.deptno = e. deptno --部门表与员工表连接and d. deptno = manager. deptno --部门表与经理表连接// and d.mgr = manager. empno --部门与经理的连接条件and e.mgr = manager. empno --员工与经理连接and (d.dname ='Sales' or d.dname ='Marketing');select manager.ename,e.ename
from dept d inner join emp manager on d.deptno=manager.deptnoinner join emp e on e. mgr= manager.empno
where d.dname in('SALES', 'Marketing’)
order by manager.ename
替代变量
Select * from emp where deptno=&aa
替代变量的使用:&变量名
Select empno,ename,&v1 from &t1 where &w1;Define a =10 //定义替代变量
Define a //查看变量
Select * from emp where deptno=&a;
Define //查所有替代变量
Undefine a //删除替代变量Select empno,ename,&&a from emp where &a like ‘S%’ //重复引用
Delete与TRUNCATE
rename
Group by with rollup and cube
用带rollup或cube的group by 实现超级聚合,即对group进行再聚合
Rollup and cube
GROUPING SETS
两个group语句以union的形式组合在一起
高级子查询
成对比较select * from empwhere (deptno,mgr) in (select deptno,mgr from emp where job like '%CLERK%')Where字句中的子查询查询工资比部门平均工资高的员工Select a.empno,a.ename,a.deptno,a.sal,b.avg_salfrom emp a, (select deptno,avg(sal) avg_sal from empgroup by deptno) bwhere a.deptno = b.deptno and a.sal > b.avg_sal
标量子查询(scalar subquery)
SQL>select empno,ename,sal, (casewhen sal>4000 then '白领'when sal>2000 then '蓝领'else '打工仔'end) 工薪阶层from emp;
select empno,ename
from emp e
order by (select dname from dept d where e.deptno=d.deptno)
exists
select * from dept dwhere exists (select * from emp e where e.deptno=d.deptno)
With语句
SQL>with
dept_costs AS(select deptno,sum(sal) as dept_totalfrom empgroup by deptno),
avg_cost AS(select sum(dept_total)/count(*) as dept_avgfrom dept_costs)
select * from dept_costs
where dept_total>(select dept_avg from avg_cost)
order by deptno
/
本人从事软件项目开发20多年,2005年开始从事Java工程师系列课程的教学工作,录制50多门精品视频课程,包含java基础,jspweb开发,SSH,SSM,SpringBoot,SpringCloud,人工智能,在线支付等众多商业项目,每门课程都包含有项目实战,上课PPT,及完整的源代码下载,有兴趣的朋友可以看看我的在线课堂
讲师课堂链接:https://edu.csdn.net/lecturer/893
相关文章:

04-SQL基础(表管理,约束,多表连接,子查询)
本文章主要内容 1、表的管理:创建表,修改表结构,删除字段,修改字段,添加字段,删除表,添加表约束; 2、数据管理:新增记录,修改记录,删除记录&…...

统计学 一元线性回归
统计学 一元线性回归 回归(Regression):假定因变量与自变量之间有某种关系,并把这种关系用适当的数学模型表达出来,利用该模型根据给定的自变量来预测因变量 线性回归:因变量和自变量之间是线性关系 非线…...

【软件开发】基于PyQt5开发的标注软件
这里是基于PyQt5写的面向目标检测的各类标注PC端软件系统。目前现有的labelme软件和labelImg开源软件无法满足特殊数据集的标注要求,而且没有标注顺序的报错提示。当然我设计的软件就会不具有适用性了(毕竟从下面开发的软件可以明显看出来我做的基本上是…...

CSS3新特性
CSS3新特性前言css3选择器边框特性背景参考前言 css3作为css的升级版本,css3提供了更加丰富实用的规范。新特性有: css3选择器边框特性多背景图颜色与透明度多列布局与弹性盒模型布局盒子的变形过渡与动画web字体媒体查询阴影 css3选择器 css3选择器…...

35 openEuler搭建repo(yum)服务器-创建、更新本地repo源
文章目录35 openEuler搭建repo(yum)服务器-创建、更新本地repo源35.1 获取ISO发布包35.2 挂载ISO创建repo源35.3 创建本地repo源35.4 更新repo源35 openEuler搭建repo(yum)服务器-创建、更新本地repo源 使用mount挂载,…...

【三.项目引入axios、申明全局变量、设置跨域】
根据前文《二.项目使用vue-router,引入ant-design-vue的UI框架,引入less》搭建好脚手架后使用 需求: 1.项目引入axios 2.申明全局变量 3.设置跨域 简介:axios本质上还是对原生XMLHttpRequest的封装,可用于浏览器和nodejs的HTTP客…...

启动u盘还原成普通u盘(Windows Diskpart)
使用windows系统的diskpart 命令解决系统盘恢复成普通U盘的问题:1. 按Windows R键打开运行窗口。在搜索框中输入“ Diskpart ”,然后按 Enter 键。2. 现在输入“ list disk ”并回车。3. 然后输入“ select disk X ”(将 X 替换为可启动U盘的…...

深入理解机器学习——偏差(Bias)与方差(Variance)
分类目录:《深入理解机器学习》总目录 偏差(Bias)与方差(Variance)是解释学习算法泛化性能的一种重要工具。偏差方差分解试图对学习算法的期望泛化错误率进行拆解,我们知道,算法在不同训练集上学…...

分布式新闻项目实战 - 13.项目部署_持续集成(Jenkins) ^_^ 完结啦 ~
欲买桂花同载酒,终不似,少年游。 系列文章目录 项目搭建App登录及网关App文章自媒体平台(博主后台)自媒体文章审核延迟任务kafka及文章上下架App端文章搜索后台系统管理Long类型精度丢失问题定时计算热点文章(xxl-Job…...

Linux c/c++技术方向分析
一、C与C介绍 1.1 说明 c语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,如嵌入式。C语言能以简易的方式编译、处理低级存储器。是一种高效率程序设计语言。 c(c plus plus)是一种计算机高级程序设计语言&a…...

JavaScript 高级3 :函数进阶
JavaScript 高级3 :函数进阶 Date: January 19, 2023 Text: 函数的定义和调用、this、严格模式、高阶函数、闭包、递归 目标: 能够说出函数的多种定义和调用方式 能够说出和改变函数内部 this 的指向 能够说出严格模式的特点 能够把函数作为参数和返…...

【项目】Java树形结构集合分页,java对list集合进行分页
Java树形结构集合分页需求难点实现第一步:查出所有树形集合数据 (需进行缓存处理)selectTree 方法步骤:TreeUtil类:第二步:分页 GoodsCategoryController分页getGoodsCategoryTree方法步骤:第三…...

java.lang.IllegalArgumentException: itemView may not be null
报错截图:场景介绍:在使用recycleView 自动递增数据,且自动滚动到最新行; 当数据达到273条 时出现ANR;项目中 全部的列表适配器使用的三方库:BaseRecyclerViewAdapterHelper (很早之前的项目&am…...

[ 攻防演练演示篇 ] 利用 shiro 反序列化漏洞获取主机权限
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

达人合作加持品牌布局,3.8女神玩转流量策略!
随着迅猛发展的“她经济”,使社区本就作为内容种草的平台,自带“营销基因”。在3.8女神节即将到来之际,如何充分利用平台女性资源优势,借助达人合作等手段,实现迅速引流,来为大家详细解读下。一、小红书节日…...

观点丨Fortinet谈ChatGPT火爆引发的网络安全行业剧变
FortiGuard报告安全趋势明确指出“网络攻击者已经开始尝试AI手段”,ChatGPT的火爆之际的猜测、探索和事实正在成为这一论断的佐证。攻守之道在AI元素的加持下也在悄然发生剧变。Fortinet认为在攻击者利用ChatGPT等AI手段进行攻击的无数可能性的本质,其实…...

工业企业用电损耗和降损措施研究
来自用电设备和供配电系统的电能损耗。而供配电系统的电能损耗,包括企业变配电设备、控制设备企业在不断降低生产成本,追求经济效益的情况下,进一步降低供配电系统中的电能损耗,使电气设摘要:电网电能损耗是一个涉及面很广的综合性问题,主要包括管理损耗和技术损耗两部分…...

高并发、高性能、高可用
文章目录一、高并发是什么?二、 高性能是什么三、 高可用什么是一、高并发是什么? 示例:高并发是现在互联网分布式框架设计必须要考虑的因素之一,它是可以保证系统能被同时并行处理很多请求,对于高并发来说࿰…...

剑指 Offer 62. 圆圈中最后剩下的数字
摘要 剑指 Offer 62. 圆圈中最后剩下的数字 一、约瑟夫环解析 题目中的要求可以表述为:给定一个长度为 n 的序列,每次向后数 m 个元素并删除,那么最终留下的是第几个元素?这个问题很难快速给出答案。但是同时也要看到ÿ…...

概率论小课堂:高斯分布(正确认识大概率事件)
文章目录 引言I 预备知识1.1 正态分布1.2 置信度1.3 风险II 均值、标准差和发生概率三者的关系。2.1 “三∑原则”2.2 二班成绩比一班好的可能性2.3 减小标准差引言 泊松分布描述的是概率非常小的情况下的统计规律性。学习高斯分布来正确认识大概率事件,随机变量均值的差异和偶…...

剑指 Offer 43. 1~n 整数中 1 出现的次数
摘要 剑指 Offer 43. 1~n 整数中 1 出现的次数 一、数学思维解析 将1~ n的个位、十位、百位、...的1出现次数相加,即为1出现的总次数。 设数字n是个x位数,记n的第i位为ni,则可将n写为 nxnx−1⋯n2n1: 称" …...

如何成为程序员中的牛人/高手?
目录 一、牛人是怎么成为牛人的? 二、关于牛人的一点看法 三、让程序员与业务接壤,在开发团队中“升级” 四、使用低代码平台 目标效果 五、最后 祝伟大的程序员们梦想成真、码到成功! 一、牛人是怎么成为牛人的? 最近在某…...

云原生时代顶流消息中间件Apache Pulsar部署实操之轻量级计算框架
文章目录Pulsar Functions(轻量级计算框架)基础定义工作流程函数运行时处理保证和订阅类型窗口函数定义窗口类型滚动窗口滑动窗口函数配置函数示例有状态函数示例窗口函数示例自定义函数开发定义原生语言接口示例Pulsar函数SDK示例Pulsar Functions(轻量级计算框架) 基础定义 …...

数据结构刷题(十九):77组合、216组合总和III
1.组合题目链接过程图:先从集合中取一个数,再依次从剩余数中取k-1个数。思路:回溯算法。使用回溯三部曲进行解题:递归函数的返回值以及参数:n,k,startIndex(记录每次循环集合从哪里开始遍历的位…...

PyQt 做美*女GIF设置桌面,每天都很爱~
人生苦短,我用python 要说程序员工作的最大压力不是来自于工作本身, 而是来自于需要不断学习才能更好地完成工作, 因为程序员工作中面对的编程语言是在不断更新的, 同时还要学习熟悉其他语言来提升竞争力… 好了,学习…...

[渗透测试笔记] 54.日薪2k的蓝队hw中级定级必备笔记系列篇3之域渗透黄金票据和白银票据
前文链接 [渗透测试笔记] 52.告别初级,日薪2k的蓝队hw中级定级必备笔记 [渗透测试笔记] 53.日薪2k的蓝队hw中级定级必备笔记2 文章目录 Kerberos认证协议NTLM认证协议Kerberos和NTLM比较黄金票据原理黄金票据条件复现过程白银票据原理白银票据条件复现过程黄金票据和白银票据…...

【异常】Spring Cloud Gateway网关自定义过滤器无法获取到请求体body的内容?不存在的!
一、需求说明 项目要使用到网关SpringCloud Gateway进行验签,现在定义了一个过滤器ValidateSignFilter, 我希望,所以过网关SpringCloud Gateway的请求,都能够校验一下请求头,看看是否有Sign这个字段放在请求头中。 二、异常说明 但是,我遇到了SpringCloud Gateway网关…...

CNN 卷积神经网络对染色血液细胞分类(blood-cells)
目录 1. 介绍 2. 加载数据 3. 可视化 3.1 显示单幅图像 3.2 显示多幅图像...

Kubernetes学习(三)Service
Service对象 为什么需要Service 每个Pod都有自己的IP地址,但是在Deployment中,在同一时刻运行的Pod集合可能与稍后运行该应用程序的Pod集合不同。 这就导致了一个问题:如果一组Pod(称为后端)为集群内其他Pod&#x…...

数学小课堂:古德-图灵折扣估计法和插值法(防范黑天鹅事件的方法)
文章目录 引言I 黑天鹅事件产生的原因1.1 置信度1.2 数据的稀疏性1.3 零概率问题II 防范黑天鹅事件的方法2.1 古德-图灵折扣估计法2.2 插值法引言 防范黑天鹅事件的方法 古德-图灵折扣估计法:它主要是解决零概率的事件古德的方法虽然解决了零概率的问题,但是依然没有解决数据…...