-
约束的作用
1.定义规则;
2.确保数据的完整性;
oracle中5个重要的约束
1.非空约束
2.主键约束
3.外键约束
4.唯一约束
5.检查约束
查看全部 -
delete from table_name [where conditions];
1.无条件删除
create table testdel
as
select * from userinfo;
select * from testdel;
delete from testdel;
select * from testdel;
2.有条件删除--加上where
select username from userinfo;
delete from userinfo where username='yyy';
select username from userinfo;
查看全部 -
1.truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态。
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger。
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始)。
4.速度,一般来说: drop> truncate > delete。
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及。
6.使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大. 想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。查看全部 -
1.无条件更新
update userinfo set userpwd = '111111';
select userpwd from userinfo;
更改2个字端
update userinfo set userpwd='111',email='111@126.com';
2.有条件更新
update userinfo set userpwd='123456' where username='xxx';
select username,userpwd from userinfo;
查看全部 -
复制表数据
1.在创建表时复制
create table userinfo_new
as
select * from userinfo;
desc userinfo_new;
把userinfo表架构和内容复制给userinfo_new表;
create table userinfo_new1
as
select id,username from userinfo;
仅仅复制2个字段,包含其中值到新表;
2.在添加时复制
注意数据类型2个表需要匹配
insert info userinfo_new
select * from userinfo;
插入复制过来的所有字段数据;
insert info userinfo_new(id,username)
select id,username from userinfo;
2个表字段内容可以不同,但数据类型必须一直才可以执行成功.
查看全部 -
1.向表中所有字段添加值
不指定字段名称,默认表字段排列
insert into userinfo
values (1,'xxxx','123','xxxxx@126.com',sysdate);
sysdate 获取当前日期
2.向表中指定字段添加值
insert info userinfo(id,username,userpwd)
values(2,'yyy','123');
select username,userpwd from userinfo;
添加数据注意表设定某些字段是否可以为空的。
create table userinfo1
(
id number(6,0),
regdate date default sysdate
);
insert info userinfo1(id)
values('1');
一定要指定字段名称,有默认值的会自动填充.
alter table userinfo
modify email default '无';
修改表字段的默认值
insert into userinfo(id)
values(3);
select id,email from userinfo;
如果email字段不想用默认值
insert info userinfo(id,email)
values(4,'aaaa');
查看全部 -
删除表
truncate table 比delete速度快很多
truncate 也成为截断表,清空表数据,保存表结构
drop 把表的结构也删除清空,数据也清除;
查看全部 -
修改表---修改表的结构
desc userinfo;
alter table userinfo add remarks varchar2(500);
desc userinfo;
修改字段长度内容
alter table userinfo modify remarks varchar2(400);
修改数据类型
alter table userinfo modify userpwd number(6,0);
alter table userinfo drop column remarks;
该字段名字
alter talbe userinfo rename column email to new_email;
修改表名字
rename table_name to new_table_name;
rename userinfo to new_userinfo;
查看全部 -
字符型
固定长度
char(n) n最大2000
nchar(n) n最大1000--存中文多
变动长度的
varchar2(n) n最大2000,支持unicode
nvarchar2(n)--n最大1000,支持unicode
数值类型
number(p,s)
number(5,2) 123.45 有效数字是5位,可以保留2位小数---用的比较多
float(n)-----相对来说用number类型的多
日期类型
date------可以精确到s
timestamp------可以精确到小数秒,即毫秒
其他类型
blob可以存放4g的数据----二进制形式存放的数据
clob可以存4g数据-----字符串形式存储的
查看全部 -
number(p,s)
p指有效数字,总共长度
查看全部 -
删除表空间,和其数据文件
drop tablespace tablespace_name [including contents];
drop tablespace test1_tablespace including contents;
注意contents后面有s
查看全部 -
对数据文件进行添加,删除的操作,以及查看数据文件位置的命令
alter tablespace test1_tablespace add datafile 'test2_file.dbf' size 10m;
select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';
alter tablespace tablespace_name drop datafile 'filename.dbf';
tips:不能删除创建表空间第一个数据文件;
alter tablespace test1_tablespace drop datafile 'test2_file.dbf';
查看全部 -
修改表空间,都是指修改永久的表空间
设置联机或脱机状态的表空间
一般新建的表,都是默认联机的状态
alter tablespace tablespace_name online/offline;
如果表空间设置成脱机,我们就不能使用它了。
设置表空间只读或者可读写的状态
alter tablespace tablespace_name read only
alter tablespace tablespace_name read write
默认表空间是可读写的状态
但是在联机状态才可以读或读写,脱机状态不可以修改读写状态的。
select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';
online ,read write 也展示online
read only
查看全部 -
查看用户的表空间
dba_tablespaces 系统管理员的表字典--system可以查看,sys倒不能查看
user_tablespaces 普通用户的表字典
scott 可以查看user_namespaces 不可以查看dba_namespaces;
dba_users 数据字典,只有管理员级别的可以查看
user_users 普通管理都可以查看的数据字典
设置用户的默认或临时的表空间
alter user system default tablespace system;
select default_tablespace,temporary_tablespace from dba_users wehre username = 'SYSTEM';
普通用户没有设置表空间的权限
查看全部 -
表空间是如何分类的
数据库都是存放在表空间里面的
1.永久表空间---永久存放的空间,表,视图等;
2.临时表空间---数据的中间执行过程,执行完了就自动释放,不永久保存
3.undo表空间---事务处理,修改之前数据的保存,这样就可以进行数据回滚操作。
查看全部 -
scott 是默认用户,默认是锁定的
alter user username account 解锁命名
username----用户名
alter user username account unlock;
alter user username account lock;
example:alter user scott account unlock;
connect scott/tiger tiger 为默认密码
connect 是命令,不是sql语句,所以不用分号结尾
sql语句必须分号结尾
命令不需分号结尾
查看全部
举报