Oracle 基本操作备忘[2]

来源:互联网 发布:windows自带图片浏览器 编辑:程序博客网 时间:2024/05/16 15:41

SQL> conn system
已连接。
//定义权限文件loginLock,内容为登陆失败次数在3以内
SQL> create profile loginLock limit failed_login_attempts 3;

配置文件已创建

//向用户scott分配权限文件
SQL> alter user scott profile loginLock;

用户已更改。

//登陆失败三次后
SQL> conn scott
ERROR:
ORA-28000: 帐户已被锁定

SQL> conn system
已连接。
//使用管理员解锁用户
SQL> alter user scott account unlock;

用户已更改。

//删除权限文件(若文件已被分配给用户则需加cascade
SQL> drop profile loginLock;
drop profile loginLock
*
第 1 行出现错误:
ORA-02382: 概要文件 LOGINLOCK 指定了用户, 不能没有 CASCADE 而删除

SQL> drop profile loginLock cascade;

配置文件已删除。

//创建表
SQL> create table test(t_no number(4),
2 t_name varchar2(20));

表已创建。

//增加字段
SQL> alter table test add(t_time date);

表已更改。

//更改字段
SQL> alter table test modify(t_name varchar2(15));

表已更改。

//删除字段
SQL> alter table test drop column t_time;

表已更改。

//重命名表
SQL> rename test to testD;

表已重命名。

//插入日期格式为’dd-m月-yy’
SQL> insert into test values(‘01-4月-15’);

已创建 1 行。

//更改日期输入格式(仅在当前会话生效)
SQL> alter session set nls_date_format=’yyyy-mm-dd’;

会话已更改。

SQL> insert into test values(‘2015-06-23’);

已创建 1 行。

//删除表数据
SQL> delete from test;

已删除2行。

//删除表结构和数据
SQL> drop table testD;

表已删除。

SQL> conn scott
已连接。

//列运算
SQL> select sal*12+comm from emp;

SAL*12+COMM

  19500                                                                       15500                                                                       16400                                                                       18000                                                                     

SAL*12+COMM

已选择14行。

//nvl(clounm,defaultValue)当列名为null时,使用默认值
SQL> select sal*12+nvl(comm,0) from emp;

SAL*12+NVL(COMM,0)

          9600                                                                       19500                                                                       15500                                                                       35700                                                                       16400                                                                       34200                                                                       29400                                                                       36000                                                                       60000                                                                       18000                                                                       13200                                                              

SAL*12+NVL(COMM,0)

         11400                                                                       36000                                                                       15600                                                              

已选择14行。

//链接字符串 ||
SQL> select ename||’s job is’ ||job from emp;

ENAME||’SJOBIS’||JOB

SMITHs job isCLERK
ALLENs job isSALESMAN
WARDs job isSALESMAN
JONESs job isMANAGER
MARTINs job isSALESMAN
BLAKEs job isMANAGER
CLARKs job isMANAGER
SCOTTs job isANALYST
KINGs job isPRESIDENT
TURNERs job isSALESMAN
ADAMSs job isCLERK

ENAME||’SJOBIS’||JOB

JAMESs job isCLERK
FORDs job isANALYST
MILLERs job isCLERK

已选择14行。

//事务中创建保存点
SQL> savepoint a;

保存点已创建。

SQL> delete from emp;

已删除13行。

SQL> select * from emp;

未选定行

SQL> rollback to a;

回退已完成。

SQL> select * from emp;

 EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 

DEPTNO

  7369 SMITH      CLERK           7902 17-12月-80            800                20                                                                        7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300     30                                                                        7521 WARD       SALESMAN        7698 22-2月 -81           1250        500     30                                                                       EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 

DEPTNO

  7566 JONES      MANAGER         7839 02-4月 -81           2975                20                                                                        7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400     30                                                                        7698 BLAKE      MANAGER         7839 01-5月 -81           2850                30                                                                       EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 

DEPTNO

  7782 CLARK      MANAGER         7839 09-6月 -81           2450                10                                                                        7788 SCOTT      ANALYST         7566 19-4月 -87           3000                20                                                                        7839 KING       PRESIDENT            17-11月-81           5000                10                                                                       EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 

DEPTNO

  7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0     30                                                                        7876 ADAMS      CLERK           7788 23-5月 -87           1100                20                                                                        7900 JAMES      CLERK           7698 03-12月-81            950                30                                                                       EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM 

DEPTNO

  7902 FORD       ANALYST         7566 03-12月-81           3000                20                                                                        7934 MILLER     CLERK           7782 23-1月 -82           1300                10                                                                      

已选择14行。

//保存点仅在提交前生效
SQL> savepoint b;

保存点已创建。

SQL> delete from emp where ename=’SMITH’;

已删除 1 行。

SQL> commit;

提交完成。

SQL> rollback to b;
rollback to b
*
第 1 行出现错误:
ORA-01086: 从未创建保存点 ‘B’

在select语句中同时包含 group by ,having, order by
顺序 先group by -》having ->order by

在选择列中有列 ,表达式 分组函数 那么列或者表示式 必须有一个
出现在group by子句中

0 0