创建表空间:
create tablespace ...
修改表空间:
alter tablespace u1_tablespace rename datafile 'u1_datafile' to 'u1_dbf1';
alter tablespace u1_tablespace online;
使用表空间:
create table t(t1 char(10)) tablespace u1_tablespace;
查询表空间:
#查询系统存储表空间的系统表结构
describe dba_tablespaces;
select tablespace_name,status from dba_tablespaces;
select file_name,file_id,tablespace_name,bytes from dba_data_files
SQL语言的主要组成部分:
DDL:Data Defiinition Language 数据定义语言
DML:Data Manipulation Language 数据操纵语言
DCL:Data Control Language 数据控制语言
创建用户:
create user 用户名 identified by 密码
[default tablespace 缺省表空间]
[temporary tablespace 临时表空间]
给用户连接数据库的权限:
grant connect to 用户名;
具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵。即可以执行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX
GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作
如果只是给用户赋予建表权限,如:grant create table to user1;这样用户还是不能成功建表,提示错误是对表空间没有操作权。
给用户赋予表空间的使用权:
alter user u1 quota 200M on 表空间1;
alter user u1 quota unlimited on 表空间1;
收回建表权:
revoke create table from u1;
RESOURCE角色可以创建表,即执行CREATE TABLE操作。创建表的用户将拥有对该表的所有权限。Create table 权限和create any table 权限是有区别的,后者可以建立其他用户下的表格。如用U1登录,可以这样建表Create table system.t (t1 int); 建立其他用户(如U1)的表格,表格的所有权应归属于表格的拥有者(U1),而不是创建者。即他不能对该表格进行权限外操作。若想将权限赋予所有用户,可以使用Public角色。
Grant select on sc to public;---执行后所有用户将拥有sc的查询权利。
定义基本表的语句格式:
create table <表名> (<列定义>[{,<列定义>,<表约束>}])
--列定义:列定义,列数据类型,长度,是否允许为空等。
--定义完整型约束:列约束和表约束
--[constraint <约束名>]<约束定义>
Oracel 中复制表:
Oraclezhong 复制student表
create table t as select * from student where 1=2;(只复制表结构)
SQL中复制表:
select * into t from student;
Oracle中查看表达式的值:
Oracel中可以通过Dual表查看常量或表达式的值:
--查看系统时间
select sysdate from Dual;
--产生1到10的随机数
select dbms_random.value(1,10) from dual;
rownum:为Oracel表格中的记录逻辑顺序的列,在Oracle中的查询顺序是,先查询,后排序。
rownum在条件中只能小于某数,不能大于某数。
查询成绩最高的5位同学的学号:
select * form (select * from sc order by grade desc) a where rownum <=5
查询成绩在10到15的学生学号:
select * from (select rownum rn,a.* from (select * from sc order by grade desc) a) where rn <= 15 and rn >=10;
decode函数和sign函数:
SELECT sno,ssex,decode(trim(ssex),'m','男','f','女','待定') 性别 FROM Student
sign函数的具体语法格式:
sign(v1-v2):v1-v2为正数则返回1,负数返回-1,0为0;
select sno,cno,decode(sign(grade-60),1,'及格',-1,'不及格','未考试') 是否合格 from sc;
使用case when分类输出:
select sno 学号,cno 课程号,
(case when grade>=90 then '优'
when grade>=80 then '良'
when grade>=70 then '中'
else '及格'
end) as 成绩级别
from sc
SQL Plus 登录数据库指令:
请输入用户名:
system/password
请输入用户名:
system
输入口令: // 此处填写口令不可见,正确输入后回车即可
请输入用户名:
system/password@orcl // 指定数据库实例 orcl
请输入用户名:
sys/password as sysdba // sys用户登录需要指定方式
SQL Plus 退出数据库指令:
quit
exit
SQL Plus 切换用户指令:
conn sys as sysdba
输入口令:
已连接。
SQL>
SQL Plus 清空屏幕指令:
clear screen;
1、sys是Oracle的一个很特殊的用户,它只能按sysdba和sysoper身份登入,也就是说只要按以上两种身份登入,都是sys用户,
表面上输入的用户名都是无效的。任何其它用户只能按Normal身份登入。
2、sys用户的合法认证有两种方式:
一是操作系统认证方式,
二是数据库口令认证方式。如果你登入的操作系统是Oracle用户组,
那么直接通过操作系统认证连接到数据库,没有必要口令来认证。所以你随便输入一个口令都可以的。
以SYSDBA身份登录SQLPlus工具
执行ARCHIVE LOG LIST命令可以查看数据库当前运行模式
执行ALTER DATABASE ARCHIVELOG | NOARCHIVELOG命令修改数据库的日式模式
获取控制文件信息:
select name from v$controlfile
未完待续。