Oracle超全SQL,细节狂魔

前言SQL每个人都要用,但是用来衡量产出的并不是SQL本身,你需要用这个工具,去创造其它的价值 。
 1.基本命令 1、登陆SQL*Plus(以system用户登陆)conn system/jeames@orclconn sys/jeames@orcl as sysdba断开连接 – disc 2、显示用户名show user 3、设置显示行的宽度为100set linesize 100 4、设置每页显示的行数目为18 set pagesize 18 5、显示当前数据库的全称select * from global_name; 6、Oracle中究竟有多少种角色select * from dba_roles; 7、查询数据库的表空间,一般是DBA用户去查SQL>select tablespace_name from dba_tablespaces; 8、查询Oracle中所有的系统权限SQL>select * from system_privilege_map order by name; 9、查询Oracle中所有的对象权限SQL>select distinct privilege from dba_tab_privs; 10、当前用户下的表SQL>select table_name from user_tables; 11、 显示当前数据库可以访问的所有数据字典视图SQL>select * from dict where comments like’%grant%’; 12、查看某个用户具有什么样的角色?SQL>select * from dba_role_privs where grantee=‘SCOTT’; 13、查看某个用户(角色)具有什么样的系统权限?SQL>select * from dba_sys_privs where grantee=‘SCOTT’; 14、查看某个用户(角色)具有什么样的对象权限?SQL>select * from dba_tab_privs where grantee=‘SCOTT’; 15、查询Oracle中所有用户信息SQL> select * from all_users; 16、关闭数据库SQL>shutdown 17、启动数据库SQL>startup18、显示初始化参数SQL>show parameter19、提交事务SQL>COMMIT;20、打开输出选项SQL>set serveroutput on———————————————— 2.用户管理 1、创建用户watchdogSQL> create user watchdog identified by watchdog; 2、给用户watchdog修改密码SQL>password watchdog 3、删除用户watchdog–删除的用户已经创建了表,就需要在删除时带一个参数cascadeSQL>drop user watchdog cascade 4、运行Sql脚本(f:wdd.sql)SQL>@ d:wdd.sqlSQL>start d: wdd.sql 5、将内容输出到指定文件中去SQL>spool d:bb.sqlSQL>select * from empSQL>spool off 6、授权resource角色给watchdog–resource角色可以创建表SQL>grant resource to watchdog; 7、授权create session权限给watchdog–create session权限色可以登陆数据库SQL> grant create session to watchdog; 8、授权查询Scott用户的imp表给watchdogSQL>grant select on scott.emp to watchdog; 9、授权all权限(scott.emp)给watchdogSQL>grant all on scott.emp to watchdog; 10、system希望收回watchdog对scott.emp表的查询权限–谁授权谁收回SQL>revoke select on scott.emp from watchdog; 11、希望watchdog用户可以去查询Scott的imp表,还希望watchdog能把这个权限给别人SQL>grant select on scott.emp to watchdog with grant option;如果是系统权限,就加入with admin option,其他同理———————————————— 3.管理用户口令 1、账户锁定指定cfmaster这个用户最多只能尝试3次登录,锁定时间为2天SQL>create profile lock_account limit failed_login_attempts 3 >password_lock_time 2;SQL>alter user cfmaster profile lock_account; 2、账户解锁SQL>alter user cfmaster account unlock; 3、终止口令给用户xiaoming创建一个profile文件,要求该用户每隔10天修改自家的密码SQL>create profile myprofile limit password_life_time 10password_grace_time 2;SQL>alter user xiaoming profile myprofile; 4、删除profile文件(lock_account)SQL>drop profile lock_account; 4.表的管理 4.1 创建表SQL>create table student(2 xuehao number(4),3 xingming varchar2(20),4 sex char(2),5 birthday date,6 sal number(7,2)7 )8 /SQL> create table mytable (id,name,sal,job,deptno) as select empno,ename,sal,job,deptno from scott.emp;————————————————4.2 修改表
1、给表添加一个字段CLASSIDSQL> alter table student add (classid number(2)); 2、修改字段xingming的长度为30–修改字段的类型要求不能有数据SQL> alter table student modify (xingming varchar2(30)); 3、删除字段SALSQL>alter table student drop column sal; 4、修改表的名字为STUSQL> rename student to stu;5、删除表(stu)SQL>drop table stu 4.3 添加数据 1、所有字段都插入SQL> insert into student values(1,‘李芳’,‘女’,‘03-8月-99’); 2、改日期的默认格式SQL> alter session set nls_date_format=‘yyyy-mm-dd’; 3、部分字段插入(xingming、sex)SQL>insert into student(xingming,sex) values(‘李芳’,‘女’); 4、改一个字段(修改sex为“女”的生日为”2001-05-22”)SQL>update student set birthday='2001-05-22’where sex=‘女’; 5、修改多个字段–修改sex为女的生日为”2014-05-21”,xingming为张三SQL> update student set birthday=‘2014-05-21’,xingming='张三’where sex=‘女’; 6、删除所有数据SQL> delete from student; 7、删除某行SQL> delete from stu where fullname=‘王平平’; 8、设置回滚点SQL> savepoint a;SQL> rollback to a;


推荐阅读