分类:永久表空间,临时表空间,UNDO表空间。
查看用户的表空间,这有两个数据字典:
dba_tablespaces 管理员用户级别查看;
user_tablespaces 普通用户级别查看。
dba_users 查看系统用户
user_users 查看普通用户
修改默认表空间
语法:
ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name;
语法:
CREATE [TEMPORARY] TABLESPACE tablespace_name DATAFILE|TEMPFILE ‘xx.dbf’ SIZE xx;
数据字典 dba_data_files dba_temp_files 分别用来查看数据文件,临时文件。
例子:
select file_name from dba_data_files where tablespace_name=’xx’ //查看表空间xx的数据文件
语法:
ALTER TABLESPACE tablespace_name OFFLINE|ONLINE;
例子:
SELECT STATUS FROM DBA_TABLESPACE WHERE TABLESPACE_NAME=’xxx’ //查看表空间状态
语法:
ALTER TABLESPACE tablespace_name READ ONLY|WRITE READ;
语法:
ALTER TABLESPACE tablespace_name ADD DATAFILE ‘xx.dbf’ SIZE xx
语法:
ALTER TABLESPACE tablespace_name DROP DATAFILE ‘xx.dbf’
语法:
DROP TABLESPACE tablespace_name [INCLUDING CONTENTS]
字符型:CHAR(n) NCHAR(n) 固定长度的字符,最长表示分别为2000,1000个;
VARCHAR2(n) NVARCHAR2(n) 可变长度的字符,最长表示分别为4000,2000个;
数值型:NUMBER(p,s) p有效数字,s小数点后的位数;
FLOAT(n) 二进制,1-126
例子:NUMBER(5,2) 123.45
日期型:DATE TIMESTAMP
其他类型:BLOB(二进制类型) CLOB(字符串类型) 最长都是4GB大小
语法:
CREATE TABLE table_name (…)
语法:
ALTER TABLE table_name ADD column datatype;
语法:
ALTER TABLE table_name MODIFY column datatype;
语法:
ALTER TABLE table_name DROP COLUMN column_name;
语法:
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
语法:
RENAME tablename TO new_tablename
TRUNCATE TABLE tablename;截断表,只是删除数据,表结构还在
DROP TABLE tablename;删除表,连表结构都删除
语法:
INSERT INTO table_name (column1,column2,…) VALUES(value1,value2,…);
添加默认值:
create table userinfo1 (regdate date default sysdate); //创建表时添加默认值
alter table userinfo1 modify regdate default sysdate;//创建以后添加默认值
注意:字符串用单引号引起来
语法:
在建表时复制
CREATE TABLE tablename AS SELECT COLUMN1,…|* FROM tablename1;
插入数据时复制
INSERT INTO tablename [column1,column2,…] SELECT column1,column2,…|* FROM tablename1;
语法:
UPDATE table_name SET column1=value1,… [WHERE conditions]
语法:
DELETE FROM table_name [WHERE conditions];
TRUNCATE TABLE tablename; //截断表,速度快
四类约束:非空(NOT NULL),主键(PRIMARY KEY),外键(FOREIGN KEY),唯一(UNIQUE),检查(CHECk)
作用:定义规则,确保完整性。
语法:
创建表时添加
CREATE TABLE tablename (column_name datetype NOT NULL|PRIMARY KEY,…)
修改表时添加
ALTER TABLE tablename MODIFY column_name datatype NOT NULL;
修改表时删除非空约束
ALTER TABLE tablename MODIFY column_name datatype NULL;
创建表时添加:
主键只是某一列
CREATE TABLE tablename (column_name datetype PRIMARY KEY,…)
主键包含多个列
CREATE TABLE tablename (column_name datetype,…,CONSTRAINT pk_constraint_name PRIMARY KEY(column1,column2,…));
数据字典 USER_CONSTRAINTS 查看表的约束
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS
修改表时添加主键约束
ALTER TABLE tablename ADD CONSTRAINT pk_constraint_name PRIMARY KEY(column1,column2,…);
更改主键约束的名字
ALTER TABLE tablename RENAME CONSTRAINT oldname TO newname;
删除主键约束
ALTER TABLE tablename DISABLE|ENABLE CONSTRAINT constraint_name;
ALTER TABLE tablename DROP CONSTRAINT constraint_name;
ALTER TABLE tablename DROP PRAMARY KEY[CASCADE];
注意:设置外键约束时,主表的字段必须是主键;主从表中相应的字段应该是用一个数据类型;从表中外建字段的值必须来自主表中的相应字段的值,或者为null值
语法:
创建表时列级设置约束
CREATE TABLE tablename(column datatype REFERENCES tablename2(column1));
创建表时表级设置约束
CONSTRAINT constraint_name FOREIGN KEY(colunm_name) REFERENCES tablename(column_name1) [ON DELETE CASCADE];//主表被删除后,从表也跟着被删除。
修改表时添加外键约束
ADD CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES tablename(column_name2) [ON DELETE CASCAD]
删除外键约束同删除主键约束一致
语法:
创建表时添加,列级,表级
CONSTRAINT constraint_name UNIQUE(column)//多个列要写多条唯一性约束
修改表时添加
ALTER TABLE tablename ADD CONSTRAINT constraint_name UNIQUE(column);
删除唯一约束同删除主键约束一致
语法:
创建表时设置约束,列级,表级
CHECK(EXPRESSIONS)
CONSTRAINT constraint_name CHECK(expressions);
修改表时添加检查约束
ALTER TABLE tablename ADD CONSTRAINT constraint_name CHECK(expressions);
删除检查约束和删除主键约束一致
语法:
SELECT [DISTINCT] column_name1 [AS] new_name,…|*
FROM table_name
[WHERE conditions]
[ORDER BY column1 DESC/ASC,…]
DISTINCT 去掉查询结果中重复的行。
AS 给列起别名,可以省略。
语法:
COLUMN column_name HEADING new_name;//设置列表的别名
COLUMN column_name FORMAT dataformat;//设置列表的显示格式
COLUMN column_name CLEAR;//清除格式
例子:
col salary format $9999.9//column可以简写col,9代表一个数字
col username format a10;//a表示字符串。10表示显示的长度
算数运算符:+-*/
比较运算符:>=,<=,>,<,=,<>,LIKE
逻辑运算符: and,or,not(优先级,not>and>or)
通配符 ,% ( 表示一个字符,%表示0到多个字符)
例子:
select * from users where username like ‘_a%’;
例子:
select * from users where salary between 800 and 2000;
例子:
select * from users where username in (‘aaa’,’bbb’);
ORDER BY column1 DESC/ASC,…
例子:
select * from users order by username desc,salary asc;
例子:
select username,case username when ‘aaa’ then ‘计算机部门’ when ‘bbb’ then ‘市场部门’ else ‘其他部门’ end as 部门 from users;
例子:
select username,case when username=’aaa’ then ‘计算机部门’ when username=’bbb’ then ‘市场部门’ else ‘其它部门’ end as 部门 from users;
语法:
DECODE(column_name,value1,result1,…,defaultvalue)
例子:
select username,decode(username,’aaa’,’计算机部门’,’bbb’,’市场部门’,’其他部门’) as 部门 from users;