oracle常用sql语句

表操作

备份还原表

--同时备份表结构和表数据:
create table 新表名 as select * from 旧表名

--只备份表结构:
create table 新表名 as select * from 旧表名 where 1=2

--还原表
方式1:
insert into 现表 select * from 备份表;
方式2:
delete 旧表名; #当前旧表的数据
create table 旧表名 as select * from 之前备份的表

表名操作

--表名修改
alter table 表名 rename to 新表名

--表添加注释
comment on table "NWYDPT"."LOGIN_LOCKDEVICE_USER"  is '用户表'

表字段操作

--添加列字段注释
COMMENT ON COLUMN 表名.字段 is 字段注释;

--添加一个字段
alter table 表名 add  新字段  VARCHAR2(128);

--添加两个字段                                     
alter table 表名 Add (新字段名 number(1,0),新字段名 Varchar2(2));

--删除字段,字段要大写
alter table 表名 drop column "ID"

--修改字段
alter table 表名 rename column 旧字段名 to 新字段名;

--修改字段属性                 新的属性   
alter table 表名 modify 字段名 VARCHAR2(2000);
alter table 表名 modify 字段名 date
alter table 表名 modify 字段名 TIMESTAMP

--修改字段值
update 表名 set 字段 = 新值 where [id=1]
update 表名 set 字段 = to_date('2018-09-01','yyyy-mm-dd') where id=1
update 表名 set 字段 = '13-10月-19 03.33.59.000000000' where id=3

时间类查询

查询当前日期和时间

SELECT SYSDATE FROM dual

查询特定日期和时间

SELECT TO_DATE('2023-07-04 12:34:56', 'YYYY-MM-DD HH24:MI:SS') FROM dual;

查询特定日期范围内的数据

SELECT * FROM 表名
WHERE 时间列名 BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-12-31', 'YYYY-MM-DD');

大于某个时间

SELECT * FROM your_table
WHERE your_date_column > TO_DATE('2023-07-04', 'YYYY-MM-DD');

小于某个时间

SELECT * FROM your_table
WHERE your_date_column < TO_DATE('2023-07-04', 'YYYY-MM-DD');

等于某个时间

SELECT * FROM your_table
WHERE your_date_column = TO_DATE('2023-07-04', 'YYYY-MM-DD');

不在某个时间范围内

SELECT * FROM your_table
WHERE NOT (your_date_column BETWEEN TO_DATE('start_date', 'YYYY-MM-DD') AND TO_DATE('end_date', 'YYYY-MM-DD'));
上述语句将返回your_date_column不在'start_date'和'end_date'之间的所有记录

不在某个时间

SELECT * FROM your_table
WHERE your_date_column NOT IN (TO_DATE('2023-07-04', 'YYYY-MM-DD'), TO_DATE('2023-07-05', 'YYYY-MM-DD'));
上述语句将返回your_date_column不在'2023-07-04'和'2023-07-05'之间的所有记录。

包含某个时间范围

SELECT * FROM your_table
WHERE EXTRACT(YEAR FROM your_date_column) = 2023
   OR EXTRACT(MONTH FROM your_date_column) = 7
   OR EXTRACT(DAY FROM your_date_column) = 4;
上述语句将返回your_date_column的年份为2023、月份为7或日期为4的所有记录。

按日期进行分组并计算每个日期的统计信息

SELECT TO_CHAR(时间列名, 'YYYY-MM-DD') AS date, COUNT(*) AS count
FROM 表名
GROUP BY TO_CHAR(时间列名, 'YYYY-MM-DD');

TO_DATE函数用于将字符串转换为日期类型。它接受两个参数:要转换的字符串和表示日期格式的字符串。例如:

SELECT TO_DATE('2023-07-04', 'YYYY-MM-DD') FROM dual;
上述语句将字符串'2023-07-04'转换为日期类型。

TO_CHAR函数用于将日期类型转换为字符串。它接受两个参数:要转换的日期和表示日期格式的字符串。例如:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;
上述语句将当前日期(SYSDATE)转换为字符串,并使用格式'YYYY-MM-DD HH24:MI:SS'进行格式化。

总结起来,TO_DATE函数用于将字符串转换为日期类型,而TO_CHAR函数用于将日期类型转换为字符串。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容