`
xx521
  • 浏览: 26925 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

今天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

3
1
分享到:
评论

相关推荐

    sql练习题学习!!!

    sql练习题学习!!!

    SQL自学资料!!!!

    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技能和准备面试具有很高的价值。 首先,我们要了解SQL的基本概念。SQL主要包括以下几个部分: 1....

    典型SQL练习题

    这个“典型SQL练习题”压缩包提供了深入理解和掌握SQL查询技能的机会。下面,我们将深入探讨标题和描述中所涵盖的知识点,并结合提供的文件,给出详细的学习路径。 首先,"PracticeOfSqlQuery.doc"可能是一个文档,...

    2024年经典SQL练习题-IT类课程习题资源(史上最全资料)

    2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最全资料)2024年经典SQL练习题-IT类课程习题资源(史上最...

    sql server 练习表

    此文档为sql server练习表,适合初学者练习用,数据可自行增加

    SQL 练习 脚本(实践中学习)

    SQL 练习 脚本(实践中学习)SQL 练习 脚本(实践中学习)SQL 练习 脚本(实践中学习)

    SQL代码 sql练习

    "SQL代码 sql练习"这个资源提供了两个SQL脚本文件——SQLQuery1.sql和试题作业.sql,旨在帮助学习者深入理解和应用SQL语句。 SQLQuery1.sql可能包含了各种基础到进阶的查询示例,如SELECT语句的使用,包括选择特定...

    sql 练习用数据

    通过这些表,你可以进行各种SQL练习,比如: 1. **基本查询**:查询所有部门、员工或职位的列表。 2. **连接查询**:联合多个表,获取员工的全名、职位、部门和工作地点等信息。 3. **分组和聚合**:统计每个部门的...

    sql练习及实例

    sql练习及实例,相关练习语句案例。时间编写的写法等。

    典型Sql练习题

    "典型Sql练习题"这个主题涵盖了从基础查询到复杂联接、子查询、存储过程等多个方面,旨在帮助C#、ASP.NET开发者以及数据库管理员(DBA)增强对SQL的理解和应用能力。 首先,基础的SQL查询包括SELECT语句,用于从...

    sql练习总结sql经验总结

    SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系数据库系统的主要语言。在本篇总结中,我们将深入探讨SQL的核心概念、...不断练习和总结,你的SQL技能将更加熟练,为你的职业生涯奠定坚实基础。

    Hive SQL练习题库

    ### Hive SQL练习题库知识点详解 #### 一、Hive SQL概述 Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,使不熟悉 MapReduce 的用户可以利用 SQL...

    Oracle数据库SQL练习

    本资料包针对Oracle数据库的SQL使用提供了丰富的练习资源,旨在帮助用户深入理解和熟练掌握SQL语言在Oracle环境中的应用。 "SQL10G.CHM"可能是一个关于Oracle 10g版本的SQL参考手册或教程,其中包含了该版本SQL语法...

    sql练习题.pdf

    首先,文件标题为“sql练习题.pdf”,说明文档中包含了50道针对SQL的练习题。文档描述中提到题目难度递增,前18道题目难度逐步上升,从第19题开始则是循环练习和附加的function练习。这表明这份练习题是按照难度分层...

    经典SQL练习题(MySQL版).sql

    网上有一篇关于SQL的经典文章,超经典SQL练习题,做完这些你的SQL就过关了,引用和分析它的人很多,于是今天复习SQL的时候找来练了练手。

    Oracle SQL:经典练习题(附答案)

    本文提供的经典练习题旨在帮助初学者熟悉SQL语句的编写,特别是针对Oracle数据库特有的功能。以下将详细讲解涉及的知识点。 1. **基本查询操作**:练习题中包含了查询员工表(emp)和部门表(dept)的基础信息,...

    vfp6.0SQL练习题

    vfp6.0结构化查询语言SQL练习题1附带答案,包含简单查询、条件查询、查询排序、分组、嵌套查询、SQL数据定义等

Global site tag (gtag.js) - Google Analytics