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 \