| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> csdn涨薪技术-软件测试Oracle数据库全套教程 -> 正文阅读 |
|
[大数据]csdn涨薪技术-软件测试Oracle数据库全套教程 |
1.什么是数据库? >> 存储数据的仓库 【文章末尾给大家准备了大量的福利哦】
? 2.常见的数据库有哪些? Oracle>>甲骨文 Mysql>>甲骨文 SQLServer>>微软 Access>>微软 DB2>>IBM 人大金仓>>国产 3.生活中哪些地方使用数据库? 超市商品管理系统>>商品信息 网上购物商城>>商品信息和账户信息 银行管理系统>>账户信息 12306>>账户信息和车次信息 一、数据库发展史 1.1 程序管理阶段 20世纪50年代中前期 特点:数据不能长期保存 1.2 文件系统阶段 20世纪50年代后期-->20世纪60年代中后期 特点:数据缺乏独立性 1.3 数据库系统阶段 20世纪60年代后期 特点:数据实现共享,减少冗余 二、数据库中专业术语 2.1 关系 一个关系就是一张二维表(比如:Excel) 2.2 属性 二维表中的一列叫做属性,或者“字段”或者“列” 2.3 元组 二维表中的一行叫做元组,或者“记录”或者“行” 三、Oracle数据库及连接工具介绍 3.1 Oracle数据库是美国ORACLE公司研发的一款关系型数据库,市场使用率比较高,特点有:安全性高、访问速度快、可以跨平台。主要版本有:Oracle9i、 Oracle10g、Oracle11g、Oracle12c 连接工具介绍: 1)SQL Developer----Oracle 自主研发 2)PL/SQL Developer 3)Navicat 3.2 数据库访问 开始>cmd>DOS>sqlplus>请输入用户名:system ??????????????????????????????输入口令:123456 连接到: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production SQL> 3.3 表空间 表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体。 表空间是用来存储数据库对象(表、视图、索引、列)的容器,表和表空间的关系就像文件和文件夹关系,因为主要存储表,所以称为表空间。 a. 在数据库创建的时候,系统会默认创建表空间(SYSTEM) b. 可以通过SYSTEM表空间,创建其他表空间 c. 一个数据库中,可以有多个表空间,或者只有一个SYSTEM表空间 3.4 数据类型 3.4.1 字符型 char、varchar、varchar2 (1)char(n)表示固定长度的字符串,n表示字符串的最大长度,当实际要保存的长度小于n时,在字符串的右侧使用空格补齐。 (2)varchar(n)表示可变长度的字符串,n表示字符串的最大长度,当实际要保存的长度小于n时,按照实际长度保存。 (3)varchar2(n)是Oracle公司自主研发的数据库类型,和varchar类型类似,也是可变长度的字符串,但是兼容性更好,在企业开发中,常使用varchar2代替varchar。 3.4.2 数值型 number (1)number(n)表示整数,n表示整数的最大位数 例如:number(3) ?100 ?999 (2)number(n,m)表示整数或者小数,n表示有效的数值。m表示小数的最大位数,n-m表示整数的最大位数。 例如:number(5,2) ?123.45 ?599.48 3.4.3 日期型 date 表示日期类型,年月日时分秒 默认日期格式DD-MON月-YY DD---多少号 MON---月份 YY---年份 3.5 SQL语句 结构化查询语句,通过SQL语句,可以对数据库进行操作。 SQL语句分类: (1)数据定义语言DDL(Data Ddefinition Language) 主要是对数据库中的表进行创建、修改、删除 创建---->create 修改---->alter 删除---->drop (2)数据操纵语言DML(Data Manipulation Language) 主要是对表中的数据,进行插入、修改、删除 主要为以上操作 即对数据进行操作的,对应上面所说的查询操作 DQL与DML共同构建了多数初级程序员常用的增删改查操作。而查询是较为特殊的一种 被划分到DQL中。 插入---->insert 修改---->update 删除---->delete (3)TCL 事务控制语句 主要是对数据进行提交和回滚 提交事务---->commit 回滚事务---->rollback TCL_事务控制语言TCL?溯? ? transaction ?事务 ? -- ?DML ? ? ? ? ? ?定义为把一连串的操作作为单个逻辑工作单元处理 ? ? ? ? ? ? ? ?----- ? ? 例如:银行转账 事务特性 ? ACID ? ? 原子性 ? ? atomicity ? ? ? ? ? 所有的数据修改 ?要么一起执行 ?要么不执行 ? ? 一致性 ? ? congsistency ? ? 所有的数据修改同时得到反应 ? ? 隔离性 ? ? isolation ? ? ? ? ? ? 另一个事务需要在此事务结束之后才能执行 ? ? 持久性 ? ? durability ? ? ? ? ? 数据变动是永久的 ?? 使用事务的优点: ? ?他们保证了数据的一致性 ? ?使用事务使得数据修改更为灵活而且修改过程是可控的 ? ?即使在用户处理失败或者系统发生故障时数据仍然是安全的 ? ?事务保证DML(数据操纵语言)语句对于数据的所作的变动是一致的 隐式事务 ? DDL 显式事务 ? DCL ? - commit commit??语句完成显式事务,并且使得所有的修改是永久有效的 rollback? ?语句终止当前事务,使得数据库返回到以前的状态 实例:
在下列情况下,数据修改自动被回滚:? ? ? 1. 系统崩溃或发生故障.? ? ? 2. SQL*Plus 意外终止.? 隔离性:? ? 上锁防止多个用户同时修改数据. ? 上锁可以是隐式或显式的.? ? 上锁的一些基本内容: ? ? ? ? ? ? ?上锁可预防并发事务之间的破坏性的交互. ? ? ? ? ? ? ?上锁是自动施行的,无须用户干预. ? ? ? ? ? ? ?上锁把操作限制到可能的最小粒度.? ? ? ? ? ? ? ?只有在事务结束后,上锁才被解除. ? ? ? ? ? ? ?DML行数据排它锁 ? ? ? ? ? ? ?事务排它锁 (4)数据查询语言DQL(Data Query Language) 主要是对数据进行查询(数据库学习的重点) 查询---->select 3.6 创建表 格式: create table?表名( 列名1 数据类型 primary key, 列名2 数据类型, ...... 列名n 数据类型 ); create table stu( id number(4) primary key, name varchar2(20), sex char(3) ); create table stu2( id number(4) primary key, name varchar2(30) ); 练习1:创建一张表,表名为stu3,表中包含的字段有 id number(4) primary key name varchar2(30) address varchar2(50) create table stu3( id number(4) primary key, name varchar2(30), address varchar2(50) ); 练习2:创建一张表,表名为stu5,表中包含的字段有 id number(4) primary key name varchar (30) sex char(3) address varchar2(50) score number(5.2) stime date create table stu5( id number(4) primary key, --编号 name varchar(30), --姓名 sex char(3), --性别 address varchar2(50), --地址 score number(5,2), --分数 stime date --时间 ); 3.7 查看表结构 格式:desc表名; 案例:查看stu表的表结构 desc stu; ??? 练习3:查看stu5表的表结构 desc stu5; 3.8 插入数据 3.8.1 向全部列插入数据 格式: insert into 表名 values(列值1,列值2,......列值n); 说明: 表中的列和values中的列值是一一对应的关系 验证:?select * from 表名; 案例: 向stu表中,插入2条记录 (1)desc stu; ?3个值 (2) insert into stu values(1001,'rose','女'); insert into stu values(1002,'jack','男'); insert into stu values(1003,'cat','男'); (3)select * from stu; 练习:向stu2表中插入3条记录并验证 (1)desc stu2; ?2个值(ID和name) (2) insert into stu2 values(1004,'tedu'); insert into stu2 values(1005,'from'); insert into stu2 values(1006,'come'); (3)select * from stu2; 练习:向stu3表中插入2条记录并验证 (1)desc stu3; (2) insert into stu3 values(1007,'大王','杭州'); insert into stu3 values(1008,'小王','成都'); (3)select * from stu3; 3.8.2 向指定列插入数据 insert into 表名(列名1,列名2,......列名n) values( 列值1,列值2,......列值n); 说明:表名中的列名必须和values中的列值是一一对应的关系(数量、顺序、类型) 验证:select * from 表名 案例:向stu表中插入2条记录 ID ???NAME ???SEX 109 ??辰东 110 ????????????女 insert into stu(id,name) values(109,'辰东'); insert into stu(id,sex) values(110,'女'); select * from stu; 练习:向stu3表中插入2条记录 ID ????NAME ????ADDRESS 234 ???杨过 ????????null 235 ???null ???????终南山 insert into stu3(id,name) values(234,'杨过'); insert into stu3(id,address) values(235,'终南山'); select * from stu3; 练习:向stu5表中插入数据,具体要求如下: DD-MON月-YY------>'29-3月-19' 1.使用全部列插入方式,插入2条记录 desc stu5; insert into stu5 values(1,'tom','男','北京',100.55,'29-3月-19'); select * from stu5; -----验证 insert into stu5 values(2,'rose','女','杭州',) select * from stu5; -----验证 2.使用指定列插入方式,插入2条记录 ID ????????????NAME ??????????SEX insert into stu5(id,name,sex) values(4,'lucy','女'); ID ????????????SCORE ?????????STIME insert into stu5(id,score,stime) values(5,100,'20-3月-19'); 复习: 1.数据类型 字符型 固定char(3) ?可变varchar(20) ?可变varchar2(30) 数值型 整数number(3) ?整数和小数number(5,2) 日期型 date 年月日时分秒 DD-MON月-YY 2.创建表 create table?表名( 列名1 数据类型 primary key, 列名2 数据类型, ...... 列名n数据类型 ); 3.查看表结构 说明:表结构就是查看表中有几列和每列的数据类型 desc 表名; 4.插入语句 全部列插入数据 insert into 表名 values(列值1,列值2,...列值n); 指定列插入数据 insert into 表名(列名1,列名2,...列名n) values(列值1,列值2,...列值n); 3.9修改(更新)语句 格式:?update 表名 set 列名1=该列新值,列名2=该列新值,...列名n=该列新值 where 条件; 说明: 如果没有where条件,修改表中全部数据。 案例:创建一张表stu6,表中包含的字段有:id number(4) primary key, name varchar2(20) sex char(3) address varchar2(50) score number(5,2) create table stu6( id number(4) primary key, name varchar(20), sex char(3), address varchar2(50), score number(5,2) ); 练习: insert into stu6 values(101,'tom','男','美国',80); insert into stu6 values(102,'lucy','女','法国',90); insert into stu6(id,sex,address,score) values(103,'男','北京','100'); insert into stu6(id,name,sex) values(104,'rose','女'); insert into stu6(id,name,score) values(105,'jack','65'); insert into stu6(id,sex,address) values(106,'男','上海'); select * from stu6; 格式:?update 表名 set 列名1=该列新值,列名2=该列新值,...列名n=该列新值 where 条件; 案例:修改stu6表中,编号(id)是102的,地址(address)修改为中国 update stu6 set address='中国' where id=102; select * from stu6; 练习:修改stu6表中,编号(id)是101的记录,将分数(score)修改为100 答案: update stu6 set score=100 where id=101; select * from stu6; 练习:修改stu6表中,编号(id)是103的记录,将姓名(name)修改为lili 答案: update stu6 set name='lili' where id=103; 练习:修改stu6表中,姓名(name)是rose的记录,将分数(score)修改为80.5 答案: update stu6 set score=80.5 where name='rose'; 练习:修改stu6表中,地址(address)是上海的记录,将姓名(name)修改为xiaoh,分数(score)修改为60.55 答案: update stu6 set name='xiaoh',score=80.5 where address='上海'; 练习:修改stu6表中全部数据,将地址(address)修改为北京---->特殊情况 答案: update stu6 set address='北京' 3.10删除表中的数据 格式: delete from 表名 where 条件; 说明:如果没有where条件,删除全部记录。 案例:删除stu6表中,编号(id)是105的记录。 答案: delete from stu6 where?id=105; select * from stu6; 练习:删除stu6表中,姓名(name)是rose的记录 答案: delete from stu6 where name='rose'; select * from stu6; 练习:删除stu6表中全部数据---->(特殊情况) 答案: delete from stu6; select * from stu6; 3.11删除表 格式:drop table 表名; 案例:删除stu6表 答案: drop table stu6; 3.12查询语句(重点)
3.12.1查询全部列数据 格式:select * from 表名; 说明: *:表示全部列 案例:查询emp、dept、salgrade表中的全部数据 emp---->员工表 dept---->部门表 salgrade---->工资等级表 答案: select * from emp; select * from dept; select * from salgrade; 3.12.2查询指定列数据 格式:select 列名1,列名2,......列名n from 表名; 案例:查询emp表中,员工编号(empno),员工姓名(ename),员工职位(job),工资(sal) select empno,ename,job,sal from emp; 练习:查询emp表中,员工编号(empno),职位(job),入职时间(hiredate),部门编号(deptno) 答案: select?empno,job,hiredate,deptno from?emp; 练习:查询dept表中,部门编号(deptno),部门名称(dname),部门地址(loc) select deptno,dname,loc from dept; 3.12.3 给列起别名 格式:select?列名1 别名1,列名2 别名2,...列名n 别名n from 表名; 案例:查询emp表中,员工编号(empno),员工姓名(ename),职位(job),领导编号(mgr),奖金(comm) 答案: select empno 员工编号,ename 员工姓名,job 职位,mgr 领导编号,comm 奖金 from emp; 练习:查询salgrade表中,工资等级(grade),最低工资(losal),最高工资(hisal) 答案: select grade 工资等级,losal 最低工资,hisal 最高工资 from salgrade; 练习:查询dept表中,部门名称(dname),部门地址(loc) 答案: select dname 部门名称,loc 部门地址 from dept; 3.12.4 去掉重复的列值(去重) 格式:select distinct 列名 from 表名; 案例:去掉部门编号(deptno)重复的列值,在emp表中 select distinct deptno from emp; 练习:查询emp表中,职位(job)的种类(笔试题) 答案: select distinct job from emp; 练习答案: create table stu5( id number(4) primary key, --编号 name varchar(30), --姓名 sex char(3), --性别 address varchar2(50), --地址 score number(5,2), --分数 stime date --时间 ); create table stu01( sno number(8) primary key, sname varchar2(20), sex char(3), age number(3), etime date, address varchar2(50) ); 复习: 1.更新(修改)语句 格式:?update 表名 set 列名1=该列新值,列名2=该列新值,...列名n=该列新值 where 条件; 2.删除表中的数据 格式:delete from 表名 where 条件; 3.删除表 格式:drop table 表名; 4.查询全部列数据 格式:select * from 表名; 5.查询指定列数据 格式:select 列名1,列名2,......列名n from 表名; 6.给列名起别名 格式:select 列名1 别名1,列名2 别名2,...列名n 别名n from 表名; 7.去掉重复的列值(去重) 格式:select distinct?列名 from 表名; 3.12.5 排序(order by) 格式:select */列名 from 表名 order by 列名1 asc/desc,列名2 asc/desc; 说明:asc---->升序排列 ????desc---->降序排列 案例:查询emp表中,员工编号(empno),员工姓名(ename),职位(job),工资(sal),根据员工编号(empno)降序排列。 答案: select?empno,ename,job,sal from?emp order by?empno desc; 练习: 查询emp 表中,编号(empno),姓名(ename),职位(job),入职时间(hiredate),工资(sal),根据工资升序排列。 答案: select empno,ename,job,hiredate,sal from emp order by sal asc; 练习: 查询emp表中,编号(empno),姓名(ename),职位(job),部门编号(deptno),首先根据部门编号升序排列,如果部门编号一致,根据员工编号降序排列。 答案: select empno,ename,job,deptno from emp order by deptno asc,empno desc; 练习: 查询emp表中,编号(empno),姓名(ename),职位(job),工资(sal),首先根据工资升序排序,如果工资一致(相同),再次根据编号(empno)降序排列。 答案: select empno,ename,job,sal from emp order by sal asc,empno desc; 注意:order by 永远放在格式的最后面。 ?重点:学习资料学习当然离不开资料,这里当然也给你们准备了600G的学习资料需要的私我关键字【000】免费获取哦 注意关键字是:000 项目实战: 大型电商平台: 全套软件测试自动化测试教学视频 ? 300G教程资料下载【视频教程+PPT+项目源码】 ? 全套软件测试自动化测试大厂面经 ? python自动化测试++全套模板+性能测试 ? ? 听说关注我并三连的铁汁都已经升职加薪暴富了哦!!!! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 4:55:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |