oracle数据库SQL入门
?
1.oracle數據庫的下載、安裝、卸載
Oracle下載:
Oracle下載鏈接地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html
?如上圖:選擇接受協議后,選擇自己對應系統、位數的文件即可;
文件下載好的路徑如下:
安裝:點擊setup.exe文件準備安裝:
如圖所示幾個步驟:第一個配置安全安裝處,只是為了學習,可以將前面的勾去掉,其余的直接點擊下一步即可,注意的是:選擇安裝路徑時,
由于Oracle數據庫較大,最好不要放置于c盤,放于閑置空間較大的盤中,避免開機啟動時拖慢系統速度,最后就是在設置口令時:口令就是
你的登錄密碼,其余直接下一步即可。
驗證安裝是否成功:
安裝后可以在桌面左下角找到開始,我這里使用的是Windows 10系統,不同系統顯示有所不同:里面可以找到一個如下圖所示的圖標(安裝的當前Oracle的版本):
點擊SQL plus工具
輸入用戶名:system
輸入你在安裝時輸入的口令即密碼出現:
出現了鏈接到對應的你下載安裝的Oracle數據庫版本的文字,說明你已經安裝成功
Oracle的卸載:
首先找到安裝Oracle文件目錄下的deinstall文件夾:
找到文件下的deinstall.bat這是一個批量刪除的執行文件,點擊進去之后,按照提示進行操作即可,一般會
將軟件卸載、注冊表等都要刪除干凈,才算徹底的將軟件卸載
?
2.用戶與表空間
2.1使用系統用戶登錄
系統用戶從權限大小進行排序:sys、system、sysman、scott;其中scott的默認密碼是tiger
使用system用戶登錄語句:
connect [username/password] [@server] [as sysdba|sysoper]
例如:connect system/root @orcl as sysdba
上面的arcl就是在安裝Oracle數據庫時,創建數據庫默認的數據庫名,sysdba是以管理員身份登錄,sysoper是以普通操作員省份登錄
如下圖:
?
對于sys必須后面必須加上as 什么,意思就是以什么身份進行登錄,sys必須是sysdba管理員身份
此時也可以:通過 show users語句查看當前的登錄用戶
可以看到當前的登錄用戶為sys,oracle語句中是不區分大小寫的,只有在指定表名是必須是大寫
2.2.Oracle用戶好表空間之間查看登錄用戶
dba-users:用戶字典,通過desc查看出用戶字典的結構;
通過select username,acount_status from dba_users;可以查看出對應的dba_users中對應用戶名和賬戶的狀態;
可以看到sys/system, 是一個open狀態,其他的大多都是locked被鎖定的狀態
如果要使用這些被鎖定的賬戶的SQL語句:alter user username account unlock;這樣就可以使用它進行登錄了;
2.3:表空間的創建、設置、刪除、增減文件的語句
alter user username default|temporary tablespace tablespace_name;
臨時表空間:不是永久保存的,只是在存儲過程或其它的過程中使用,過程結束它就被回收掉。
創建表空間:create [temporary] tablespace tablespace_name tempfile|datafile 'xx.dbf' size xx;
查看數據字典:desc dba_data_files;
在數據字典里查看具體的表空間的文件路徑:
修改表空間的狀態:聯機狀態、脫機狀態
SQL語句:alter tablespace tablespace_name online|offline
修改表空間的狀態:設置只讀或可讀寫狀態
alter tablespace tablespace_name read only|read write;
在表空間中增加數據文件:
alter tablespace tablespace_name add datafile 'xx.dbf' size xx;
這就是通過SQL語句在原有表空間創建后最終生成的文件:
刪除表空間:
SQL語句:drop tablespace tablespace_name [including contents];
?
表空間所在位置的路徑,從下面可以看出,這個只是刪除掉了它的數據結構,但是里面
的文件并未將其刪除。
3.管理表
3.1Oracle的數據類型
(1)、字符型
char(n) 、nchar(n),其中char中的n最大值是2000,nchar的最大值是1000,他們是不可變長度的字符類型
例如:設置姓名的char(10),如果實際只裝入了2個字符,那么后面的八個字符,內存中將會把它補齊,這樣的話在
一定程度上是很浪費內存的;所以也就出現了可變化長度的字符類型
varchar2(n)、nvarchar(n)
(2)、數值型
number(m,n),m表示可以表達幾位數子,n表示可以后幾位小數;
例子:number(5,2):100.00,如果寫成10000.00,用它來進行表示的話會出現######,無法顯示出結果。
(3)、日期型
date
更加精確的timestamp
(4)、其它類型
BLOB和CLOB表示大數字的類型
1、BLOB全稱為二進制大型對象(Binary?Large?Object)。它用于存儲數據庫中的大型二進制對象。可存儲的最大大小為4G字節
2、CLOB全稱為字符大型對象(Character?Large?Object)。它與LONG數據類型類似,只不過CLOB用于存儲數據庫中的大型單字節字符數據塊,不支持寬度不等的字符集。
可存儲的最大大小為4G字節,Clob可以存儲單字節字符數據,Blob可以存儲無結構的二進制數據
3.2Oracle中操作表結構
添加字段
alter table table_name add column_name datatype;
修改字段數據類型
alter table table_name modify column_name datetype;
刪除字段
alter table table_name drop column column_name;
對存在字段名重命名
alter ?table table_name rename column column_name to new_column_name;
修改表名
rename table_name to new_table_name;
刪除表
truncate table table_name?
drop table table_name
truncate是截斷的意思,刪除的是表中的內容,相對而言效率很高
drop是將表結構和表內容一起刪除掉
4.操作表中的數據
添加數據
insert into table_name(column_name,...) values(value1,....);
刪除表
delete from table_name where conditions;
修改表
update table_name set column_name = 'xx',...
復制表
在創建時復制
前提:表中結構和數據類型需要保持一致
create table table_name
as
select column1,...|* from table_old;
在添加時復制
insert into table_name (column1,...)
select column1,...|* from table_old;
5.約束
Oracle中一共包含五中約束
(1)、非空約束
(2)、唯一約束
(3)、主鍵約束
(4)、外鍵約束
(5)、檢查約束
SQL語句主要從三方面去做:
一、在創建表時進行添加約束
非空約束:not null
主鍵約束:primary key?
外鍵約束:references table(column_name),主表和從表之間數據類型必須一致
唯一鍵:unique
檢查約束:check(表達式),表達式即:某個字段的限制條件
二、在修改表時添加約束
添加非空:alter table table_name modify column_name datatype not null;
添加主鍵約束:alter table table_name add constraint constraint_name primary key(column_name);
添加外鍵約束:alter table table_name add constraint constraint_name forengn key(column name ) references table(column_name);
添加唯一鍵約束:alter table table_name add constraint constraint_name unique(column_name);
添加檢查約束:alter table table_name add constraint constraint_name check(expression);
三、刪除表中的約束
刪除非空:alter table table_name modify column_name datatype null;
刪除其他的約束:disable|enable constraint constraint_name
drop constraint constraint_name;
附加:要查詢某張表中有哪些約束條件
select constraint_name,constraint_type,status from user_constraints where table_name='';
6.查詢語句
6.1基本查詢語句
select distinct column_name1,... |* from table_name where conditions;
distinct 是去除重復項
1.SQL*plus中設置格式:
column column_name HEADING new_name; column 也可以簡寫成col
先寫這句語句在寫查詢語句,最后查詢出的就是自己定義的new_name ;感覺就是MySQL中的as 別名
2.column column_name format dataformat;
直接定義格式,數字格式用9表示一個位。
3.清楚設置的格式
column column_name clear;
6.2 模糊查詢
oracle中的模糊查詢和mysql也是一致的都是用like?通配符(_,%);_只能表示一個字符,%可以表示0到多個任意字符
6.3 排序
order by desc/asc 和MySQL用法一致
6.4 case ... when的使用
case column_name when value1 then result,...
else result end;
這個就和java中的switch case 差不多,根據值的不同返回出不同的結果
6.5 decode 函數的使用
?decode (column_name,value1,result1,....,defaultvalue);
這個是case ... when 差不多
轉載于:https://www.cnblogs.com/fly-boy/p/7587243.html
總結
以上是生活随笔為你收集整理的oracle数据库SQL入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery的Cookie使用
- 下一篇: 远程连接MySql数据库