数据库学习-基础-个人手稿版-详情参见附件
- 数据库(DB)和数据库管理系统(DMG)................................. 10
- 关系数据库......... 10
- 主流关系型数据库................................. 10
三. SQL(结构化查询语言)简介................................. 10
- 数据定义语言(DDL):Data Definition Language........... 11
- 数据操纵语言(DML):Data Manipulation Language........... 11
- 事务控制语言(TCL):Transaction Control Language.......................... 11
- 数据查询语言(DQL):Data Query Language........... 11
- 数据控制语言(DCL):Data Control Language........... 11
- NUMBER类型 :. 12
- CHAR 类型:....... 12
- VARCHAR2 类型:................................. 12
- DATE 类型:........ 12
1.数据定义语言(DDL)----创建表.................... 12
4) 非空约束条件 NOT NULL.......... 13
2.数据定义语言(DDL)----修改表.................... 13
1) 修改表名 RENAME old_name TO new_name... 13
2) 修改表结构 ALTER TABLE 语句.......................... 13
(1)向表中添加新字段(增加新的一列)........... 13
3.数据操纵语言(DML)................................. 14
1) INSERT语句 给数据表增加记录.......................... 14
3) 插入日期字段.......................... 14
(1)插入默认日期格式.................. 14
4) UPDATE语句 :更新表中的数据.......................... 14
--更新tttt表中名字为lisi的员工薪水更新为5999.. 14
6) DELETE和TRUNCATE的区别.......................... 14
--补充:dual:oracle中的伪表,此表不存在.................. 16
2)length(char):查询的是字符串的字符个数.............. 16
3)大小写转换函数...................... 16
--eg:输入一个员工的名字,不管大小写,查询该员工的信息.............. 17
4)截去字符串 TRIM ,LTRIM ,RTRIM.......................... 17
5)补位函数PAD:LPAD/RPAD........ 17
6)获取字符串的子串 SUBSTR(char,m,n).......................... 17
7)查找字符串在另一个中的位置 instr(char1,char2,n,m).......................... 17
2) TRUNC(n,m) 截取数字........... 18
4)ceil(n)和floor(n).......................... 18
2) TIMESTAMP类型...................... 18
2) SYSTIMESTAMP 时间戳.............. 19
1) to_date() 把字符串转换成日期类型...................... 19
2) to_char() 函数.......................... 19
1)last_day(date) 返回date所在月份的最后一天... 19
2)add_months(date,i) 返回日期date加上i个月后的日期值...................... 19
3)month_between(date1,date2) 返回的是两个日期相差的月数 date1-date2....... 20
4)next_day(date,i) 返回的给定日期的最近的,还没过的周几的日期....... 20
5) least greatest比较函数........... 20
6)extract()函数 可以提取一个日期中指定的时间分量对应的值........... 20
2) 更新成NULL值.......................... 20
3) NULL 值条件查询.................. 20
1) NVL(a1,a2) 将一个null值转化为一个非null值... 21
2) NVL2(a1,a2,a3) 将NULL转化为实际值........... 21
- 使用< , > , <= , >= , != , <> , =................................ 22
- 使用AND ,OR关键字.............................. 22
--查看工资高于1000的CLERK于SALESMAN的员工信息... 22
4.IN/NOT IN 判断等于列表中的任何一项即可.......................... 23
9.使用distinct:除去重复行.......................... 23
三. 排序 ORDER BY 字句......................................... 23
1.MAX()/MIN() 求最大值 最小值................ 24
2.AVG()/SUM():求平均值,求和.................. 24
--需求:求公司员工的平均奖金,奖金总和(涉及null值转换)... 24
--需求:查询公司有多少人?................ 24
五. 分组GROUP BY 字句......................................... 24
---查看jones的下属的平均工资........... 27
---每个经理下属的平均工资.................. 27
1)需求:查找和SCOTT同职位的员工信息.............. 28
3)创建一个表emp10,保存所有10号部门的员工信息.................. 29
4)将blake所在部门的所有员工的工资提高10%....... 29
5)查询MANAGER所在的部门 多行单列.................. 29
6) 查找薪水比整个机构平均薪水高的员工.............. 30
7) 查看 与salesman同部门的其他员工........... 30
8)查看比所有salesman和clerk工资都高的员工.......................... 30
9)exists 关键字 查看那些部门有员工?.................. 31
1)查询列出最低薪水高于部门30的最低薪水的部门信息?.............. 31
2)查看平均薪水高于名叫clerk的平均薪水的职位.......................... 31
1)查看那些员工比所在部门的平均薪水高.............. 31
1.decode函数:可以实现类似于switch/case的功能...................... 33
1)eg:查询emp表,按职位计算奖励金.......................... 33
1)计算职位的人数,MANAGER,ANALYDT属于VIP,其他是OTHER... 33
2) 自定义排序.......................... 33
1.row_number()函数:生成组内连续且唯一................................. 33
- rank函数:生成组内不连续也不唯一....... 34
- dense_rank() 函数:生成组内连续但不唯一.............................. 34
- select语句的执行顺序.............................. 34
一. 视图........................ 35
2) 视图的作用.......................... 35
1)with check ption.......................... 36
2) WITH READ ONLY.................. 36
2)查看哪些员工比所在部门平均工资高.................. 38
3)查看那些员工的工资的一半都比30号部门的平均工资高.............. 38
二. 序列........................ 38
1) 非空约束(NOT NULL)................. 39
(1) 建表时添加非空约束.................. 39
(2) 修改表时添加非空约束.............. 39
2) 唯一性约束(Unique)............ 40
(3) 外键约束对性能的降低.............. 41
5) 检查约束(Check).............. 41
第二部分plsql语法................. 43
PLSQL语法............................... 44
2.PLSQL程序的构成模块.............................. 44
3.oracle中变量的标识符许满足以下规范:................................. 44
1)必须以字母开头,不能有空格.......................... 44
3)不能使用保留字...................... 44
4)常量/变量名称不区分大小写,在字母后可带数字和特殊字符#(只能带#).................... 44
1)获取数值类型.......................... 45
1)数值表达式: + - * / **(乘方).... 47
3)关系表达式: < > <= >= != like in between..... 47
4)逻辑表达式: not and or............... 47
5)函数表达式: to_date to_char to_num...... 47
- eg:输入值,判断如果大于100显示是三位数,如果小于100大于10显示两位数否则显示一位数.................. 48
- eg输入员工编号,查看该员工是否有奖金,如果有输出有奖金,如果没有,输出没奖金....... 48
2.循环....................... 48
1)loop基础循环.......................... 48
--输入一个员工编号,输出该员工的工资.................. 50
--员工工资小于1500,加200,该员工以更新,大于的输出超过规定值........... 50
1)根据员工编号,上调员工的工资,加200............... 51
2) 带参数的存储过程.................. 56
(1) in 向过程中传递参数.................. 56
(2) out 调用过程有返回值.............. 57
(3) in out 既传入又传出.................. 57
五. 游标........................ 58
--eg:输出前10条姓名和工资........... 59
--eg:输出工资大于1500的员工的姓名和工资....... 60
--查询emp表中共有多少条记录,用游标.................. 62
--把emp表中的书放入myemp表中,删除myemp表中emp=7788的员工,如果找到输出,找到这个值删除他,并输出删除列几行如果找不到,输出为找到.............. 62
六. 包............................ 64
1.一个包是由两个分开的部分组成:.......... 64
1)包定义的语法:.......................... 64
2)包体定义的部分:.................. 64
2)usre_source 保存包的代码....... 66
- 创建触发器.......... 66
- 什么时候使用触发器:(记)................ 67
- 用触发器的优点:................................. 67
- 案例:........... 67
第三部分:Jdbc...................... 69
1)jdbc中的常见接口:.................. 70
1)java数据库的链接.................. 70
2)查看每个员工的名字,职位,工资,部门名称,工作所在地........... 72
3)使用jdbc创建表...................... 73
4)使用jdbc创建序列.................. 74
5) 将序列作为一个值,向表中插入数据.................. 75
10)输入id删除用户.................. 81
2)事物操纵语言控制...................... 85
1) 创建资源文件.......................... 87
1)创建资源文件.......................... 88
(1) 使用预处理向userinfo表中插入100条信息........... 91
(2)通过ps查询用户余额,通过用户名和密码........... 92
(3)用预处理进行分页操作.............. 93
- 点赞
- 收藏
- 关注作者
评论(0)