Oracle小练习

这篇博客主要介绍了Oracle数据库的基础知识,包括启动服务、默认用户、JDBC连接方式等内容,并通过一系列SQL查询练习,涵盖了简单查询、数据排序、条件判断等操作。练习涉及员工表的数据,如查询部门员工信息、工资计算、提成比例等。

1.在使用Oracle数据库时至少需要启动( A )服务。
A.OracleOraDbllg_homelTNSListener
B.OracleServiceSID
C.OracleDBConSQLeSID
D.OraclejobSchedulerSID
在这里插入图片描述
2.下列( D )不是Oracle默认的用户。
A.system
B.sys
C.scott
D.sa
3.关于jdbc:oracle:thin:@localhost:1521:orcl说法正确的是( A )。
A.1521是Oracle的默认端口号
B.orcl是表名
C.localhost表示应用程序所在的机器
D.最后一个:号可以换成分号
4.下列( C )用于支持OEM服务。
A. OracleOraDbllg_homelTNSListener
B.OracleServiceSID
C.OracleDBConsoleSID
D. OracleJobSchedulerSID
5.下列关于序列的说法正确的是( D )。
A.序列一旦创建,就可以立即使用CURRVAL列
B.在引用序列的CURRVAL列前,必须引用过一次NEXTVAL列
C.可以修改序列中的起始值
D.序列的初始值可以从0开始
6.下列( A )用于在客户端配置网络服务名。
A.tnsnames.ora
B.listener.ora
C.sqlnet.ora
D.Tnsname.ora

Chap1 简单查询
key point:
 简单select语句的书写
 order by 数据排序
 where条件判断

练习

  1. 查询员工表所有数据
    select * from EMPLOYEES;
  2. 打印公司里所有的manager_id
    select e.email FROM EMPLOYEES E;
  3. 查询所员工的email全名,公司email 统一以 “@zpark.cn” 结尾.
    select email||’@zpark.cn’ from EMPLOYEES;
  4. 按照入职日期由新到旧排列员工信息
    select * from EMPLOYEES order by hire_date desc;
  5. 查询80号部门的所有员工
    select * from EMPLOYEES where department_id=80;
  6. 查询50号部门的员工姓名以及全年工资.
    select first_name “姓名”,salary*12 “全年工资” from EMPLOYEES where department_id=50;
  7. 查询50号部门每人增长1000元工资之后的人员姓名及工资.
    select first_name “姓名”,salary+1000 “增长后的工资” from EMPLOYEES where department_id = 50;
  8. 查询80号部门工资大于7000的员工的全名与工资.
    select first_name||last_name 姓名,salary 工资 from EMPLOYEES where department_id=80 and salary>7000;
  9. 查询80号部门工资大于8000并且提成高于0.3的员工姓名,工资以及提成
    select * from first_name,commission_pct,salary from EMPLOYEES where department_id=80 and salary>8000 and commission_pct>0.3;
  10. 查询职位(job_id)为’AD_PRES’的员工的工资
    select salary from employees where job_id = ‘AD_PRES’;
  11. 查询工资高于7000但是没有提成的所有员工.
    select * from employees where salary>7000 and commission_pct is null;
  12. 查询佣金(commission_pct)为0或为NULL的员工信息
    select * from employees where commission_pct = 0 or commission_pct is null;
  13. 查询入职日期在2002-5-1到2002-12-31之间的所有员工信息
    select * from employees where hire_date between to_date(‘2002-1-1’, ‘yyyy-mm-dd’) and to_date(‘2002-12-30’, ‘yyyy-mm-dd’);
    BETWEEN 操作符
    操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
  14. 显示姓名中没有’L’字的员工的详细信息或含有’SM’字的员工信息
    select * from employees where first_name not like ‘%L%’ or first_name like ‘%SM%’;
  15. 查询电话号码以8开头的所有员工信息.
    select * from employees where phone_number like ‘8%’;
  16. 查询80号部门中last_name以n结尾的所有员工信息
    select * from employees where last_name like ‘%n’ and department_id=80;
  17. 查询所有last_name 由四个以上字母组成的员工信息
    select * from employees where last_name like’____%’;
  18. 查询first_name 中包含"na"的员工信息.
    select * from employees where first_name like ‘%na%’;
1.desc table_name 可以查询表的结构 2.怎么获取有哪些用户在使用数据库 select username from v$session; 3.如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ? select sys_context('userenv','ip_address') from dual; 如果是登陆本机数据库,只能返回127.0.0.1 4.如何给表、列加注释? SQL>comment on table 表 is '表注释'; 注释已创建 SQL>comment on column 表.列 is '列注释'; 注释已创建。 查询该用户下的注释不为空的表 SQL> select * from user_tab_comments where comments is not null; 5.如何在ORACLE中取毫秒? select systimestamp from dual; 6.如何在字符串里加回车? 添加一个||chr(10) select 'Welcome to visit'||chr(10)||'www.youkuaiyun.com' from dual ; 7.怎样修改oracel数据库的默认日期? alter session set nls_date_format='yyyymmddhh24miss'; 8.怎么可以看到数据库有多少个tablespace? select * from dba_tablespaces; 9.如何显示当前连接用户? SHOW USER 10.如何测试SQL语句执行所用的时间? SQL>set timing on ; 11.怎么把select出来的结果导到一个文本文件中? SQL>SPOOL F:\ABCD.TXT; SQL>select * from table; SQL >spool off; 12.如何在sqlplus下改变字段大小? alter table table_name modify (field_name varchar2(100)); 改大行,改小不行(除非都是空的) 13.如果修改表名? alter table old_table_name rename to new_table_name; 14.如何搜索出前N条记录? (desc降序) SELECT * FROM Tablename WHERE ROWNUM < n ORDER BY column; 15. 如何在给现有的日期加上2年? select add_months(sysdate,24) from dual; 16.Connect string是指什么? 应该是tnsnames.ora中的服务名后面的内容 17.返回大于等于N的最小整数值? SELECT CEIL(-10.102) FROM DUAL; 18.返回小于等于N的最大整数值? SELECT FLOOR(2.3) FROM DUAL; 19.返回行的物理地址 SELECT ROWID, ename FROM tablename WHERE deptno = 20 ;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值