Oracle資料庫初學者:sql語句建立資料庫表空間,建表語句

2020-09-28 14:00:30
-- 表空間的建立
CREATE TABLESPACE my_tabs2
DATAFILE 'd:/software/Oracle/Space/my_tabs2.dbf' size 60M
AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED;
-- 建立使用者
create user user2
identified by user2
default tablespace my_tabs2
create user user1
identified by user1
default tablespace my_tabs2
-- 給新建立的使用者授權
grant connect,resource to user2;
-- 回收許可權
revoke connect,resource from use2;
-- 修改建立使用者的密碼
alter user user2 IDENTIfiEd by use231;
-- 鎖定使用者 lock
ALTER USER system ACCOUNT LOCK;
-- 解鎖使用者 UNLOCK
ALTER USER system ACCOUNT UNLOCK;
-- 刪除使用者:
DROP USER user1;
-- 通過命令建立表
CREATE TABLE student(
       nol NUMBER,
       sname VARCHAR(100)
)
-- 插入資料
insert into student values(1,1);
-- 查詢
select s.* from student s;
select s.* from QQUser s;
-- 刪除欄位
alter table student drop column nol;
-- 建立一個QQUser表
create table QQUser(
       QQID number ,
       QPassWord char(10) ,
       ListLogWordTime date ,
       QOnline number(2),
       QLevel number(2)
)
-- 更新表的欄位
alter table QQUser  alter column QQID Number(10);
-- 插入資料
insert into QQUser values(123456,1,null,2,99);
insert into QQUser values(123456,1,null,2,99);
-- 查詢
select * from QQUser ;
-- 重新命名錶名
rename 表一 to 表二
-- 截斷表 , 清空表中所有的資料,但是表結構還是存在的
truncate table user
-- 新增列
alter table QQUser add sex char(2)
-- 修改列
alter table QQUser modify sex varchar(2)
-- 刪除列
alter table QQUser drop column sex;
-- 新增QQname欄位
alter table QQUser add constraint QQName varchar(100);
-- 新增一個唯一約束
alter table QQUser add constraint QQName unique(QQName);
-- 設定主鍵約束
alter table QQUser add constraint QQid primary key(QQID);
-- 解決Oracle資源正忙
 select session_id from v$locked_object;
 SELECT sid, serial#, username, osuser FROM v$session where sid = 132
 ALTER SYSTEM KILL SESSION '132,170';
-- 新增年齡欄位
alter table QQUser add QQage number(3);
-- 檢查約束限定年齡的範圍
alter table QQUser add constraint QQage check(QQage between 10 and 40);
-- 單行函數 length(欄位)
select length(QQName), QQname from QQUser;
-- 限定name欄位的長度>=2
alter table QQUser add constraint QQname check(length(QQName)>=2);
-- 查詢名稱QQName的開頭的內容
select * from QQUser where QQname like '%%';
-- 查詢QQUser表中QQID以1開頭的所有內容
select * from QQUser where QQID like '1%';
-- 設定主外來鍵約束
-- 1.建立表時設定外來鍵約束
create table A (
       anumber int primary key , -- 欄位名 約束
       aname char(11) unique ,
       bnumber int
);
create table B (
      Bnumber int primary key ,
      bname varchar(11),
      anumber int,
      -- constraint 約束名 forgin key(主鍵) reference 從表名(從表主鍵)
      constraint a_b foreign key(bnumber) references B(bnumber)
);
-- 2.表已經建立成功後再新增外來鍵約束
-- 新增外來鍵約束: alter table 從表名 add constraint 外來鍵約束名稱 foreight key(列名) references 主表名稱(主鍵列名)
alter table B add constraint B_A foreign key(bnumber) references A(anumber);