1. 程式人生 > >oracle入門基礎語法

oracle入門基礎語法

1、建立使用者和密碼: create user 使用者名稱 identified by 密碼;
[default tablespace 使用者的預設表空間,用於儲存資料庫物件。如忽略此引數,則預設儲存到SYSTEM表空間]
[temporary tablespace 臨時物件預設儲存的表空間,包括臨時表。如忽略此引數,則預設儲存到SYSTEM表空間];


2、授使用者登入許可權:grant create session to 使用者名稱,使用者名稱;(可多個授權,使用者名稱之間用逗號分隔)


3、修改使用者密碼: alter user 使用者名稱 identified by 密碼;(也可修改當前使用者)
   修改當前登入使用者的密碼: password 命令


4、查詢使用者:select 查詢的屬性 from dba_users;


5、刪除使用者:drop user 使用者名稱(cascade);(進行聯級刪除)


6、給使用者賦權:grant 角色名 to 使用者名稱(with admin option);(允許它有賦角色的權利)


7、檢視使用者所擁有的角色: select * from user_role_privs;
 select * from session_roles;


8、給使用者賦權:grant 許可權名 to 使用者名稱(with admin option);(允許它有賦權的權利)


9、檢視使用者所擁有的許可權: select * form user_sys_privs


10、撤銷使用者的許可權:revoke 許可權名 form 使用者名稱;


11、建立表空間:create tablespace 表空間名
datafile 表空間路徑
size 表空間大小;


12、建立表: create table 表名
    (
列名 型別 資料型別的大小,(若新增該列名為主鍵:constraint 主鍵名 primary key)
列名 型別 資料型別的大小
     );


建立表及命名規則:
必須以字母開頭
必須在 1–30 個字元之間
必須只能包含 A–Z, a–z, 0–9, _, $, 和 #
必須不能和使用者定義的其他物件重名
必須不能是Oracle 的保留字
Oracle預設儲存是都存為大寫


必須具備:
create table 許可權
儲存空間


必須指定:
表名
列名, 資料型別, 資料型別的大小




13、查看錶中列的資訊: describe 表名(dos命令列可用)


14、刪除表:drop table 表名;


15、重新命表名:rename 舊錶名 to 新表名;


16、查看錶中行的資訊:select * form 表名;


17、增加列:alter table 表名 add 列名 類名型別 (not null);(是否能為null)


18、增加列,指定預設值:alter table 表名 列名 date default sysdate not null;


19、增加虛列(不可新增到臨時表上): alter table 表名 add (新增的列名 as (一個或多個進行操作的列名));


20、刪除列: alter table 表名 
    drop column 列名;


21、修改列:alter table 表名 
   modify 列名 列名型別的大小(精度、型別);


22、修改列的預設值: alter table 表名 
      modify 列名 default sysdate-1;


23、給列重新命名: alter table 表名 rename column 舊的列名 to 新的列名;


24、新增行:insert into 表名(列名1,列名2,列名3,...)values (值1,值2,值3,...);




25、將行從一個表複製到另一個表:insert into 目標表(列名1,列名2,列名3,...)
select 值1,值2,值3...
from 源表
where 行;
(where後為條件 如不加則是複製所有行)


26、修改表中的行:update 表名 set 列名=值 where 行;
(where後為條件 如不加則是修改所有行)


27、刪除行:delete from 表名 where 行;
(where後為條件 如不加則是刪除所有行)


28、截斷表:truncate table 表名;(注意:只能刪除所有的行和重置表的儲存區域)


29、列出所有的列:select * from 表名;


30、列出指定列:select 列名1,列名2,...from 表名;


31、列出指定列,並改名:selece 列名1 as “要改的名”,列名2 as “要改的名”,...from 表名;(注意:as可省略,“”可省略)


32、將多個列和字串連線一起:select 列名1||列名2 as“字串” from 表名;
     select concat(列名1,列名2) as “字串” from 表名;


33、where子句中的字串和日期必須含在單引號中,但數字不能;字元值是區分大小寫的。


34、提交資料: commit;
    修改dos命令列的寬度:set linesize;
    修改dos命令列的長度:set pagesize;
    清空dos命令列:host cls;


35、dual表常用在沒有查詢目標的select語句塊中:select sysdate from dual;


36、日期計算:select to_date(‘日期’)+修改的值 from dual;
     select to_date(‘日期’)-修改的值 from dual;


37、SQL運算子可以進行模式匹配,像字串、列表值、NULL值。
like:匹配字串
in:匹配列表值
between:匹配範圍值
is null:匹配空值
is nan:匹配非數字值
同樣可以在上述運算子前加not取反


38、like運算子:
可以使用普通字元及萬用字元進行組合,萬用字元如下:
下劃線(_):表示匹配某個位置的字元
百分號(%):表示在某個位置的任意個字元


39、轉義字元:select 列名 from 表名 where 列名 link ‘%\%%’ escape ‘\’;(將中間的%不作為萬用字元)


40、表中的列的升序排序:select * from 表名 order by 列名;


41、表中的列的降序排序:select * from 表名 order by 列名 desc;


42、使用者輸入查詢:select * from 表名 where 列名=&引數名;


43、查詢使用者下的所有表名: select table_name from user_tables;