1.管理員登陸SQL
sqlplus sys as sysdba;
口令:123456
權(quán)限授予:grant sysdba to scott;
2.創(chuàng)建表
create table student(
sno number(6)primary key,
sname varchar2(12),
sex char(3),
age number(3)check (age>0 and age <120 )not null,--年齡(0押逼,120)且不為空
score number(5,1)check (score>=0),--成績大于0泌枪,保留一位小數(shù)
enterdate date,
email varchar2(20) unique --唯一
) --學(xué)生表
建表語法
在創(chuàng)建新表時,指定的表名必須不存在排拷,否則將出錯膘婶。
使用默認(rèn)值:當(dāng)插入行時如果不給出值缺前,dbms將自動采用默認(rèn)值。
在用Create語句創(chuàng)建基本表時悬襟,最初只是一個空的框架衅码,用戶可以使用insert命令把數(shù)據(jù)插入表中
數(shù)據(jù)庫字段的數(shù)據(jù)類型
字符數(shù)據(jù)類型
CHAR:存儲固定長度的字符串
VARCHAR2 :存儲可變長度的字符串
數(shù)值數(shù)據(jù)類型
NUMBER:存儲整數(shù)和浮點(diǎn)數(shù),格式為NUMBER(p, s)
column_name NUMBER { p = 38, s = 0}
column_name NUMBER (p) {整數(shù)}
column_name NUMBER (p, s) {浮點(diǎn)數(shù)}
日期時間數(shù)據(jù)類型
DATE:存儲日期和時間數(shù)據(jù)
TIMESTAMP:比DATE更精確
LOB數(shù)據(jù)類型
BLOB:存儲二進(jìn)制對象逝段,如圖像垛玻、音頻和視頻文件
CLOB:存儲字符格式的大型對象
查看當(dāng)前格式下漢字多少字節(jié)
SELECT * FROM v$nls_parameters WHERE PARAMETER='NLS_CHARACTERSET';
如果是“GBK”就是2個字節(jié),“UTF-8”是3個字節(jié)
varchar()和varchar2的區(qū)別
- 1.varchar2把所有字符都占兩字節(jié)處理(一般情況下)奶躯,varchar只對漢字和全角等字符占兩字節(jié)帚桩,數(shù)字,英文字符等都是一個字節(jié)
- 2.VARCHAR2把空串等同于null處理嘹黔,而varchar仍按照空串處理账嚎;
- 3.VARCHAR2字符要用幾個字節(jié)存儲,要看數(shù)據(jù)庫使用的字符集儡蔓,
大部分情況下建議使用varchar2類型郭蕉,可以保證更好的兼容性。
修改表
alter table student add address varchar2(20);--增加列address
alter table student drop column address;--刪除列
alter table student modify (email varchar(15)) ;--修改列
刪除表
drop table student;
改變表名
rename student to students;
查看表結(jié)構(gòu)
set linesize 200; --調(diào)整列間距
Desc student喂江;
數(shù)據(jù)庫表的約束
數(shù)據(jù)完整性約束
表的數(shù)據(jù)有一定的取值范圍和聯(lián)系召锈,多表之間的數(shù)據(jù)有時也有一定的參照關(guān)系。
在創(chuàng)建表和修改表時获询,可通過定義約束條件來保證數(shù)據(jù)的完整性和一致性涨岁。
約束條件是一些規(guī)則,在對數(shù)據(jù)進(jìn)行插入筐付、刪除和修改時要對這些規(guī)則進(jìn)行驗證卵惦,從而起到約束作用。
完整性約束分類
域完整性約束(非空not null瓦戚,檢查check)
實體完整性約束(唯一unique沮尿,主鍵primary key)
參照完整性約束(外鍵foreign key)
create table clazz(
cid number(2) primary key,
cname varchar2(10) not null unique
);--班級表
alter table student add constraint fk_student_clazzid foreign key (clazzid) references clazz(cid) --外鍵約束
--fk_student_clazzid 約束名稱