-------------------------------------------------------------------------
三、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
分享到:
相关推荐
sql练习题学习!!!
SQL自学资料的集合涵盖了多种数据库系统,提供了全面的学习资源,适合对数据库操作感兴趣的初学者和进阶者。下面,我们将深入探讨SQL的基本概念、主要功能以及如何在不同数据库中应用。 SQL的基础知识包括数据类型...
#### 五、经典SQL练习题解析 ##### 1. 查询“0001”课程比“C002”课程成绩高的所有学生的学号 ```sql SELECT S# FROM SC WHERE C# = '0001' AND SCORE > ANY (SELECT SCORE FROM SC WHERE C# = '0002'); ``` **...
本资料包中的"SQL经典练习题.sql练习."包含了个人收藏的一系列SQL题目和案例,这些内容常常在面试中出现,对提升SQL技能和准备面试具有很高的价值。 首先,我们要了解SQL的基本概念。SQL主要包括以下几个部分: 1....
这个“典型SQL练习题”压缩包提供了深入理解和掌握SQL查询技能的机会。下面,我们将深入探讨标题和描述中所涵盖的知识点,并结合提供的文件,给出详细的学习路径。 首先,"PracticeOfSqlQuery.doc"可能是一个文档,...
2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最...
此文档为sql server练习表,适合初学者练习用,数据可自行增加
SQL 练习 脚本(实践中学习)SQL 练习 脚本(实践中学习)SQL 练习 脚本(实践中学习)
"SQL代码 sql练习"这个资源提供了两个SQL脚本文件——SQLQuery1.sql和试题作业.sql,旨在帮助学习者深入理解和应用SQL语句。 SQLQuery1.sql可能包含了各种基础到进阶的查询示例,如SELECT语句的使用,包括选择特定...
通过这些表,你可以进行各种SQL练习,比如: 1. **基本查询**:查询所有部门、员工或职位的列表。 2. **连接查询**:联合多个表,获取员工的全名、职位、部门和工作地点等信息。 3. **分组和聚合**:统计每个部门的...
sql练习及实例,相关练习语句案例。时间编写的写法等。
"典型Sql练习题"这个主题涵盖了从基础查询到复杂联接、子查询、存储过程等多个方面,旨在帮助C#、ASP.NET开发者以及数据库管理员(DBA)增强对SQL的理解和应用能力。 首先,基础的SQL查询包括SELECT语句,用于从...
SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系数据库系统的主要语言。在本篇总结中,我们将深入探讨SQL的核心概念、...不断练习和总结,你的SQL技能将更加熟练,为你的职业生涯奠定坚实基础。
### Hive SQL练习题库知识点详解 #### 一、Hive SQL概述 Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,使不熟悉 MapReduce 的用户可以利用 SQL...
本资料包针对Oracle数据库的SQL使用提供了丰富的练习资源,旨在帮助用户深入理解和熟练掌握SQL语言在Oracle环境中的应用。 "SQL10G.CHM"可能是一个关于Oracle 10g版本的SQL参考手册或教程,其中包含了该版本SQL语法...
首先,文件标题为“sql练习题.pdf”,说明文档中包含了50道针对SQL的练习题。文档描述中提到题目难度递增,前18道题目难度逐步上升,从第19题开始则是循环练习和附加的function练习。这表明这份练习题是按照难度分层...
网上有一篇关于SQL的经典文章,超经典SQL练习题,做完这些你的SQL就过关了,引用和分析它的人很多,于是今天复习SQL的时候找来练了练手。
本文提供的经典练习题旨在帮助初学者熟悉SQL语句的编写,特别是针对Oracle数据库特有的功能。以下将详细讲解涉及的知识点。 1. **基本查询操作**:练习题中包含了查询员工表(emp)和部门表(dept)的基础信息,...
vfp6.0结构化查询语言SQL练习题1附带答案,包含简单查询、条件查询、查询排序、分组、嵌套查询、SQL数据定义等