文档详情

oracle练习-SQL.doc

发布:2017-03-02约3.5千字共5页下载文档
文本预览下载声明
使用scott用户,密码为tiger登录数据库orcl,数据库中有一个表,表名为emp,具体信息如下: emp职工表; 表中有如下列:empno(职工编号)、ename(职工姓名)、job(岗位)、MGR(主管的职工编号)、hiredate(入职日期)、sal(薪水)、comm(津贴)、deptno(部门编号) 练习一: 查询emp(雇员)整个表内容; select * from emp; 只查询emp表中的job和deptno两列信息; select job,deptno from emp; 查询emp表中数据,并给列取中文别名 ; select job 工作 ,deptno 部门编号 from emp; 4.将姓名和薪水两列连接起来显示“xxx的薪水是多少”这样的信息; select ename||薪水是||sal from emp; 5.查询岗位为CLERK的职工信息; select * from emp where job=CLERK; 6.查询部门编号不是10的职工信息; select * from emp where deptno!=10; 7.查询comm为空值的职工信息; select * from emp where comm is null; 8.查询职工姓名中带有A的职工信息; select * from emp where ename like %A%; 9.查询职工姓名中倒数第二个字符为E的职工信息; select * from emp where ename like %E_; 10.查询职工姓名中带有L和E的职工信息,并且姓名中L在前,E在后;要求:只查询出职工编号,职工姓名,薪水和部门编号这四列,并且给部门编号列取中文别名;(扩展练习) select empno职工编号,ename职工姓名,sal薪水,deptno部门编号 from emp; 查询职工姓名中带有L和E的职工信息,并且姓名中L在前,E在后,且要求姓名第三位是L; select * from emp where ename like __LE% 练习2: 1.查询部门编号为30,MGR主管编号为7698的员工信息; select * from emp where deptno=30 and mgr=7698; 2.查询部门编号为10,或者job为CLERK的员工信息 select * from emp where deptno=10 or job=CLERK; 3.查询sal大于等于900,小于3000,并且部门编号为10、20的职工信息; select * from emp where sal=900 and sal3000 or deptno=10and deptno=20; 4.查询mgr主管编号不是7698和7788,或者job岗位为CLERK的职工信息,查询结果并且先按sal薪水降序排列,再按empno职工编号升序排列 (扩展练习) select * from emp where not(mgr=7698 or mgr=7798) or job=CLERK order by sal desc,empno asc; 5.将下面SQL分别执行,能得出什么结论?(扩展练习) select * from emp where deptno=30 and mgr=7698 or job=CLERK; select * from emp where job=CLERK or deptno=30 and mgr=7698; select * from emp where deptno=30 or mgr=7698 and job=CLERK; 练习3: 1.往emp表里插入一条雇员信息,雇员编号为4位,第一位为按组号取,其他三位组内讨论决定,hiredate取当前系统值,DEPTNO部门编号取值为10、20、30当中的一个,其他字段自行决定;不提交 2.将deptno取值为10的职工薪水翻倍,并且ename在原来取值的基础上拼接上TEST;不提交,设置一个保存点,保存点名字以自己的名字命名 3.删除刚刚插入的的职工信息;不提交 4.回滚到保存点; 5.提交,最后数据会变成什么样? 练习4: 两个表定义如下:(如果已经有该表,则将该表删除掉再重新创建) ---省份表,省份id和省份名称; create table province( pro_id varchar2(10), pro_name varchar2(30), primary key(pro_id)); --公民信息表,身份证id,姓名,年龄,城市,性别,手机号,学历。其中省份定义为省份表中的省份id的外键 c
显示全部
相似文档