您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 查询SQL(学生1)
使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那oracle就会将default分配给用户。(1)帐户锁定概述:指定该帐户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。创建profile文件sqlcreateprofilelock_accountlimitfailed_login_attempts3password_lock_time2;sqlalteruserteaprofilelock_account;2)给帐户(用户)解锁sqlalteruserteaaccountunlock;(3)终止口令为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作.例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登陆密码,宽限期为2天。看看怎么做.sqlcreateprofilemyprofilelimitpassword_life_time10password_grace_time2;sqlalteruserteaprofilemyprofile■口令历史概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。例子:1)建立profilesqlcreateprofilepassword_historylimitpassword_life_time10password_grace_time2password_reuse_time10password_reuse_time//指定口令可重用时间即10天后就需要修改2)分配给某个用户.sqlalteruserteaprofilemyprofile■删除profile概述:当不需要某个profile文件时,可以删除该文件.sqldropprofileprofile文件名不但能对口令进行管理,也能对资源进行管理创建一个名为res_profile的概要文件,要求每个用户最多可以创建4个并发会话;每个会话持续时间最长为60分钟;如果会话在连续20分钟内空闲,则结束会话;每个会话的私有SQL区为100KB;每个SQL语句占用CPU时间总量不超过10秒。CREATEPROFILEres_profileLIMITSESSIONS_PER_USER4CONNECT_TIME60IDLE_TIME20PRIVATE_SGA100KCPU_PER_CALL1000;创建一个名为pwd_profile的概要文件,如果用户连续4次登录失败,则锁定该账户,10天后该账户自动解锁。CREATEPROFILEpwd_profileLIMITFAILED_LOGIN_ATTEMPTS4PASSWORD_LOCK_TIME10;查询SQL介绍在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家演示如何使用select语句,select语句在软件编程中非常的有用,希望大家好好的掌握。ANALYST分析师PRESIDENT总裁CLEAK普通职员SALESMAN销售人员MANAGER总经理NEWYORK纽约ACCOUNTING财务部RESEARCH研发部SALES销售部OPERATIONS业务部NEWYORK纽约DALLAS达拉斯加CHIGAGO芝加哥BOSTON波士顿1.基本select语句SELECT[DISTINCT]*|{column1,column2.column3..}FROMtable;Select指定查询哪些列的数据。column指定列名。*号代表查询所有列。From指定查询哪张表。DISTINCT可选,指显示结果时,是否剔除重复数据1)查看表结构sqldesc表名;2)查询所有列select*from表名;注意:尽量少用*,在大表查询过程中,影响速度3)查询指定列select列1,列2…from表名;selectempno,ename,sal;selecttimingon;4)如何取消重复行Distinctselectdistinctdeptno,jobfromemp;?查询SMITH的薪水,工作,所在部门Selectsal,job,deptnofromempwhereename=’SMITH’5)使用算数表达式?显示每个雇员的年工资Descemp;SELECTSAL*12,ENAMEFROMEMP;SELECTSAL*12“年工资”,ENAMEFROMEMP;Selectsal*12+comm*12“年工资”,ENAME,COMMFROMEMP;Selectsal*12+NVL(comm,0)*12“年工资”,ENAME,COMMFROMEMP;6)如何处理null值使用nvl函数来处理Selectsal*12+NVL(comm,0)*12“年工资”,ENAME,COMMFROMEMP;7)使用列的别名selectename姓名,sal*12as年收入fromemp;2.oracle表基本查询—简单的查询语句(重点)1)使用where子句?如何显示工资高于3000的员工?如何查找1982.1.1后入职的员工?如何显示工资在2000到2500的员工情况2)如何使用like操作符%:表示任意0到多个字符_:表示任意单个字符?如何显示首字符为S的员工姓名和工资?如何显示第三个字符为大写O的所有员工的姓名和工资3)在where条件中使用in?如何显示empno为123,345,800...的雇员情况4)使用isnull的操作符?如何显示没有上级的雇员的情况5)使用逻辑操作符号?查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名首写字母为大写的J6)使用orderby子句?如何按照工资的从低到高的顺序显示雇员的信息?按照部门号升序而雇员的工资降序排列?按照部门号升序而雇员的入职时间降序排列7)使用列的别名排序别名需要使用””号圈中3.oracle表复杂查询1)说明在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的select语句2)数据分组-max,min,avg,sum,count?如何显示所有员工中最高工资和最低工资?显示所有员工的平均工资和工资总和?计算共有多少员工Selectcount(*)fromemp;?从员工表中查询所有的部门个数Selectcount(distinctdeptno)fromemp;?统计员工工资的方差和标准差Selectvariance(sal),stddev(sal)fromemp;扩展要求:?请显示工资最高的员工的名字,工作岗位?请显示工资高于平均工资的员工信息3)groupby和having子句groupby用于对查询的结果分组统计,having子句用于限制分组显示结果.?如何显示每个部门的平均工资和最高工资?显示每个部门的每种岗位的平均工资和最低工资?显示平均工资低于2000的部门号和它的平均工资4)对数据分组的总结1分组函数只能出现在选择列表、having、orderby子句种2如果在select语句种同时包含有groupby,having,orderby那么他们的顺序是groupby,having,orderby3在选择列种如果有列、表达式、和分组函数,那么这些列和表达式必须有一个出现在groupby子句中,否则就会出错如selectdeptno,avg(sal),max(sal)fromempgroupbydeptnohavingavg(sal)2000;这里deptno就一定要出现在groupby中4.oracle表复杂查询—多表查询说明多表查询是指基于两个和两个以上的表或是视图的查询.在实际应用中,查询单个表可能不能满足你的需求,(如显示sales部门位置和其员工的姓名),这种情况下需要使用到(dept表和emp表)?显示雇员名,雇员工资及所在部门的名字【笛卡尔集】规定:多表查询的条件是至少不能少于表的个数-1?如何显示部门号为10的部门名、员工名和工资?显示各个员工的姓名,工资,及其工资的级别扩展要求:?显示雇员名,雇员工资及所在部门的名字,并按部门排序.
本文标题:查询SQL(学生1)
链接地址:https://www.777doc.com/doc-4843860 .html