今天SQL练习哦!资料

-------------------------------------------------------------------------
三、SQL-DQL:数据查询语言
--------------------------------------------------------------------------
1、普通SELECT全部列
练习(查出EMPLOYEES中所有的列):

2、普通的SELECT部分列
练习(查出EMPLOYEES中first_name,salary两列):

3、限制性的SELECT查询,单条件WHERE
练习(查出部门编号是50的所有列)

4、限制性的SELECT查询,复合条件WHERE(and)
练习(查出部门叫King的,工资小于20000的员工)

5、限制性的SELECT查询,复合条件WHERE(or)
练习(查出工资小于4000和工资大于20000)

练习(查出工资在4000和20000区间的员工)

6、限制性的SELECT查询,复合条件WHERE(or、and)
练习(查出部门编码是50的,工资高于20000和工资小于4000的员工)

7、查询排序 ORDER BY (desc, asc)
练习(查询last_name,salary工资按照从小到大的顺序排列)

练习(查询last_name,salary工资按照从大到大的顺序排列)

8、查询分组GROUP BY
练习(列出公司所有部门,每个部门一条记录不能重复department_id);有2种写法注意distinct的用法


9、查询分组合计GROUP BY +SUM +Order by
练习(分组合计公司每个部门的工资总和,并且从低到高排序)

10、限制性的查询分组合计GROUP BY +SUM +Where


---------------------------------------------------------------------------
四、SQL-DDL的学习 create,drop,alter,truncate,rename
---------------------------------------------------------------------------
一)、create 创建表
--------------------------------------------------------------------------
1、创建表 Jxc_Spx
2、在Sptxm和Spbm上分别的创建2根索引


二)、alter 对表的改
--------------------------------------------------------------------------
1、增加列 bz 在表 Jxc_Spx 上
2、删除列 bz 在表 Jxc_Spx 上


三)、rename 修改表名
--------------------------------------------------------------------------
1、修改表名 Jxc_Spx 为 Jxc_Spx_bak


四)、truncate 清空数据,不记录日值
--------------------------------------------------------------------------
清空 Jxc_Spx中的数据


五)、drop 删除表
--------------------------------------------------------------------------
删除表 Jxc_Spx

--------------------------------------------------------------------------
五、SQL-DML的学习 insert,update,delete
--------------------------------------------------------------------------

一)、insert
--------------------------------------------------------------------------
1、往Jxc_Spxx中插入单行的值

2、把Jxc_Spxx中的值插入到Jxc_Spxx_bak中

3、有条件的把把Jxc_Spxx中的值插入到Jxc_Spxx_bak中


二)、update
--------------------------------------------------------------------------
1、修改 Jxc_Spxx 表中的 编号为0001的商品的进价为50

2、修改 Jxc_Spxx 表中的 编号为0002的商品的进价为50,售价为100
修改多列

3、参照 Jxc_Spxx_bak 中的数据,把Jxc_Spxx中的进价和售价更新为和Jxc_Spxx_bak 中一样

三)、delete
--------------------------------------------------------------------------
1、删除编号为0001的数据


--------------------------------------------------------------------------
六、SQL-函数
--------------------------------------------------------------------------
一)、函数的定义
-------------------------------------------------------------------------
1、函数的定义:有输入参数,有返回值
2、函数类型:通用函数,字符处理函数,数字处理函数,类型转换函数
3、通用函数
4、查询系统当前登陆用户
select user from dual;
dual:系统表,哑表

二)、函数的介绍
---------------------------------------------------------------------------
1、字符处理函数
---------------------------------------------------------------------------
LOWER
定义:大写转换小写
举例:
select LOWER('SQL Course') from dual;
Select wpcs,LOWER(wpcs),LOWER(LOWER(wpcs)) from jxc_Spx;
----------------------------------------------------------------------------
UPPER
定义:小写转换大写
举例:
select UPPER('SQL Course') from dual;
Select wpcs,UPPER(wpcs),UPPER(UPPER(wpcs)) from jxc_Spx;
----------------------------------------------------------------------------
LOWER,UPPER的混和使用
Select wpcs,LOWER(wpcs),UPPER(wpcs),UPPER(LOWER(wpcs)) from jxc_Spx;
----------------------------------------------------------------------------
INITCAP ()
返回string 将每个单词的首字母大写,所有其他字母小写
select INITCAP('SQL Course') from dual;
----------------------------------------------------------------------------
CONCAT ()
Oracle的concat函数只能连接两个字符串
select CONCAT('Good','String') from dual;
----------------------------------------------------------------------------
SUBSTR
字符串截取函数
select SUBSTR('String',2,3) from dual;
比较:
select SUBSTR('String',1,3) from dual;
select SUBSTR('String',0,3) from dual;
----------------------------------------------------------------------------
INSTR
查找字符位置
select INSTR('hello','e') from dual;
----------------------------------------------------------------------------
LENGTH
判断字符串长度
select LENGTH('String') from dual;
----------------------------------------------------------------------------
TRIM
去除空格
select TRIM(' String ') from dual;
RTRIM()去除右空格
LTRIM()去除左空格
----------------------------------------------------------------------------
LENGTH和TRIM的联合使用
不加Trim
select LENGTH(' String ') from dual;
加 Trim
select LENGTH(TRIM(' String ')) from dual;


练习:
1、把last_name,和first_name用“-”号连接起来,并且2字段的第一个字母大写;
2、利用以学的函数,在一条语句中把' deng , nansen '改成 “Nansen-Deng”


----------------------------------------------------------------------------
2、数字处理函数 - 无外呼是对函数的一种处理还计算
----------------------------------------------------------------------------
ROUND
----------------------------------------------------------------------------
可以四舍五入
select ROUND(45.923,2) from dual;
select ROUND(45.923,0) from dual;
select ROUND(45.923,-1) from dual;

TRUNC
----------------------------------------------------------------------------
截取到小数点后位数,不四舍五入
select TRUNC(45.923,2) from dual;
select TRUNC(45.923,0) from dual;
select TRUNC(45.923,-1) from dual;
select TRUNC(45.923,-2) from dual;

MOD
----------------------------------------------------------------------------
取余数
select MOD(1600,300) from dual;

Sum 合计
-----------------------------------------------------------------------------
sum(salary)
select sum(salary) from employees;

Max 最大
-----------------------------------------------------------------------------
max(salary)
select max(salary) from employees;

Min 最小
-----------------------------------------------------------------------------
select min(salary) from employees;

count()行数
-----------------------------------------------------------------------------
select count(*) from employees;

AVG 求平均值
-----------------------------------------------------------------------------
select AVG(salary) from employees;


练习:
-----------------------------------------------------------------------------
1、用一条SQL语句汇总每个部门的"合计工资","平均工资精确到小数点后2位","最大工资","最小工资","部门人数"并且显示部门ID


----------------------------------------------------------------------------
3、日期处理函数
----------------------------------------------------------------------------
--日期在Oracle数据库中存储为数字,
--存储的内容是世纪,年,月,日,小时,分钟,秒
--日期的默认显示格式
--日期可以进行加减运算,单位是天
--考虑加一个小时如何操作

--日期函数:
sysdate 系统时间
----------------------------------------------------------------------------
select sysdate from dual;

MONTHS_BETWEEN 比较月的差值
----------------------------------------------------------------------------
select MONTHS_BETWEEN(sysdate,sysdate-180) from dual;

ADD_MONTHS增加月数
----------------------------------------------------------------------------
select ADD_MONTHS(sysdate,2) from dual;

NEXT_DAY 得到比日期D晚的由CHAR命名的第一个周几的日期.
----------------------------------------------------------------------------
select NEXT_DAY(sysdate,6) from dual;

LAST_DAY 月底
----------------------------------------------------------------------------
select LAST_DAY(sysdate) from dual;
select LAST_DAY(TO_DATE('1999.10.20 18:30:05','yyyy.mm.dd hh24:mi:ss')) from dual;

----------------------------------------------------------------------------
4、类型转换函数
----------------------------------------------------------------------------
TO_CHAR 转换为字符型(长度匹配)
----------------------------------------------------------------------------
select TO_CHAR(12345.237,'9,999,999.99') from dual;
select TO_CHAR(12345,'$9,999,999.99') from dual;
select TO_CHAR(21,'00000') from dual;

TO_NUMBER 转换为数字型(长度匹配,字符匹配)
----------------------------------------------------------------------------
select TO_NUMBER('$12,345','$9,999,999') from dual;

TO_DATE 转换为日期型(标识符匹配)
----------------------------------------------------------------------------
TO_DATE('1999.10/20 18:30:05','yyyy.mm/dd hh24:mi:ss')
select TO_DATE('1999-10-20 18:30:05','yyyy-mm-dd hh24:mi:ss') from dual;

----------------------------------------------------------------------------
七.、多表连接查询
----------------------------------------------------------------------------
---------------------------------------------------------------------------
一)、多表关联的产生
---------------------------------------------------------------------------
a个表里面的需要的数据,存在于b,D,E表,同时a表和b,d,e表中又有相关联的条件

---------------------------------------------------------------------------
二)、一个简单的2表关联查询
---------------------------------------------------------------------------

1、用where和join的方式检索并显示员工姓名,以及员工所在部门的名称
---------------------------------------------------------------------------

---------------------------------------------------------------------------
三)、多表关联
---------------------------------------------------------------------------
--employees: 员工表
--departments: 部门表
--jobs: 职务


1、练习:用where和join的不同方式查询出 员工姓名/部门名称/工作名称

2、练习:用where和join的不同显示JOB_HISTORY中所有列,并用Join语句把表中的所有ID 替换为NAME
内容概要:本文是一份针对2025年中国企业品牌传播环境撰写的《全网媒体发稿白皮书》,聚焦企业媒体发稿的策略制定、渠道选择与效果评估难题。通过分析当前企业面临的资源分散、内容同质、效果难量化等核心痛点,系统性地介绍了闻媒体、央媒、地方官媒和自媒体四大渠道的特点与适用场景,并深度融合“传声港”AI驱动的媒体平台能力,提出“策略+工具+落地”的一体化解决方案。白皮书详细阐述了传声港在资源整合、AI智能匹配、舆情监测、合规审核及全链路效果追踪方面的技术优势,构建了涵盖曝光、互动、转化与品牌影响力的多维评估体系,并通过快消、科技、零售等行业的实战案例验证其有效性。最后,提出了按企业发展阶段和营销节点定制的媒体组合策略,强调本土化传播与政府关系协同的重要性,助力企业实现品牌声量与实际转化的双重增长。; 适合人群:企业市场部负责人、品牌方管理者、公关传播从业者及从事数字营销的相关人员,尤其适用于初创期至成熟期不同发展阶段的企业决策者。; 使用场景及目标:①帮助企业科学制定媒体发稿策略,优化预算分配;②解决渠道对接繁琐、投放不精准、效果不可衡量等问题;③指导企业在重大营销节点(如春节、双11)开展高效传播;④提升品牌权威性、区域渗透力与危机应对能力; 阅读建议:建议结合自身企业所处阶段和发展目标,参考文中提供的“传声港服务组合”与“预算分配建议”进行策略匹配,同时重视AI工具在投放、监测与优化中的实际应用,定期复盘数据以实现持续迭代。
先展示下效果 https://pan.quark.cn/s/987bb7a43dd9 VeighNa - By Traders, For Traders, AI-Powered. Want to read this in english ? Go here VeighNa是一套基于Python的开源量化交易系统开发框架,在开源社区持续不断的贡献下一步步成长为多功能量化交易平台,自发布以来已经积累了众多来自金融机构或相关领域的用户,包括私募基金、证券公司、期货公司等。 在使用VeighNa进行二次开发(策略、模块等)的过程中有任何疑问,请查看VeighNa项目文档,如果无法解决请前往官方社区论坛的【提问求助】板块寻求帮助,也欢迎在【经验分享】板块分享你的使用心得! 想要获取更多关于VeighNa的资讯信息? 请扫描下方二维码添加小助手加入【VeighNa社区交流微信群】: AI-Powered VeighNa发布十周年之际正式推出4.0版本,重磅增面向AI量化策略的vnpy.alpha模块,为专业量化交易员提供一站式多因子机器学习(ML)策略开发、投研和实盘交易解决方案: :bar_chart: dataset:因子特征工程 * 专为ML算法训练优化设计,支持高效批量特征计算与处理 * 内置丰富的因子特征达式计算引擎,实现快速一键生成训练数据 * Alpha 158:源于微软Qlib项目的股票市场特征集合,涵盖K线形态、价格趋势、时序波动等多维度量化因子 :bulb: model:预测模型训练 * 提供标准化的ML模型开发模板,大幅简化模型构建与训练流程 * 统一API接口设计,支持无缝切换不同算法进行性能对比测试 * 集成多种主流机器学习算法: * Lass...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值