《查询SQL(学生1).doc》由会员分享,可在线阅读,更多相关《查询SQL(学生1).doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、_使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那oracle就会将default分配给用户。(1) 帐户锁定概述: 指定该帐户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。创建profile文件sql create profile lock_account limit failed_login_attempts
2、 3 password_lock_time 2;sqlalter user tea profile lock_account;2)给帐户(用户)解锁sql alter user tea account unlock;(3)终止口令为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作.例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登陆密码,宽限期为2天。看看怎么做.sql create profile myprofile limit password_life_time 10 password_grace_time 2;
3、sqlalter user tea profile myprofile 口令历史概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。例子: 1)建立profile sql create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10 password_reuse_time
4、 /指定口令可重用时间即10天后就需要修改 2)分配给某个用户. sqlalter user tea profile myprofile 删除profile概述:当不需要某个profile文件时,可以删除该文件.sql drop profile profile文件名不但能对口令进行管理,也能对资源进行管理p 创建一个名为res_profile的概要文件,要求每个用户最多可以创建4个并发会话;每个会话持续时间最长为60分钟;如果会话在连续20分钟内空闲,则结束会话;每个会话的私有SQL区为100 KB;每个SQL语句占用CPU时间总量不超过10秒。CREATE PROFILE res_profi
5、le LIMITSESSIONS_PER_USER 4 CONNECT_TIME 60 IDLE_TIME 20 PRIVATE_SGA 100K CPU_PER_CALL 1000;p 创建一个名为pwd_profile的概要文件,如果用户连续4次登录失败,则锁定该账户,10天后该账户自动解锁。CREATE PROFILE pwd_profile LIMIT FAILED_LOGIN_ATTEMPTS 4PASSWORD_LOCK_TIME 10;查询SQL介绍在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家演示如何使用select语句,select语句在软件编
6、程中非常的有用,希望大家好好的掌握。ANALYST 分析师PRESIDENT 总裁CLEAK 普通职员SALESMAN 销售人员MANAGER 总经理 NEW YORK 纽约ACCOUNTING 财务部RESEARCH 研发部SALES 销售部OPERATIONS 业务部NEW YORK 纽约DALLAS 达拉斯加CHIGAGO 芝加哥BOSTON 波士顿1基本select语句SELECT DISTINCT *|column1, column2. column3.FROMtable;l Select 指定查询哪些列的数据。l column指定列名。l *号代表查询所有列。l From指定查询哪
7、张表。l DISTINCT可选,指显示结果时,是否剔除重复数据1)查看表结构sqldesc 表名;2)查询所有列select * from 表名; 注意:尽量少用*,在大表查询过程中,影响速度3)查询指定列select 列1,列2 from 表名;select empno,ename,sal;select timing on;4)如何取消重复行Distinctselect distinct deptno,job from emp;?查询SMITH 的薪水,工作,所在部门Select sal,job ,deptno from emp where ename=SMITH5)使用算数表达式?显示每个
8、雇员的年工资Desc emp;SELECT SAL*12 ,ENAME FROM EMP ;SELECT SAL*12 “年工资” ,ENAME FROM EMP ;Select sal*12 +comm*12 “年工资” ,ENAME ,COMM FROM EMP ;Select sal*12 +NVL(comm,0)*12 “年工资” ,ENAME ,COMM FROM EMP ;6)如何处理null值使用nvl函数来处理 Select sal*12 +NVL(comm,0)*12 “年工资” ,ENAME ,COMM FROM EMP ;7)使用列的别名select ename 姓名,s
9、al*12 as 年收入 from emp;2oracle表基本查询简单的查询语句(重点)1)使用where子句?如何显示工资高于3000的员工?如何查找1982.1.1后入职的员工?如何显示工资在2000到2500的员工情况2)如何使用like操作符%: 表示任意 0到多个字符 _: 表示任意单个字符?如何显示首字符为S的员工姓名和工资?如何显示第三个字符为大写O的所有员工的姓名和工资3)在where条件中使用in?如何显示empno为 123,345,800.的雇员情况4)使用is null的操作符 ?如何显示没有上级的雇员的情况5)使用逻辑操作符号?查询工资高于500或是岗位为MANAG
10、ER的雇员,同时还要满足他们的姓名首写字母为大写的J6)使用order by子句?如何按照工资的从低到高的顺序显示雇员的信息?按照部门号升序而雇员的工资降序排列?按照部门号升序而雇员的入职时间降序排列7)使用列的别名排序别名需要使用”号圈中3. oracle表复杂查询1)说明在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的select语句2) 数据分组-max,min,avg,sum,count?如何显示所有员工中最高工资和最低工资?显示所有员工的平均工资和工资总和?计算共有多少员工Select count(*) from emp; ?从员工表中查
11、询所有的部门个数Select count(distinct deptno) from emp;?统计员工工资的方差和标准差Select variance(sal),stddev(sal) from emp;扩展要求:?请显示工资最高的员工的名字,工作岗位?请显示工资高于平均工资的员工信息3)group by 和 having子句group by用于对查询的结果分组统计,having子句用于限制分组显示结果.?如何显示每个部门的平均工资和最高工资?显示每个部门的每种岗位的平均工资和最低工资?显示平均工资低于2000的部门号和它的平均工资4)对数据分组的总结1分组函数只能出现在选择列表、havin
12、g、order by子句种2 如果在select 语句种同时包含有group by ,having ,order by 那么他们的顺序是group by , having , order by3 在选择列种如果有列、表达式、和分组函数,那么这些列和表达式必须有一个出现在group by 子句中,否则就会出错如select deptno,avg(sal),max(sal) from emp group by deptno having avg(sal)2000;这里deptno就一定要出现在 group by 中 4.oracle表复杂查询多表查询说明多表查询是指基于两个和两个以上的表或是视图的查询.在实际应用中,查询单个表可能不能满足你的需求,(如显示sales部门位置和其员工的姓名),这种情况下需要使用到(dept表和emp表)?显示雇员名,雇员工资及所在部门的名字 【笛卡尔集】规定:多表查询的条件是 至少不能少于 表的个数-1?如何显示部门号为10的部门名、员工名和工资?显示各个员工的姓名,工资,及其工资的级别扩展要求:?显示雇员名,雇员工资及所在部门的名字,并按部门排序. 13_