数据库学习-基础-个人手稿版-详情参见附件

举报
bayabayabaluobo 发表于 2021/01/31 11:50:43 2021/01/31
【摘要】 第一章 数据库简介................ 10一.文件存储.................. 10文件存储的发展历程:.......................... 10文件存储方式保存数据的弊端:.......... 10二. 数据库简介............ 10数据库(DB)和数据库管理系统(DMG)....................................

第一章 数据库简介................ 10

一.文件存储.................. 10

  1. 文件存储的发展历程:.......................... 10
  2. 文件存储方式保存数据的弊端:.......... 10

二. 数据库简介............ 10

  1. 数据库(DB)和数据库管理系统(DMG................................. 10
  2. 关系数据库......... 10
  3. 主流关系型数据库................................. 10

三. SQL(结构化查询语言)简介................................. 10

  1. SQL简述............... 10
  2. SOL的划分........... 10

第二章 Qracle数据库............. 12

一. Oracle数据类型..... 12

  1. NUMBER类型 . 12
  2. CHAR 类型:....... 12
  3. VARCHAR2 类型:................................. 12
  4. DATE 类型:........ 12

二. 创建表,操作表..... 12

1.数据定义语言(DDL)----创建表.................... 12

1)创建一个employee...... 12

2)查看表结构. 12

3)给表中数据设置默认值  DEFFAULT语句.. 13

4 非空约束条件  NOT NULL.......... 13

2.数据定义语言(DDL)----修改表.................... 13

1 修改表名  RENAME old_name TO new_name... 13

2 修改表结构 ALTER TABLE 语句.......................... 13

1)向表中添加新字段(增加新的一列)........... 13

2 删除表中字段....... 13

3 修改表中的字段(修改列)....... 13

3.数据操纵语言(DML)................................. 14

1 INSERT语句 给数据表增加记录.......................... 14

1)指定字段插入....... 14

2)全列插入.............. 14

2 commit(事务控制语句)....... 14

3 插入日期字段.......................... 14

1)插入默认日期格式.................. 14

2)插入自定义日期格式 to_date().... 14

4) UPDATE语句 :更新表中的数据.......................... 14

--更新tttt表中名字为lisi的员工薪水更新为5999.. 14

5 DELETE 语句 删除表中记录... 14

1 删除工作岗位为null的员工....... 14

6 DELETETRUNCATE的区别.......................... 14

第三章 Oracle数据库基础..... 15

--创建职员表 emp........... 15

--创建部门表 dept........... 15

--补充:dual:oracle中的伪表,此表不存在.................. 16

一. Oacle字符串操作.. 16

  1. 字符串类型......... 16

1 CHAR VARCHAR2 类型 16

2 LONG H CLOB 类型........ 16

  1. 字符串函数......... 16

1 字符串链接函数concat||... 16

2length(char):查询的是字符串的字符个数.............. 16

3)大小写转换函数...................... 16

--eg:输入一个员工的名字,不管大小写,查询该员工的信息.............. 17

4)截去字符串 TRIM ,LTRIM ,RTRIM.......................... 17

--eg:除空格..... 17

5)补位函数PADLPAD/RPAD........ 17

6)获取字符串的子串 SUBSTR(char,m,n).......................... 17

7)查找字符串在另一个中的位置 instrchar1,char2,n,m.......................... 17

二. Oracle数值操作..... 18

  1. 数据值类型......... 18
  2. 数值函数............. 18

1)四舍五入 ROUND(n,m)...... 18

2 TRUNC(n,m) 截取数字........... 18

3)求余数 Mod(m,n).......... 18

4ceil(n)floor(n).......................... 18

  1. . Oracle日期操作......... 18
  2. 日期类型............. 18

1 DATE类型.. 18

2 TIMESTAMP类型...................... 18

  1. 日期关键字......... 18

1SYSDATE....... 18

2 SYSTIMESTAMP  时间戳.............. 19

3 日期类型可以比较大小........... 19

  1. 日期转换函数...... 19

1 to_date() 把字符串转换成日期类型...................... 19

2 to_char() 函数.......................... 19

  1. 日期常用函数...... 19

1last_day(date) 返回date所在月份的最后一天... 19

2add_months(date,i)  返回日期date加上i个月后的日期值...................... 19

3month_between(date1,date2)  返回的是两个日期相差的月数  date1-date2....... 20

4next_day(date,i) 返回的给定日期的最近的,还没过的周几的日期....... 20

5 least greatest比较函数........... 20

6extract()函数  可以提取一个日期中指定的时间分量对应的值........... 20

四. 空值操作................ 20

  1. NULL的含义......... 20
  2. NULL的操作......... 20

1) 插入NULL 20

2) 更新成NULL.......................... 20

3 NULL 值条件查询.................. 20

4 非空约束... 20

  1. 空值函数 NVL NVL2................................. 21

1 NVL(a1a2) 将一个null值转化为一个非null... 21

2 NVL2(a1a2a3)  NULL转化为实际值........... 21

第四章 SQL(基础查询)............ 22

一. 基本查询语句........ 22

  1. FROM字句........... 22
  2. 使用别名............. 22
  3. WHERE字句......... 22
  4. SELECT字句.......... 22

二. 查询条件................ 22

  1. 使用< , > , <=  , >= ,  !=  ,  <> ,  =................................ 22
  2. 使用AND ,OR关键字.............................. 22

--查看工资高于1000CLERKSALESMAN的员工信息... 22

  1. 模糊查询:LIKE... 22

4.IN/NOT IN  判断等于列表中的任何一项即可.......................... 23

  1. BETWEEN...AND.. 用来查询符合某个范围的数据.................. 23
  1. 使用IS NULL IS NOT NULL................. 23
  2. 使用ANY ALL........ 23

8.使用表达式和函数 23

9.使用distinct:除去重复行.......................... 23

三. 排序 ORDER BY 字句......................................... 23

四. 聚合函数................ 24

1.MAX()/MIN() 求最大值 最小值................ 24

2.AVG()/SUM():求平均值,求和.................. 24

--需求:求公司员工的平均奖金,奖金总和(涉及null值转换)... 24

3.COUNT()  计数..... 24

--需求:查询公司有多少人?................ 24

五. 分组GROUP BY 字句......................................... 24

六. 查询语句执行顺序. 24

第五章 SQL关联查询............. 26

一. 关联基础................ 26

  1. 关联的概念......... 26
  2. 笛卡儿积............. 26
  3. 等值连接............. 26

二. 关联查询................ 26

  1. 内链接:返回所有满足连接条件的记录... 26
  2. 外连接................. 26
  3. 全外链接............. 27
  4. 自连结................. 27

---按经理的名字排序....... 27

---查看jones的下属的平均工资........... 27

---每个经理下属的平均工资.................. 27

三. 子查询.................... 28

  1. where子查询:子查询嵌套在where字句中................................. 28

1)需求:查找和SCOTT同职位的员工信息.............. 28

2)需求:和BLAKE同部门的员工... 28

3)创建一个表emp10,保存所有10号部门的员工信息.................. 29

4)将blake所在部门的所有员工的工资提高10%....... 29

5)查询MANAGER所在的部门  多行单列.................. 29

6 查找薪水比整个机构平均薪水高的员工.............. 30

7 查看 salesman同部门的其他员工........... 30

8)查看比所有salesmanclerk工资都高的员工.......................... 30

9exists 关键字   查看那些部门有员工?.................. 31

2.having 子查询....... 31

1)查询列出最低薪水高于部门30的最低薪水的部门信息?.............. 31

2)查看平均薪水高于名叫clerk的平均薪水的职位.......................... 31

3.FROM 子查询....... 31

1)查看那些员工比所在部门的平均薪水高.............. 31

4.SELECT 子查询...... 31

四.分页查询.................. 32

--截取610条数据....... 32

--分页查询范围的算法... 32

五. DECODE函数.......... 33

1.decode函数:可以实现类似于switch/case的功能...................... 33

1eg:查询emp表,按职位计算奖励金.......................... 33

  1. decode函数在分组查询中的应用.......... 33

1)计算职位的人数,MANAGERANALYDT属于VIP,其他是OTHER... 33

2 自定义排序.......................... 33

六.排序函数.................. 33

1.row_number()函数:生成组内连续且唯一................................. 33

  1. rank函数:生成组内不连续也不唯一....... 34
  2. dense_rank() 函数:生成组内连续但不唯一.............................. 34
  3. select语句的执行顺序.............................. 34

第六章 数据库基础................ 35

一. 视图........................ 35

  1. 创建视图............. 35

1 视图........... 35

2 视图的作用.......................... 35

--数据的污染.................. 36

  1. 创建具有约束的视图.............................. 36

1with check ption.......................... 36

2 WITH READ ONLY.................. 36

  1. 通过查询user_views获取相关信息.............................. 37
  2. 复杂视图............. 37

1 创建一个视图V_EMP_SALARY. 37

2)查看哪些员工比所在部门平均工资高.................. 38

3)查看那些员工的工资的一半都比30号部门的平均工资高.............. 38

  1. 删除视图:不影响基表.............................. 38

二. 序列........................ 38

  1. 创建序列............. 38

2.使用序列............... 38

  1. 删除序列............. 39

三. 索引(了解)........ 39

四. 约束(掌握)........ 39

  1. 约束的作用......... 39
  2. 约束的类型......... 39

1 非空约束(NOT NULL)................. 39

1 建表时添加非空约束.................. 39

2 修改表时添加非空约束.............. 39

3 取消非空约束....... 39

2 唯一性约束(Unique)............ 40

3 主键约束(Primary Key)..... 40

1)主键的意义........... 40

2 主键的选取原则... 40

3 添加主键约束....... 40

4 外键约束(Foreign Key)...... 41

1 添加外键约束....... 41

2 外键约束对一致性的维护........... 41

3 外键约束对性能的降低.............. 41

5 检查约束(Check).............. 41

第二部分plsql语法................. 43

PLSQL语法............................... 44

一.基本语法.................. 44

1.PLSQL的注释........ 44

2.PLSQL程序的构成模块.............................. 44

3.oracle中变量的标识符许满足以下规范:................................. 44

1)必须以字母开头,不能有空格.......................... 44

2)长度不能超过30个字符.......... 44

3)不能使用保留字...................... 44

4)常量/变量名称不区分大小写,在字母后可带数字和特殊字符#(只能带#.................... 44

4.基表数据类型:.... 45

  1. 常量..................... 45
  2. 从键盘获取值...... 45

1)获取数值类型.......................... 45

2)获取字符串. 45

7.复合数据类型:.... 46

1.%TYPE   46

2 %ROWTYPE 46

3 )记录型....... 46

8.表达式:............... 47

1)数值表达式: + - * / **(乘方).... 47

2)字符运算符: ||..... 47

3)关系表达式: < > <= >= != like in between..... 47

4)逻辑表达式: not and or............... 47

5)函数表达式: to_date  to_char  to_num...... 47

二.流程控制.................. 47

1.条件控制............... 47

2.循环....................... 48

1loop基础循环.......................... 48

2)while循环...... 49

3)for循环.......... 49

三. 异常处理................ 50

  1. 预定义异常......... 50

--输入一个员工编号,输出该员工的工资.................. 50

--员工工资小于1500,加200,该员工以更新,大于的输出超过规定值........... 50

  1. 非预定义异常...... 51

3.用户自定义异常.... 51

1)根据员工编号,上调员工的工资,加200............... 51

四. 函数和存储过程..... 52

  1. 函数..................... 52

1 位置表示法传递参数.............. 53

2 名称表示法传递参数.............. 54

3 混合表示法传递参数.............. 54

  1. 存储过程............. 55

1)不带参数的存储过程.............. 55

1)调用过程的方法... 55

2 带参数的存储过程.................. 56

1 in 向过程中传递参数.................. 56

2 out 调用过程有返回值.............. 57

3 in out 既传入又传出.................. 57

五. 游标........................ 58

  1. 游标的定义及使用................................. 58

1)声明游标..... 59

2 打开游标... 59

3)提取数据..... 59

4)关闭游标..... 59

--eg:输出前10条姓名和工资........... 59

--eg:输出工资大于1500的员工的姓名和工资....... 60

--参数化游标.... 60

  1. 游标的属性......... 60

1 %isopen..... 61

2 %found...... 61

3) %notfound..... 61

4) %rowcount.... 61

5) sql%notfound 61

6) sql%rowcount 61

--查询emp表中共有多少条记录,用游标.................. 62

--emp表中的书放入myemp表中,删除myemp表中emp=7788的员工,如果找到输出,找到这个值删除他,并输出删除列几行如果找不到,输出为找到.............. 62

  1. 游标的for循环... 62

1)无参数的游标for循环............. 63

2)带默认参数的游标for循环.... 63

六. ............................ 64

1.一个包是由两个分开的部分组成:.......... 64

1)包定义的语法:.......................... 64

2)包体定义的部分:.................. 64

2.包的调用............... 66

3.删除包................... 66

4.数据字典........... 66

1)查询包......... 66

2usre_source 保存包的代码....... 66

七. 触发器.................... 66

第三部分:Jdbc...................... 69

一. Jdbc的简介............ 70

1.jdbc定义............... 70

1jdbc中的常见接口:.................. 70

  1. jdbc基础案例....... 70

1java数据库的链接.................. 70

2查看每个员工的名字,职位,工资,部门名称,工作所在地........... 72

3)使用jdbc创建表...................... 73

4)使用jdbc创建序列.................. 74

5 将序列作为一个值,向表中插入数据.................. 75

6 注册.......... 75

7 登陆.......... 76

8 使用jdbc进行分页查询....... 77

10)输入id删除用户.................. 81

11 转账操作. 82

  1. 知识点总结........ 84

1 java链接数据库的步骤:....... 84

2)事物操纵语言控制...................... 85

二. jdbc方法封装....... 85

  1. 数据库连接,关闭的封装...................... 85

1 封装类....... 85

2 测试类....... 86

  1. 从文件导入连接信息.............................. 87

1 创建资源文件.......................... 87

2 封装类....... 87

  1. 使用连接池使多个用户同时访问数据库................................. 88

1)创建资源文件.......................... 88

2)封装类........ 88

3)预处理操作. 90

(1 使用预处理向userinfo表中插入100条信息........... 91

(2)通过ps查询用户余额,通过用户名和密码........... 92

(3用预处理进行分页操作.............. 93

 

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。