Oracle基础知识(2)
create tablespace my
datafile 'F:\app\my.dbf'
size 10M
autoextend on next 5M
maxsize unlimited;
--删除表空间及关联的数据文件
DROP TABLESPACE hp including contents and datafiles cascade constraints;
--创建用户并分配默认表空间和临时表空间
create user m1 identified by 123456
default tablespace users
temporary tablespace temp;
--赋予用户角色和权限
grant connect,resource to m1;
--切换用户到m1;
conn m1/123456;
--撤销用户权限
revoke connect,resource from m1;
--删除用户
drop user m1;
drop user m1 cascade;(用户有表)
--日期函数
--显示当前日期
select sysdate from dual;
--显示时间戳
select systimestamp from dual;
--将字符串转化为日期
select to_date('2018-01-05','yyyy-mm--dd') from dual;
--创建表
--学生表
create table students(stuno number(4) primary key,stuname varchar2(20),age number(2),addr varchar2(50));
--课程表
create table course(cno number(4) primary key,cname varchar2(20),cscore number(3));
--成绩表(学号和课程共同作为一个主键,成为联合主键)
create table scores(sno number(4),cno number(4),score number(5,2),constraint pk_score primary key(sno,cno));
--增删改查
--增.插入表信息(主键非空唯一)
insert into students values(1001,'小明',21,'洛阳');
insert into students values(1001,'小明',21,'洛阳');
insert into students values(null,'张三',22,'焦作');
insert into students values(1003,'张三',22,'焦作');
--删.删除表信息
delete from students where stuno=1001;
--改.更新表信息
update students set stuno=1002 where stuno=1003;
--查.查看表信息
select * from students;
--删除表及其关联
drop table student cascade constraints;
修改表结构
--添加字段-增
alter table students add regdate date;
--删除字段-删
alter table students drop column regdate;
--修改字段的类型和长度-改
alter table students modify regdate number(4);
--查看表结构-查
describe students;
desc students;
--修改表名
alter table students rename to stu;
--修改字段名
alter table stu rename column regdate to reg;
补充:
1.表空间是用来进行数据存储的,所以是实际物理存储区域。
用户创建的数据库对象将存放在表空间内,创建用户的时候还必须使用为用户在默认表空间中分配空间配额,如果不指定默认表空间,ORACLE将会把SYSTEM表空间做为用户的默认表空间,这种情况应该避免。
临时表空间的主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。oracle在用户的临时表空间中创建临时段,该临时段属于sys用户,而不是属于用户。用户的临时表空主要是用户在执行大型的sql语句时所示用的临时排序空间,如果临时表空间不足在排序时则会使用硬盘进行排序,这会导致大量的磁盘读写操作,从而影响sql的执行性能。
2.权限和角色
--CONNECT:临时用户
--RESOURCE:更为可靠和正式的用户
--DBA:数据库管理员角色,拥有管理数据库的最高权限
--一般情况下,普通用户有connect和resource的角色就够了。
3.Oracle的数据类型:
char:可以存储定长的字符串 char(200)
varchar2:可以存储变长的字符串 varchar2(200)
当已知字符串长度用char比较合适,不确定字符串长度时,用varchar2比较合适。
数值数据类型:numer
number 等价于number(38,0)
number(15)表示可以存储一个15位的整数
number(22,7)表示可以浮点数,整数部分有15位,小数点后有7位
注意:不建议大家使用varchar,integer,float,double
4.BLOB全称为二进制大型对象(Binary Large Object),它用于存储数据库中的大型二进制对象。通常像图片、文件、音乐等信息就用BLOB字段来存储
CLOB全称为字符大型对象(Character Large Object)。
5.常见的约束:主键(primary key),外键(foreign key),唯一(unique),非空(not null),默认(default),用户自定义(check)
6.查看当前用户下的所有表:select * from user_tables;7.oracle中字符串用一对单引号''括起来
8.用户,数据库,数据库实例,表空间,数据文件,角色/权限