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

网友投稿 538 2022-05-29

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

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

文件存储的发展历程:.......................... 10

文件存储方式保存数据的弊端:.......... 10

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

数据库(DB)和数据库管理系统(DMG)................................. 10

关系数据库......... 10

主流关系型数据库................................. 10

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

SQL简述............... 10

SOL的划分........... 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

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

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

NUMBER类型 :. 12

CHAR 类型:....... 12

VARCHAR2 类型:................................. 12

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) DELETE和TRUNCATE的区别.......................... 14

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

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

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

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

一. Oacle字符串操作.. 16

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

1) CHAR 和 VARCHAR2 类型 16

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

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

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

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

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

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

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

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

5)补位函数PAD:LPAD/RPAD........ 17

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

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

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

数据值类型......... 18

数值函数............. 18

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

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

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

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

三. Oracle日期操作......... 18

日期类型............. 18

1) DATE类型.. 18

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

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

1)SYSDATE....... 18

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

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

eg:算1987-10-17到当前过了多少天.................. 19

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

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

eg:查看1981年后入职的员工... 19

eg:查看每个员工到今天为止,入职了多少天....... 19

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

eg:将emp表中的每个员工的入职时间转换成yyyy年mm月dd天 19

eg:将1998-02-19时间转换为1998年2月19日.......................... 19

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

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

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

eg:计算周年庆日期... 20

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

eg:计算每个员工工做了几个月.......................... 20

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

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

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

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

NULL的含义......... 20

NULL的操作......... 20

1) 插入NULL值 20

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

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

4) 非空约束... 20

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

1) NVL(a1,a2) 将一个null值转化为一个非null值... 21

eg:求员工工资.......................... 21

2) NVL2(a1,a2,a3)  将NULL转化为实际值........... 21

eg:查看每个员工的奖金,如果有将建输出有奖金,如果没奖金,返回没奖金.............. 21

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

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

FROM字句........... 22

使用别名............. 22

WHERE字句......... 22

SELECT字句.......... 22

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

使用< , > , <=  , >= ,  !=  ,  <> ,  =................................ 22

使用AND ,OR关键字.............................. 22

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

模糊查询:LIKE... 22

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

BETWEEN...AND.. 用来查询符合某个范围的数据.................. 23

eg:查询工资在1500-3000之间的支援信息........... 23

使用IS NULL 和 IS NOT NULL................. 23

使用ANY 和 ALL........ 23

8.使用表达式和函数 23

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

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

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

聚合函数 又名分组函数,多行函数.......................... 24

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

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

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

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

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

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

eg:列出同部门同职位的员工的最高于最低工资... 24

eg:查看部门的平均工资高于2000的部门的平均工资.............. 24

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

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

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

关联的概念......... 26

笛卡儿积............. 26

等值连接............. 26

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

内链接:返回所有满足连接条件的记录... 26

外连接................. 26

全外链接............. 27

自连结................. 27

eg:找king的下属?... 27

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

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

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

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

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

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

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

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

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

如果子查询返回多行,在主查询中要使用多行比较操作符.................. 29

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

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

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

8)查看比所有salesman和clerk工资都高的员工.......................... 30

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

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

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

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

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

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

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

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

--截取6到10条数据....... 32

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

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

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

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

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

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

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

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

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

eg:需求:查看每个部门的工资排名...................... 33

rank函数:生成组内不连续也不唯一....... 34

dense_rank() 函数:生成组内连续但不唯一.............................. 34

select语句的执行顺序.............................. 34

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

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

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

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

查询视图内容:........... 35

修改视图.................. 35

对视图进行DML操作.. 35

简单视图:.................. 35

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

简化复杂查询.............. 35

限制数据访问.............. 35

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

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

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

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

通过查询user_views获取相关信息.............................. 37

复杂视图............. 37

1) 创建一个视图V_EMP_SALARY. 37

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

使用子查询.................. 38

使用视图.................. 38

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

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

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

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

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

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

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

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

约束的作用......... 39

约束的类型......... 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

常量..................... 45

从键盘获取值...... 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

eg:输入值,判断如果大于100显示是三位数,如果小于100大于10显示两位数否则显示一位数.................. 48

eg输入员工编号,查看该员工是否有奖金,如果有输出有奖金,如果没有,输出没奖金....... 48

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

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

eg:循环输出10个数字.................. 48

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

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

eg:循环输出10个数字.................. 49

eg:向dept表中插入50,60,70,80,90,100部门编号........... 49

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

eg:循环输出10个数字.................. 49

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

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

eg:预定义异常案例... 50

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

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

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

eg:输入一个员工编号,删除该部门的员工.............. 51

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

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

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

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

eg:由员工的编号查找员工的姓名... 53

如何调用函数.......................... 53

eg:由部门编号,输出这个部门的人数,返回部门的工资总和....... 53

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

案例....... 53

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

案例....... 54

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

案例....... 54

参数默认值... 54

删除函数 使用drop................... 55

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

程序块........... 55

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

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

eg:输出员工7788的姓名.............. 56

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

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

输出指定员工编号的员工姓名........... 56

根据员工的编号删除该员工,使用自定义异常....... 56

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

输入员工编号,返回员工姓名........... 57

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

输入数字然后输出....... 57

需求:根据员工编号,上调工资50%,如果上调成功,返回1,输出成功,否则返回0,输出失败.............. 58

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

官方定义:... 58

老师定义:... 58

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

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

2) 打开游标... 59

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

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

案例....... 59

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

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

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

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

1) %isopen..... 61

2) %found...... 61

3) %notfound..... 61

4) %rowcount.... 61

5) sql%notfound 61

6) sql%rowcount 61

案例....... 61

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

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

游标的for循环... 62

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

eg:查询员工的编号,姓名,工资然后输出........... 63

eg:查询部门号为20的员工的工资,工种........... 63

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

eg:查询工资在2000(默认值)以上的员工的姓名,也可以指定其他值........... 64

六. 包............................ 64

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

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

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

案例....... 65

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

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

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

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

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

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

创建触发器.......... 66

什么时候使用触发器:(记)................ 67

用触发器的优点:................................. 67

案例:........... 67

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11) 转账操作. 82

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

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

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

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

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

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

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

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

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

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

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

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

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

3)预处理操作. 90

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

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

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

SQL 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL进阶篇:深入理解启动项、系统变量、字符集
下一篇:Docker容器实战(七) - Docker存储隔离原理?
相关文章