Oracle常用SQL語句

2022-07-25 17:45:16 字數 3624 閱讀 1904

建立表。

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關鍵字

其他

drop table dept;                                          -- 刪除表

rename dept to detail_dept; -- 修改名稱。

truncate table detail_dept; -- 清空表。

comment on table employee is 'employee information'; -- 新增注釋。

注釋確認可以通過 all_col_comments、user_col_comments、all_tab_comments、user_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;

oracle常用sql語句

1.解鎖oracle使用者下某個使用者 以內建的scott使用者為例 sql conn as sysdba sql alter user scott account unlock identified by tiger 解釋 首先要切換到sysdba使用者下,否則會提示 許可權不足 error at...

oracle常用SQL語句

最近專案中用到,現記錄一下 新增主鍵 alter table shop spec detail add constraint spec detail id primary key id 新增索引 create index spec detail id on shop spec detail id 給...

Oracle常用SQL語句

今天接到乙個新任務 任務的主要內容簡單點說就是乙個下拉框,乙個查詢條件,乙個 table 顯示。當聽完的時候感覺真的是很簡單,這樣的事情也並非沒有做過。但是當靜下心來仔細分析需求,則會發現其與眾不同之處。1 下拉框中顯示的是我們整個模組的表名稱 2 查詢條件初步設想是根據時間查詢 3 table 第...