04Oracle_05JDBC











176.137.6.30/64
6.45


1521


xe


测试成功就连接


连接池的名字:


dbcp:
C3PO


VARCHAR是通用的,其他db软件也支持,包括oracle,但是在oracle中是用VARCHAR2
————————————————————————————————————————————————————
DDL:(数据定义):CREATE/ALTER/DROP/TRUNCATE
DML:(数据操作):INSERT/UPDATE/DELETE
TCL:(事务控制):COMMIT/ROLLBACK/SAVEPOINT
DQL:(数据查询):SELECT
DCL:(数据控制):GRANT/REVOKE(用于收回用户或角色已有的权限)/CREATE USER


































DATE 7个字节,每个字节表示一个数据:日月年时分秒
[]和java一样可写可不写
CREATE TABLE [openlab.] STUDENT 方括号内表示给超级用户下的其他用户比如openlab创建表STUDENT






实际开发不用JDBC直接连数据库,都是用框架,避免各种数据库的差异


数据定义语言Data Definition Language
CREATE: 创建表或其他对象的结构
ALTER:修改表或其他对象的结构
DROP:删除表或其他对象的结构
TRUNCATE:删除表数据,保留表结构






Data Manipulation Lauguage
INSERT
UPDATE
DELETE






事务控制语言Transaction Control Language
COMMIT : 提交。事务的开始是自动的,结束是根据提交或回滚,前者算数,后者不算数
ROLLBACK: 回滚
SAVEPOINT : 保存点






Data Query Language
SELETE






Data Control Language
GRANT : 授予,用于给用户或角色授予权限
REVOKE : 用于收回用户或角色已有的权限
CREATE USER


————————————————————————————————————————————————————————
数据库中字符窜的字面量是使用单引号括起来的,并且字符串内容是区分大小写的


数据库中所有数据类型默认值都是NULL
可以通过DEFAULT关键字为字段单独指定默认值


2.3
修改字段的类型,长度,添加默认值,约束等修改表结构时尽量在表中没有数据的时候进行。
当有数据时,尽量不要修改字段的类型,修改长度时尽量增大不要减小,否则都可能修改失败




————————————————————————————————————————————————————————


DML语句
是对表中数据进行维护的语句,包含增删改操作。DML是伴随事务操作的


INSERT 语句,用于向表中插入数据






不指定字段是全列插入
INSERT INTO employee_MILO VALUES(1009,'MARY',5000,10);不指定的话需要全字段写,不能部分
建议:
INSERT INTO employee_MILO (ID ,NAME,SALARY,DEPTNO) VALUES(1009,'MARY',5000,10);






字符串区分大小写的




-——————————————————————————————————————


SCOTT DEPTNO ————》50




————————————————————————————————————————————————————————


CHAR(10 CHAR)实际中少用。
CHAR()可以不指定长度相当于默认给1个字节,相当于CHAR(1)
VARCHAR2()则必须指定




LONG VARCHAR2加长版,是变长,最多2GB。缺点:不能作为主键,每个表只能有一个long类型列,不能建立索引;不能出现在查询条件中,就是不能出现在where中


CLOB:存储定长或变长,最多4GB


CONCAT(CHAR1,CHAR2)拼接
如果char1和char2任何一个为null,相当于连接了一个空格


SELECT CONCAT(CONCAT(ename,':'),sal) FROM emp;


--多个字符连接,用||更直观
SELECT ename || ':' || sal FROM emp;




LENGTH(char)
用于返回字符串的长度
SELECT ename,LENGTH(ename) FROM emp;




————————————————————————————————————————————————————————


DQL语句:
SELECT语句用于查询表或视图中数据使用
基本组成部分:
SELECT filed1,filed2,...FROM table


SELECT 子句:指定要查询的字段
这里的SELECT后面可以指定表中的字段,函数或表达式,还以使用*查询表中所有字段FROM子句:指定数据来源的表(要查询的表)




DUAL:伪表,不是真实存在的表,当查询的内容与任何表没有关系的时候可以使用它。
凑数的,用来测试。只有1行。就是查询的跟任何表没关系的时候用。
SELECT upper('helloworld') ,LOWER('HELLOWORLD'), INITCAP('hell') FROM DUAL;




TRIM / LTRIM /RTRIM
作用:截去子串
语法形式:
-TRIM(c2 FROM c1)从c1的前后截去c2
-LTRIM(c1[,c2])从c1的左边截去c2
-RTRIM(c1[,c2])从c1的右边截去c2
————————————————————————————————————————————————————————


LPAD RPAD
补位函数。不够就凑,多了就切.但是只有从右边往左边切
可以用特定字符补,也可以用空格补。如果其他数据都是4位,少部分是3位,当LPAD(sal,3,'')则表示其他4位的数据会被从右边截断。
SELECT ename,LPAD(sal,5,'') FROM emp_milo
/*不够位数的用$补齐*/
SELECT ename , LPAD(sal,5,'$') FROM EMP_MILO;


/*5:SUBSTR(CHAR,INDEX,LENGTH)
INDEX可以是负数,负数是从倒数位置开始
LENGTH:可以不指定,不指定则是截取到末尾,超过实际可截取的数字也是到末尾,但是不能为负数。
从给定位置开始截取字符串,连续length个。数据库中下标都是从1开始,和java不同
这里8是开始位置,25是截取的个数
*/


SELECT SUBSTR('Doctor who travels in TARDIS',8,25) FROM DUAL;


————————————————————————————————————————————————————————


instr相当于java的indexOf
6.INSTR(CHAR1,CHAR2,N,M)
查看char2在char1中的位置
n:指定开始查找位置
m:第几次出现
n,m不写默认都是1
找不到是返回0,因为下标从1开始,不同于java,java是从0下标开始,返回-1
————————————————————————————————————————————
NUMBER(PRECISION ,SCALE)最多38位,不指定p则给38位
——————————————————————————————————————————————
数字函数
1:ROUND(n,m)四舍五入
对n进行四舍五入
m:保留小数点后的位数
m不写默认为0,即:保留到整数位
-1为十位,-2为百位,以此类推




TRUNC(N[,M]):用于截取,参数意义和ROUND一致,但是不进行四舍五入,而是直接截取,不管后面的数字


被除数/除数
除数不能为零,在java中会报数学异常
3:MOD(M,N)求余,n不能为0,为0则什么也不做直接返回m




4:CEIL(N), FLOOR(N)。向上取整和向下取整。
SELECT FLOOR(45.67) FROM DUAL; //FLOOR则返回45,CEIL则返回46.小于的最大整数,大于的最小整数


——————————————————————————————————————————————
日期类型相关函数
日期相关关键字
SYSDATE:对应一个内部函数,返回一个表示当前系统时间的DATE类型值
SYSTIMESTAMP:对应一个内部函数,返回一个表示当前系统时间的时间戳类型的值


SELECT SYSDATE FROM DUAL


——————————————————————————————————————————————


TO_DATE()函数
将一个字符串按照给定的日期格式解析为一个DATE类型数据
SELECT TO_DATE('2008-08-08','YYYY-MM-DD') FROM DUAL;


日期可以比大小越晚越大






——————————————————————————————————————————————


两个日期之间做减法,差表示天数




TO_CHAR()
可以使用将DATE按照给定的日期格式转换为字符串
SELECT ENAME,TO_CHAR(hiredate,'YYYY-MM-DD') FROM EMP_MILO;


除了字母数字和符号,其他都要用双引号。


SELECT ENAME,TO_CHAR(hiredate,'YYYY"年"MM"月"DD"日" ') FROM EMP_MILO;




------------------------------------------------ 
   \USER    |0-49 |50-99 |
SYS \
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值