1.数据库介绍
关系型数据库:由数据,数据之间关系,数据约束组成的数据模型。方便数据的管理:通常是 存储,查询 统计。关系型数据库中数据是被存放与表中,以表格形式体现。目前使用SQL(结构化查询语言) 在关系型数据库中进行信息的查询,SQL 有以下几种:
①数据定义语言:DDL 用于建立、修改,删除数据库对象,包括CREATE 、 ALTER、 DROP 。 举例:
--创建学生表:包含 姓名 年龄 班级 性别
CREATE TABLE STUDENTS ( NAME VARCHAR2(10 BYTE ), AGE NUMBER(2),CLASSNAME CHAR(4),GENDER CHAR(2))
--删除表
DROP TABLE STUDENT
--删除某一列
ALTER TABLE STUDENT (AGE)
-- 向表中添加一列 :ALTER TABLE STUDENT ADD ( AGE CHAR(2) )
--修改一列:ALTER TABLE STUDENT MODIFY (AGE CHAR(2) NOT NULL)
--修改表名字 : RENAME STUDENT TO STUDENTS
②数据操作语言:DML 用于改变数据库数据,包括 插入数据 INSERT 、更新数据 UPDATE 、删除数据 DELETE 。 执行完后需要提交 COMMIT 才能在数据库中真正完成操作。 或者 回滚 ROLLBACK 取消操作。举例:
--向表中添加数据
INSERT INTO STUDENT ( NAME , AGE ,GENDER ) VALUES ( TOM ,18,F)
COMMIT
③事物控制语言:TCL 控制数据库数据 数据操作语言 ,包括 提交 COMMIT 回滚 ROLLBACK 保存点 SAVEPOINT 可以设置保存点 退回到保存点 。举例:
--向表中添加数据 不提交 回滚
INSERT INTO STUDENT ( NAME , AGE ,GENDER ) VALUES ( JACK ,20,F)
ROLLBACK
--设置保存点
SAVEPOINT A
--回到保存点
ROLLBACK A
④数据查询语言:TQL: 用于查询 SELECT 举例:
--查询全表数据
SELECT * FROM STUDENT
⑤数据控制语言: DCL : 用于执行权限的 授予 和回收操作 、创建用户等 ,包括授予 GRENT 收回 REVOKE 创建用户 CREAT USER 。 语句自动提交
定义数据表时常用数据类型 :
1。数字 number( P,S )
其中 P 表示 数字总共 有多少位 ,S 表示 P中的小数是多少位
数字相关 函数 ROUND (四舍五入) ,TRUNC (截取) ,MOD (取余) , CEIL (向上取整 ) ,FLOOR (向下取整)
ROUND (55.234, 2) 取两位小数 四舍五入 结果 55.23 ROUND (35.789,1 ) 取一位小数 结果 35.8
TRUNC (33.674,2) 截取 使数据 剩余两位小数 结果 33.67 TRUNC (35.789, 1) 结果 35.7
MOD(20, 3) 结果2 。 MOD(100,3) 结果 1 。
CEIL (33.674) 结果 34 FLOOR( 33.674) 结果 33
2. 日期 DATE 日期 占据 7个内存字节 第一字节 代表世纪 之后分别是 年月日 时分秒 显示 年月日
timestamp 日期 包含 占据7个字节时候 包括 世纪年月日 时分秒 显示年月日时分秒
占据 11个字节时候 包括 世纪 年月日 时分秒 毫秒 微秒 纳秒
日期相关 函数 :
① 显示系统时间 SYSDATE 日期 年与日 SYSTIMESTAMP 精确到纳秒:
SELECT SYSDATE FROM DUAL
SELECT SYSTMIESTAMP FROM DUAL
② 改变时间格式 TO_DATE( 需转化的字符串 ,目标格式 ,日期语言 ) , TO_CHAR ( 日期 , 日期格式 ,日期语言 )
--查询2012 年之后入职的员工 名字
SELECT NAME FROM EMP WHERE HIREDATE > TO_DATE('2012-1-1','YYYY-MM-DD')
--将职员入职日期 以 固定格式输出
SELECT NAME ,TO_CHAR(HIREDATE, 'YYYY-MM-DD') FROM EMP
③ 返回日期所在YUE的最后一天 LAST_DAY ( DATE)
SELECT LAST_DAY(SYSDATE) FROM DUAL
④ ADD_MONTHS ( date,i) 在date 基础上增加 I个月份
SELECT ADD_MONTHS(SYSDATE,3) FROM DUAL
⑤ 两个月份中间间隔多少月份 MONTHS_BENTWEEN(DATE1 ,DATE2 )
SELECT MONTHS_BENTWEEN(HIREDATE, SYSDATE ) FROM EMP
⑥ 返回日期列表中的最小值 LEAST ( DATE1, DATE2 ,DATE 3 ...)
返回日期列表中的最DA值 GREATEST ( DATE1, DATE2 ,DATE 3 ...)
⑦返回date日期数据的下一个周几,周几是由参数char来决定的 NEXT_DAY( DATE , CHAR)。
SELECT NEXT_DAY(SYSDATE, 4) next_wedn FROM DUAL
⑧EXTRACT(date FROM datetime):从参数datetime中提取参数date指定的数据,比如提取年、月、日。
SELECT EXTRACT(HOUR FROM TIMESTAMP '2008-10-10 10:10:10') FROM DUAL
3. 字符 VARCHAR () VARCHAR2() CHAR () LONG CLOB
CHAR ()固定字符 括号中填写 字节位数 最大2000字节 写多少就是多少空间
VARCHAR2 (N) 可变字符 最大4000字节 N以下写多少都是占N个空间
LONG 加长字符 ,最多 2G 字节
CLOB 超长 字符 最多 4G 字节
字符相关函数
①连接 CONCAT ,|| . 例 : 字符A || 字符 B 例: CONCAT(A ,B)
② 字符长度 LENGTH( 字符)
③改变大小写
UPPER(char)用于将字符转换为大写形式
LOWER(char)用于将字符转换为小写形式
INITCAP(char)用于将字符串中每个单词的首字符大写,其它字符小写,单词之间用空格和非字母字符分隔
④去除空白
TRIM(c2 FROM c1) 表示从c1的前后截去c2
LTRIM(c1[, c2]) 表示从c1的左边(Left)截去c2
RTRIM(c1[, c2]) 表示从c1的右边(Right)截去c2
⑤ 补位
LPAD(char1, n, char2) 左补位函数
RPAD(char1, n, char2) 右补位函数
⑥截取字符串 SUBSTR (字符串,number1 ,number2 ),从number1 位置截取到 number2 位置 假如 写一个就是截取到末尾 ,写大于字符串的也是 到末尾,数据库中字符串从1 开始计数
⑦用来返回在一个字符串中子串的位置 INSTR( CHAR1 ,CHAR2 )
返回子串char2在源字符串char1中的位置, 从n的位置开始搜索,没有指定n,从第1个字符开始搜索, m用于指定子串的第m次出现次数,如果不指定取值1 ,如果在char1中没有找到子串char2 ,返回0.