前往顾页
以后地位: 主页 > 收集编程 > Jsp实例教程 >

Oracle常常利用SQL语句年夜全

时候:2013-04-18 00:00来源:知行网www.zhixing123.cn 编辑:麦田守望者

Oracle利用过程中常常会用到的SQL语句。

 

建立表。

CREATE TABLE [schema.]t_employees (
    employee_id NUMBER(2),                  -- 长度=2的整数
    hire_date DATE DEFAULT SYSDATE,         -- default的例子
 ...
) AS 子查询;                                -- 操纵子查询建立表

确认表。

desc t_employees;          -- 确认表布局
SELECT table_name FROM user_tables;         -- 确认用户具有的表
SELECT DISTINCT object_type FROM user_objects;  -- 确认用户具有的工具的种类
SELECT * FROM user_catalog;                 -- 确认用户具有的工具

点窜表

ALTER TABLE t_employees ADD (colname ..., colname...,);  -- 增加列
ALTER TABLE t_employees MODIFY (colname DATATYPE [DEFAULT ...], colname ...);  -- 点窜列定义
ALTER TABLE DROP { COLUMN 列名 | (列名[,列名...])};      -- 删除列,列名用括号或COLUMN关头字

其他

DROP TABLE dept;                                          -- 删除表
RENAME dept TO detail_dept;                               -- 点窜称呼。
TRUNCATE TABLE detail_dept;                               -- 清空表。
COMMENT ON TABLE employee IS 'Employee Information';      -- 增加注释。

注释确承认以经由过程 ALL_COL_COMMENTSUSER_COL_COMMENTSALL_TAB_COMMENTSUSER_TAB_COMMENTS 视图的 COMMENTS 列来进行。

限制

定义限制

CREATE TABLE employee (
  employee_id NUMBER(6),
  first_name  VARCHAR2(20),
  last_name   VARCHAR2(20) CONSTRAINT last_name_nn NOT NULL,
  email       VARCHAR2(25),
  dept_id     NUMBER(6),
  salary      NUMBER(8,2),
  ...
  job_id      VARCHAR2(10) NOT NULL,
  CONSTRAINT emp_emp_id_pk PRIMARY KEY (employee_id),
  CONSTRAINT emp_email_uk UNIQUE(email),
  CONSTRAINT emp_deptid_fk FOREIGN KEY (department_id) REFERENCES departments(department_id),
  CONSTRAINT emp_salary_min CHECK (salary>0));

确认限制。

SELECT constraint_name, constraint_type, search_condition
FROM user_constraints
WHERE table_name='EMPLOYEES';

SELECT constraint_name, column_name
FROM user_cons_columns
WHERE table_name='EMPLOYEES';

视图

选出前n条记录。

SELECT * FROM ( select ....) WHERE rownum<=n;

依次

建立依次。

CREATE SEQUENCE dept_deptdi_seq
  INCREMENT BY 10
  START WITH 120
  MAXVALUE 9999
  NOCACHE
  NOCYCLE;

确认依次。

SELECT sequence_name, min_value, max_value, increment_by, last_number
FROM user_sequences;    -- last_number为前次获得的依次值

利用体例

INSERT INTO departments (department_id, department_name, location_id)
VALUES (dept_deptid_seq.NEXTVAL, 'Support', 2500);

变动依次。

ALTER SEQUENCE dept_deptid_seq
  INCREMENT BY 20
  MAXVALUE 999999
  NOCACHE
  NOCYCLE;

删除依次。

DROP SEQUENCE dept_deptid_seq;

索引

建立索引。

CREATE INDEX emp_last_name_idx ON employees(last_name);

确认索引内容。

SELECT ic.index_name, ic.column_name, ic.column_position col_pos, ix.uniqueness
FROM user_indexes ix, user_ind_columns ic
WHERE ic.index_name=ix.index_name AND ic.table_name='YOUR_TABLE_NAME'

用户

建立用户。

CREATE USER scott IDENTIFIED BY tiger;

付与权限。

GRANT create session, create table, create sequence, create view TO scott;  -- 体系权限
GRANT select ON employees TO sue, rich WITH GRANT OPTION;
     -- 工具权限, with grant option表白该用户可以将被付与的权限再付与他人
GRANT update (department_name, location_id) ON departments TO PUBLIC;

打消权限。

REVOKE select, insert ON departments FROM scott;

角色。

CREATE ROLE manager;
GRANT create table, create view TO manager;
GRANT manager TO dehaan, kochhar;

点窜暗码。

ALTER USER scott IDENTIFIED BY lion;
------分开线----------------------------
标签(Tag):数据库 Oracle Oracle数据库
------分开线----------------------------
保举内容
猜你感兴趣