最近在学Oracle,正好分享一下笔记,给有需要的人,也方便自己复习。要每天学两个小时,坚持更新。
--查询系统时间:
Select sysdate from dual;
--Dual为虚拟表。
--查询系统时间24制的时间表示,时分秒。
Select to_char(sysdate,'yyyymmdd hh24:mi:ss') from dual;
--清屏幕
clear screen
--系统时间精确到小数点后六位
select to_char (systimestamp,'yyyymmdd hh24:mi:ssxff') from dual;
--现在建一个数据表(student)
Create table student(sno number(6), sname varchar2(10),birthday date);
--插入一列电话号
Alter table student add tele varchar2(11);
--删除表结构
Drop table student;
Ps:delete/drop/truncate的区别:
1、删除表数据(delete)
删除表的全部数据
delete from third_stock_sync_log; //不加条件,删除全部数据
delete from third_stock_sync_log where 1=1; //加恒成立的条件,删除全部数据
2、
删除表的部分数据
delete from third_stock_sync_log where platform_stock_order_no = '123'; //根据条件,删除部分数据
3、清空表数据(truncate )
truncate table third_stock_sync_log;
4、删除表
drop table third_stock_sync_log;
区别:
delete 和 truncate,只删除表中数据不删除表的结构;
( delete删除表中数据,不删除行;
truncate删除表中数据,会清空行;
)
drop删除表的结构和被依赖的约束、触发器、索引等,存储过程/函数将被保留,但是变为invalid状态;
2、日志
delete 删除数据,会写日志、有备份可以回滚;
truncate 删除数据,不会写日志、不能回滚,因此慎用(生产上基本不让程序员用,用了DBA后期找不到日志,因此生产上会禁了此命令使用权限);
3、空间
delete删除表中数据不释放空间;
truncate 和 drop删除数据、释放空间;
4、触发器
delete会触发 相应的触发器;
truncate不触发任何触发器;
5、删除速度
drop > truncate > delete
--范围调整问题,由小到大列的范围可以调整,由大到小调整列的范围,要看里面储存数据的位数。
alter table student modify tele varchar2(20);
如:11>20 可以 20>11,要看列已经储存数据的位数。
--删除表内一列,在增加列的时候可以不用Column,但是删除某一列时,必须在列名前面加上column。Tele为列名。
alter table student drop column tele;
--注意结尾要用英文逗号,values后面不要空格。
insert into student values(3,'C','06-6月-07');
--查询
Select * from student;