oracle day1

Oracle数据库(day1--day5)


Oracle 9g
Oracle 10g


安装时需要设置密码
system  

Oracle 端口号:8080

Tomcat 端口号:8080

默认数据库:XE

JDBC:

String sql="    ";


Hibernate <=====底层封装JDBC


DOS命令:
连接数据库:conn


导入*.sql文件

要在DOS窗口下运行
@+路径


Oracle测试表导入顺序:
@D:/demobld.sql;======>自动关闭DOS窗口
@D:/summit2.sql;


测试表s_dept(部门表),s_emp(员工表);



查看数据库里所有信息
*===》代表所有字段
select * from dba_tables;
or
select * from user_tables;

查看数据库里的表名
select table_name  from dba_tables;
or
select table_name from user_tables;

查看表结构:
查看员工表表结构s_emp:
DESCRIBE  + 表名
desc      + 表名
desc s_emp;

查看当前表里的所有信息
select  * from 表名

查看员工表里的所有信息
select * from s_emp;

查看员工表里的编号以及名字
select id , last_name , first_name from s_emp;


给字段起别名
字段+空格 +别名

查看员工表中的编号并起一个别名
select id "编号" from s_emp;


拼接(合并)
||
查看员工表中第一个名字,第二个名字并合并。
select first_name || last_name from s_emp;


查看员工表里的编号以及全名并起一个别名

id 编号
first_name , last_name “姓名”

select id "编号" , first_name || last_name "姓名" from s_emp;

多个内容进行拼接
select id "编号" , first_name || '===== ' || last_name "姓名" from s_emp;



加100块钱
算数操作

salary+100


给员工表中所有员工加100块工资
select first_name || last_name "姓名" , salary+100 from s_emp;

查询一年的工资,然后加一百块钱
SELECT     last_name, salary, 12 * salary + 100 FROM     s_emp;

查询每个月加一百块钱,一年共有多少工资
SELECT     last_name, salary, 12 * (salary + 100) FROM     s_emp;

12 * (salary + 100)  =====>算术运算的优级



查看员工表中最终的工资
总工资=工资+提成

salary+(salary*commission_pct)
select first_name , salary+NVL(commission_pct,0) "总工资" from semp;

select first_name , salary+(salary*NVL(commission_pct,0)) "总工资" from s_emp;

把空值做转换
null + 值====>null

非空函数
语法格式:NVL(字段,值)

NVL (start_date, '01-JAN-95')
NVL (title, 'No Title Yet')
NVL (salary, 1000)


查看部门表的所有信息
select * from s_dept;


查看部门表中部门名字
select name from s_dept;

把重复的记录去掉(DISTINCT)

DISTINCT:去除重复行

select DISTINCT  name , from s_dept;

<think>好的,我现在需要帮助用户查找Oracle数据库中关于add_day函数的用法或相关信息。首先,用户提到的是“add_day”函数,但根据我对Oracle的了解,标准的日期函数中并没有这个名称的函数。可能用户记错了函数名,或者指的是其他数据库中的类似函数。因此,我需要先确认Oracle中是否有add_day函数,或者是否有等效的日期操作函数。 首先,我应该回忆一下Oracle的日期函数。常见的日期操作函数包括ADD_MONTHS、日期减运算等。例如,Oracle允许使用日期减数字来表示天数的减,比如SYSDATE + 7表示一周后的日期。这可能就是用户需要的功能,但用户可能误以为是add_day函数。 接下来,我需要验证这一点。根据引用中的资料,比如引用[2]提到的Oracle诊断事件,虽然没有直接提到日期函数,但可以确认用户是在Oracle环境下工作。因此,我应该详细说明Oracle中如何处理日期的减。 另外,用户可能需要了解如何增天数以外的其他日期部分,比如月份或年份。这时ADD_MONTHS函数就派上用场了。此外,Oracle还提供了INTERVAL类型,可以更灵活地处理时间间隔,比如增小时、分钟等。 还需要考虑用户可能遇到的常见问题,例如如何处理月末日期,比如给2023-02-28一个月,ADD_MONTHS会返回2023-03-31吗?需要说明这种情况下的处理方式。 此外,用户可能需要示例来更好地理解如何使用这些函数。因此,提供具体的SQL示例会很有帮助,比如使用减操作符增天数,或者使用ADD_MONTHS增月份,以及使用INTERVAL来增更复杂的时间段。 最后,生成相关问题,帮助用户进一步探索Oracle的日期函数,比如如何计算两个日期的差异,如何处理时区转换等,这样用户可以根据自己的需求继续深入学习。</think>在Oracle数据库中,并没有内置的$add\_day()$函数,但可以通过以下方式实现日期减操作: ### 一、Oracle日期操作方法 1. **基础天数减** 使用减运算符直接操作日期值: ```sql SELECT sysdate + 7 FROM dual; -- 7天 SELECT sysdate - 3 FROM dual; -- 减3天 ``` 2. **月份减函数** $$ ADD\_MONTHS(date\_expr, num\_months) $$ ```sql SELECT ADD_MONTHS(SYSDATE, 2) FROM dual; -- 2个月 ``` 3. **精确时间间隔** 使用$INTERVAL$表达式处理更细粒度的时间计算: ```sql SELECT SYSDATE + INTERVAL '2' HOUR FROM dual; -- 2小时 SELECT SYSDATE + INTERVAL '30' MINUTE FROM dual; -- 30分钟 ``` ### 二、特殊日期处理 当处理月末日期时,需注意: ```sql SELECT ADD_MONTHS(DATE '2023-02-28', 1) FROM dual; -- 返回2023-03-31 SELECT ADD_MONTHS(DATE '2024-02-29', 12) FROM dual; -- 返回2025-02-28 ``` ### 三、完整日期计算示例 ```sql -- 创建测试表 CREATE TABLE orders ( order_id NUMBER, order_date DATE ); -- 插入数据 INSERT INTO orders VALUES(1, DATE '2023-01-15'); -- 查询3天后的订单日期 SELECT order_date + 3 AS due_date FROM orders; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值