Oracle常用知识总结(五)

2014-11-24 15:53:23 · 作者: · 浏览: 2
167 147 3

Sql代码

查询树形的数据结构,同时对一层里面的数据进行排序

SELECT last_name, employee_id, manager_id, LEVEL

FROM employees

START WITH employee_id = 100

CONNECT BY PRIOR employee_id = manager_id

ORDER SIBLINGS BY last_name;

下面是查询结果

LAST_NAME EMPLOYEE_ID MANAGER_ID LEVEL

------------------------- ----------- ---------- ----------

King 100 1

Cambrault 148 100 2

Bates 172 148 3

Bloom 169 148 3

Fox 170 148 3

Kumar 173 148 3

Ozer 168 148 3

Smith 171 148 3

De Haan 102 100 2

Hunold 103 102 3

Austin 105 103 4

Ernst 104 103 4

Lorentz 107 103 4

Pataballa 106 103 4

Errazuriz 147 100 2

Ande 166 147 3

Banda 167 147 3

查询树形的数据结构,同时对一层里面的数据进行排序

SELECT last_name, employee_id, manager_id, LEVEL

FROM employees

START WITH employee_id = 100

CONNECT BY PRIOR employee_id = manager_id

ORDER SIBLINGS BY last_name;

下面是查询结果

LAST_NAME EMPLOYEE_ID MANAGER_ID LEVEL

------------------------- ----------- ---------- ----------

King 100 1

Cambrault 148 100 2

Bates 172 148 3

Bloom 169 148 3

Fox 170 148 3

Kumar 173 148 3

Ozer 168 148 3

Smith 171 148 3

De Haan 102 100 2

Hunold 103 102 3

Austin 105 103 4

Ernst 104 103 4

Lorentz 107 103 4

Pataballa 106 103 4

Errazuriz 147 100 2

Ande 166 147 3

Banda 167 147 3

有时候写多了东西,居然还忘记最基本的sql语法,下面全部写出来,基本的oracle语句都在这里可以找到了。是很基础的语句!

Sql代码

在数据字典查询约束的相关信息:

SELECT constraint_name, constraint_type,search_condition

FROM user_constraints WHERE table_name = 'EMPLOYEES';

//这里的表名都是大写!

2对表结构进行说明:

desc Tablename

3查看用户下面有哪些表

select table_name from user_tables;

4查看约束在那个列上建立:

SELECT constraint_name, column_name

FROM user_cons_columns

WHERE table_name = 'EMPLOYEES';

10结合变量查找相关某个表中约束的相关列名:

select constraint_name,column_name from user_cons_columns where table_name = '&tablename'

12查询数据字典看中间的元素:

SELECT object_name, object_type

FROM user_objects

WHERE object_name LIKE 'EMP%'

OR object_name LIKE 'DEPT%'

14查询对象类型:

SELECT DISTINCT object_type FROM user_objects ;

17改变对象名:(表名,视图,序列)

rename emp to emp_newTable

18添加表的注释:

COMMENT ON TABLE employees IS 'Employee Information';

20查看视图结构:

describe view_name

23在数据字典中查看视图信息:

select viewe_name,text from user_views

25查看数据字典中的序列:

select * from user_sequences

33得到所有的时区名字信息:

select * from v$timezone_names

34显示对时区‘US/Eastern’的时区偏移量

select TZ_OFFSET('US/Eastern') from DUAL--dual英文意思是‘双重的’

显示当前会话时区中的当前日期和时间:

ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';--修改显示时间的方式的设置

ALTER SESSION SET TIME_ZONE = '-5:0';--修改时区

SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;--真正有用的语句!

SELECT CURRENT_TIMESTAMP FROM DUAL;--返回的时间是当前日期和时间,含有时区

SELECT CURRENT_TIMESTAMP FROM DUAL;--返回的时间是当前日期和时间,不含有时区!!!

35显示数据库时区和会话时区的值:

select datimezone,sessiontimezone from dual;

13普通的建表语句:

CREATE TABLE dept

(deptno NUMBER(2),

dname VARCHAR2(14),

loc VARCHAR2(13));

15使用子查询建立表:

CREATE TABLE dept80

AS SELECT employee_id, last_name,

salary*12 ANNSAL,

hire_date FROM employees WHERE department_id = 80;

6添加列:// alter table EMP add column (dept_id number(7));错误!!

alter table EMP add (dept_id number(7));

7删除一列:

alter table emp drop column dept_id;

8添加列名同时和约束:

alter table EMP add (dept_id number(7)

constraint my_emp_dept_id_fk references dept(ID));

9改变列://注意约束不能够修改 的!!

alter table dept80 modify(last_name varchar2(30));//这里使用的是modify而不是alter!

24增加一行:

insert into table_name values();

5添加主键:

alter Table EMP add constraint my_emp_id_pk primary key (ID);

11添加一个有check约束的新列