1.登陸系統用戶
sqlplus 然后輸入系統用戶名和密碼
登陸別的用戶
conn 用戶名/密碼;
2.創建表空間
create tablespace 空間名
datafile 'c:"空間名' size 15M --表空間的存放路徑,初始值為15M
autoExtend on next 10M --空間的自動增長的值是10M
permanent online; --永久使用
3.創建用戶
create user shi --創建用戶名為shi
identified by scj --創建密碼為scj
default tablespace 表空間名 --默認表空間名
temporary tablespace temp --臨時表空間為temp
profile default --受profile文件的限制
quota unlimited on 表空間名; --在表空間下面建表不受限制
4.創建角色
create role 角色名 identified by 密碼;
5.給角色授權
grant create session to 角色名;--給角色授予創建會話的權限
grant 角色名 to 用戶名; --把角色授予用戶
6.給用戶授予權限
grant create session,resource to shi;--給shi用戶授予所有權限
grant create table to shi; --給shi用戶授予創建表的權限
7.select table_name from user_tables; 察看當前用戶下的所有表
8.select tablespace_name from user_tablespaces; 察看當前用戶下的 表空間
9.select username from dba_users;察看所有用戶名稱命令 必須用sys as sysdba登陸
10.創建表
create table 表名
(
id int not null,
name varchar2(20) not null
)tablespace 表空間名 --所屬的表空間
storage
(
initial 64K --表的初始值
minextents 1 --最小擴展值
maxextents unlimited --最大擴展值
);
11.--為usrs表添加主鍵和索引
alter table users
add constraint pk primary key (ID);
12.為已經創建users表添加外鍵
alter table users
add constraint fk_roleid foreign key (roleid)
references role(role_id) on delete cascad; --下邊寫主表的列
on delete cascad是創建級聯
13.把兩個列連接起來
select concat(name,id) from 表名; --把name和id連接起來
14.截取字符串
select column(name,'李') from 表名; --把name中的‘李’去掉
15.運行事務之前必須寫
set serveroutput on; --打開輸入輸出(不寫的話,打印不出信息)
16.while的應用
declare --聲明部分
ccc number:=1; --復職
a number:=0;
begin --事務的開始
while ccc<=100 loop --循環
if((ccc mod 3)=0) then --條件
dbms_output.put_line(ccc||','); --打印顯示
a:=a+ccc;
end if; --結束if
ccc:=ccc+1;
end loop; --結束循環
dbms_output.put_line(a);
end; --結束事務
/
17.select into 的用法 --只能處理一行結果集
declare
name varchar(30);
begin
select username into name
from users
where id=2;
dbms_output.put_line('姓名為:'||name);
end;
/
18.利用%rowtype屬性可以在運行時方便的聲明記錄變量和其他結構
Set serveroutput on;
Declare
utype users%rowtype;
Begin
Select * into utype from users where id=20;
Dbms_output.put_line('姓名'|| utype.username);
Dbms_output.put_line('生日'|| utype.brithday);
end;
/ --%rowtype想當于復制一個表
19.游標的定義和使用
Declare
Cursor ucur is select * from users; --聲明游標
Us users%rowtype;--定義與游標想匹配的變量
Begin
Open ucur;--打開游標
Fetch ucur into us;
While ucur %found loop --使用循環遍歷游標的查詢結果
Dbms_output.put_line('姓名:'||us.username||'生日'||us.brithday);
Fetch ucur into us;
End loop;
Close ucur; --關閉游標
End;
=======================================
%found在前一條的fetch語句至少對應數據庫的一行時,%found屬性值為true,否則為false;
% notfound 在前一條fetch語句沒有對應的數據庫行時,%notfound屬性值為true,否則為false;
%isopen 在游標打開時%isopen屬性值為true;否則為false;
%rowcount顯示迄今為止從顯示游標中取出的行數
20.
刪除
drop tablespace 空間名 including contents; --刪除表空間和里面的內容
drop table 表名 --刪除表
drop user 用戶名 --刪除用戶