1. connect sys/toor as sysdba
2. show user
3. select username from dba_users
4. alter user scott account unlock; or alter user scott account lock;
5. connect scott/tiger
6.desc dba_tablespaces //需要管理員賬號,纔可以使用的命令
7.select tablespace_name from dba_tablespaces;
8.alter user system default system;
9.
--創建一個表空間
create tablespace myspace
datafile 'D:\delete\temp\temp.mdf' --datafile爲數據文件,temp爲臨時數據文件
size 10M
autoextend on; --數據文件空間被填滿時,自動增長.
--向orcl數據庫的user表空間中添加一個大小爲5M的數據文件
alter tablespace myspace
add datafile 'D:\delete\temp\tmp02.dbf' size 5M
autoextend on next 512k maxsize 10M; --自動增長.每次5M最大50M //autoextend off 取消自動增長
--autoextend unlimited;自動增長.無限制
commit;
alter database datafile 'D:\delete\temp\tmp01.dbf'
offline; --online 聯機
--刪除表空間以及附屬於它的文件
DROP TABLESPACE myspace INCLUDING CONTENTS AND DATAFILES;
commit;
archive log list--查看是否處於歸檔模式,在SQL Plus 中執行此命令。
基礎
--insert first:對於每一行數據,只插入到第一個when條件成立的表,不繼續檢查其他條件。
--insert all :對於每一行數據,對每一個when條件都進行檢查,如果滿足條件就執行插入操作。
insert all
when name='hello' then into del values(10,'you')
when number1=5 then into del2 values(10,'you')
select * from del;
單行函數
select distinct deptno from emp;
select lpad(2000,9,'*') phone,rpad(789,6,'+') passwd
from dual;
select lower('Hello'),upper('hello'),initcap('hello')
from dual;
--oracle中字符串是從1開始的
select instr('i am zhanglei who are you','who')
from dual;
select substr('i am zhanglei who are you',2,5)
from dual;
select concat('Hel','lo my name'),length('hello')
from dual;
select replace('who are you','are','is')
from dual;
--四捨五入
select round(123.24,1),round(123.24,-2),round(123.64),round(123.24)
from dual;
--與四捨五入相區別
select trunc(123.24,1),trunc(123.24,-2),trunc(123.64),trunc(123.24)
from dual;
select mod(10,3)
from dual;
select trunc(sysdate +1)
from dual;
--獲取單獨的年月日
select extract(year from sysdate)
from dual;
--年:Year/YYYY/YY 月:month/mon/mm 星期:day/DY/D
select to_char(sysdate,'YEAR**MM**DD day')
from dual;
select to_char(sysdate,'hh24:mm:ss')
from dual;
--l:顯示本地貨幣符號 $:直接顯示 9:表示數值。 0:同9,但會強制佔位
select to_char(123.25,'l9,999,999.000')--第一個9前面是字母l
from dual;
select to_date('1928-01-23','YYYY-MM-DD')
from dual;
select to_number('$125.35','$9,999.99')
from dual;
--如果comm值爲null則用0代替,nvl中的數值類型必須相同(不同時用轉換函數將它轉成同一類型)
select ename,comm,nvl(comm,0)
from emp;
--comm爲null用sal代替,否則用0代替
select ename,comm,nvl2(comm,0,sal)
from emp;
--deptno爲部門比如10號部門,20部門
select ename,deptno,sal,
decode(deptno,
10,sal+1000,
20,sal+2000,
30,sal+3000,
sal) new薪資
from emp;
--查詢結果與decode函數相同
select ename,deptno,sal,
case deptno
when 10 then sal+1000
when 20 then sal+2000
when 30 then sal+3000
ELSE deptno end new薪資
from emp;
--查詢結果與上述兩種方式相同
select ename,deptno,sal,
case
when deptno=10 then sal+1000
when deptno=20 then sal+2000
when deptno=30 then sal+3000
ELSE deptno end new薪資
from emp;
聚合函數與數據分組
select max(hiredate),min(hiredate)
from emp;
--統計行數
select count(*)
from emp;
select deptno,max(sal),min(sal)
from emp
group by deptno
having min(sal)>700
--在聚合函數select子句中出現的非分組列,必須出現在group by中
--比如此句:group by後面必須出現除avg(sal)以外的列即必須包含:deptno,job
select deptno,job,avg(sal)
from emp
group by deptno,job
-- natural join:指明瞭兩表進行自然連接,並且連接是基於兩表中所有同名字段的。
-- join...using:用於兩表有同名字段但數據類型不同,或者使用多個同名字段中的某一個做等值連接
-- join...on :最爲靈活,可以指明連接的條件。
創建用戶
create user del
identified by del
account unlock
password expire--登陸後密碼立即過期
--授予權限
grant create session
to del
with admin option;--代表可以級聯授予
--回收權限
revoke create session
from del;
commit;
--對象權限的授予
grant select
on table01
to del
with grant option
--回收對象權限
revoke select
on table01
from del;
--刪除用戶以及相關信息
drop user del cascade
創建視圖
create view myview
as
select * from classify
--創建視圖(若存在則替換)
create or replace view myview
as
select * from commodity
where commodity_number in(4,6,7)
with read only;--如果爲check的話,則必須操作視圖時必須滿足were條件
--視圖依賴於子查詢,子查詢的表不在了,視圖自然失效
--刪除視圖
drop view myview