2021-8-3 数据库课堂笔记Day01

1 Oracle

1.1 Oracle 的体系结构

1 数据库

Oracle 数据库是数据的物理存储,其中有数据文件 ORA 或 bdf

Oracle 数据库是一个抽象总称,类似于面向对象中的类

2 实例

实例由一系列的后台进程和内存结构组成, 一个数据库可以有多个实例, 类似于类的对象

3 用户

建立在实例下, 不同的实例可以创建相同名字的用户

4 表空间

是 oracle 对物理数据库上相关数据的逻辑映射,一个数据库在逻辑上可以被划分为一个或者若干个表空间,每一个表空间包含了在逻辑上相关的一组结构。每一个数据库实例至少有一个表空间(system表空间)。一个表空间可有多个用户

5 数据文件(dbf、ora)

数据文件是数据库的物理存储单位。数据库的数据存储在一个或者多个数据文件中,由一个或多个数据文件组成表空间,一个数据文件只能属于一个表空间,一旦数据文件被加入到某一个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除期所属的表空间

表的数据,是由用户放入某一个表空间的,而这个表空间会随机的把这些数据放到一个或者多个数据文件中。

oracle 数由用户和表空间对数据进行管理和存放的。表不是由表空间查询的,而是由用户去查询。

2 Oracle12c创建示例数据库

在12c前,每个Oracle在安装时,如果是指定了安装的示例数据库,则会创建一个默认用户scott/tiger.

2.1 创建用户

先使用超级管理员登录PLSQL

方式一:使用命令(要求掌握)

在新建中打开命令窗口,输入代码

-- 创建scott用户
 create user scott identified by tiger;
 --为scoot赋予权限
  Grant connect,RESOURCE,UNLIMITED TABLESPACE TO scott;
  --设置用户使用的表空间
  ALTER USER scott default tablespace users;
  --设置用户的临时表空间
  Alter user scott Temporary tablespace  temp;

方式二:可视化操作

在user文件夹下新建

创建用户

方式三:网页可视化操作
在网站https://localhost:5500/em/login中登录

在”安全“界面中新建用户

2.2 表的相关操作

2.2.1 创建表的语句:

​ 前提:该用户必须具备crate table的权限

​ 创建表必须指定 表名 列名 数据类型 大小
列名间用逗号分割

Oracle 数据类型

数据类型描述
varchar2(size)可变长字符串
char(size)定长字符串
number(p,n)可变长数值类型
date日期型
long可变长字符数据,最大可达2G
clob字符数据,最大可达4G
Bob二进制数据,最大可达4G
2.2.2 修改表
  • 追加新列(追加的新列一定位于最后)

  • 为新列定义默认值

-- 新增一列并且定义默认值
alter table dept add(dnum number(2) default 10)
  • 修改现有列
-- 可修改数据类型 尺寸 默认值
alter table dept modify (dnum number(3) default 100)
  • 删除一个列
alter table dept drop COLUMN dnum;
  • 重命名一个列
alter table dept rename COLUMN loc to location;
  • 删除表
-- 删除表
drop table department;
  • 清空表中的数据
-- 清空表
delete from dept;
truncate table dept;

delete 删除表中的数据 删除的数据在未提交之前 可回滚 不释放占有的存储空间和资源

truncate 清空数据 删除表中的所有数据,删除之后 不可回滚 释放占有的存储空间和资源

  • 重命名表
-- 重命名表
rename dept to department;

2.3 创建表的示例数据库和初始化表

初始化表时可以直接进入表中编辑数据,也可用语句进行数据插入,数据插入时,输入的数据依次放入表创建的列中

语句格式:

INSERT INTO tablename VALUES (参数列表)

3 SQL SELECT

3.1 SQL 概述

SQL 是一门结构化查询语言

SQL 是最重要的关系型数据库操作语言,是所有的关系型数据库管理系统的标准语言

关系型数据库:oracle mysql sqlserver

nosql:redis mongdb Hbase

SQL 语言是一种非过程化语言,只需要提出做什么,不需要指明怎么做

SQL 语言作用:

  • 对数据库的数据进行增删查改操作(CRUD)
  • 对数据库的对象进行创建、修改、删除操作
  • 给用户和用户关联角色赋权或取消权限
  • 事务控制

3.2 SQL 分类

DML:数据操纵语言

DDL:数据定义语言

DCL:数据控制语言

3.2.1 DML

用于查询与修改数据记录,包括:

  • INSERT INTO 添加数据到数据库中
  • UPDATE 更新数据库中的数据
  • DELETE 删除数据库中的数据
  • SELECT 查询数据库中的数据
3.2.2 DDL

用于定义数据库的结构,如创建、修改或删除数据库对象,包括:

  • CREATE TABLE 创建数据库表
  • ALTER TABLE :更改表结构 添加 删除 修改列
  • DROP TABLE 删除表
  • CRATE INDEX :在表上建立索引
  • DROP INDEX 删除索引
  • CREATE VIEW 创建试图
  • DROP VIEW 删除试图
3.2.3 DCL

用于控制数据库的访问,包括:

  • GRANT 授予权限
  • REVOKE 撤销、回收权限
  • COMMIT 提交事务
  • Rollback 回滚事务
  • SAVEPOINT 设置保存点
  • lock 对数据库的特定部分进行锁定

3.3 SQL 语句的书写规范

1.使用大小写规范提供词义的识别能力

  • 在名称中仅使用字母、数字、下划线
  • 列名、参数、变量等标量小写
  • 模式对象名首字母大写:表、试图、存储过程、函数、触发器
  • 保留关键字大写

2.使用空格提供良好的语言标记区分

  • 等号两边要使用空格
  • 逗号后面要使用空格

3.使用缩进提高语句的逻辑层次表达能力

4.使用垂直空白提供关键字和参数的区分能力

5.注释

  • 单行注释 –
  • 多行注释 /* */
  • mysql中的注释 #

4 基本的 SELECT 语句

SELECT * | { [ditinct] columnname|expression [alias],..} FROM tablename;

SELECT 标识选择的列

FROM 标识从哪个表查询

4.1 选择全部列

SELECT * FROM tablename;--* 表示查询所有的列

4.2 选择特定列

SELECT 列名 FROM tablename;

注意:

  • SQL语言大小写不敏感
  • SQL可以写在一行或者多行
  • 关键字不能被缩写也不能分行
  • 各个子句一般要分行写
  • 使用缩进来提供代码的可读性

4.3 运算符

4.3.1 数学运算符:+ - * /

直接在 SELECT 语句中对要操作的数据或列进行运算,结果会返回一个新的数据或列

4.4 操作符的优先级

  • 先乘除后加减
  • 同一优先级从左往右依次运算
  • 括号优先运算

4.5 定义空值

  • 空值为 null
  • 空值是无效的,如果一个可选列没有指定值,或值是未知的,就会用 null 值保存
  • 空值不是空格也不是0,无法和 0 比较
4.5.1 空值在数学运算中的使用

包含空值的数学表达式的值为空值

4.6 列的别名

定义方式:

  • 跟在列名之后,两者之间保留一个空格
  • 在别名和列名之间加入关键字 AS
  • 别名可以使用双引号,以便在别名中包含空格或特殊的字符 并区分大小写
--查询所有的员工的姓名  职位 薪资 和奖金  以及年收入(薪资 * 12 ) + 奖金
SELECT ename AS name, job,sal salary,comm, sal *12  AS "year salary" FROM emp;

4.7 链接符 ||

--查询所有员工的姓名 职位 薪资 作为员工的个人基本信息 拼接在一起
SELECT ename || '-' ||job || '-' ||sal AS "Employee info" FROM emp;

4.8 字符串

  • 字符串可以是SELECT语句中的一个字符 数字 日期
  • 日期 和字符只能出现在单引号中
  • 每当返回一行时,字符串被输出一次

4.9 重复行

--查询EMP表中所有雇员的部门编号   distinct
SELECT distinct deptno FROM emp;

5 SQL 和 SQL plus

SQL:一种语言 控制数据库中的数据和结构的定义

SQL plus:一种环境 提供了SQL语句执行的一个环境

6 过滤和排序

6.1 过滤

关键字:WHERE

格式:

-- 查询 30号部门的所有的员工信息
/*
SELECT * |column FROM tablename
[where conditions];
*/
SELECT * FROM emp WHERE deptno = 30;

6.2 字符和日期

字符和日期 要包含在单引号中

字符大小写敏感 日期格式敏感

默认的日期格式 :DD-MON月-YY

SQL中在用户界面可以自定义日期、时间、数字格式

6.3 比较运算

符号意义
=等于
>大于
<小于
>=大于等于
<=小于等于
<>、!=不等于

6.4 其他比较运算符

符号意义
between……and介于两个值之间
in(值1,值2,…)等于其中的任意一个
like模糊查询
is null/is not null值为空/值不为空

like 的使用会用到通配符 %(代表零个或多个字符)、_(代表一个字符)

6.5 逻辑运算

符号意义
AND逻辑与
OR逻辑或
NOT取反

没有短路与和短路或

运算符优先级:

算术运算符 < 连接符 < 比较符 < is null、like、in< BETWEEN AND < NOT < AND < OR

可以通过括号改变优先级

7 排序

ORDER BY 子句

ASC : 升序 从小到大

DESC : 降序 从大到小

ORDER BY 子句在 SELECT 语句结尾,且默认为升序排序

7.1 单列排序

格式:

SELECT *|列名  FROM tablename ORDER BY 列名

7.2 多列排序

格式:

SELECT *|列名  FROM tablename ORDER BY 列名1,列名2,……

列名可以使用别名

查询:过滤查询 排序

8 SQL 函数

函数就是 java 中的方法,函数有输入有输出,输入就是参数,输出就是结果,输入可以有多个,输出只有一个

SQL 函数分为 单行函数和多行函数

8.1 单行函数

只能一对一进行变化,每行返回一个结果 可以转换数据类型,在使用时可以嵌套. 参数可以是一列或一个值

单行函数可分:

  • 字符函数
  • 数值函数
  • 日期函数
  • 转换函数
  • 通用函数
8.1.1 字符函数(作用于Java相似)

大小写控制函数:LOWER UPPER INITCAP(首字母大写)

字符控制函数:CONCAT SUNSTR LENGTH TRIM

dual 表: Oracle 提供的一张虚拟表,不存在但可以使用,主要用于测试函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于北邮-2021-软件工程-期末复习.rar,其实际内容应该包含了北邮软件工程课程的期末复习相关资料。这些资料可能包括了课堂讲义、考试重点、习题解答、历年试卷等内容,有助于帮助学生复习和准备考试。此外,该压缩文件可能也包含了一些软件工程方面的技术文献、著作或工具等资源,供学生自行查阅和学习。 软件工程是计算机科学的一个重要分支,旨在研究关于软件的开发、管理和维护等方面的最佳实践和方法。在学习软件工程的过程中,需要不断运用各种工具和技术,例如需求分析、设计模式、测试驱动开发、代码版本管理等。因此,掌握软件工程技能对于未来从事软件开发的工程师和研究者来说都是非常重要的。 总之,北邮-2021-软件工程-期末复习.rar是一个包含了软件工程课程复习相关资料的压缩文件,对于学习软件工程的同学们来说,它是一份宝贵的资源。在复习过程中,我们需要认真审核其中的内容,结合课堂实际情况,制定个人化的复习计划,不断加强基础知识的掌握,并结合实际应用,提高自己的软件开发能力。 ### 回答2: 北邮-2021-软件工程-期末复习.rar文件是北邮2021年软件工程课程的期末复习资料压缩包。其中包含了软件工程课程相关的学习资料和复习材料。在这个压缩包中,可能包括课件、PPT、习题和答案、教材、参考书籍、课程大纲等等。这些材料都是为了帮助学生进行软件工程课程的有效学习和备考复习所准备的。 该压缩包的目的是为学生提供一个集中、整理好的资源库,方便学生在期末复习阶段能够迅速找到所需资料。通过使用该压缩包,学生可以更加高效地进行软件工程知识的巩固和回顾,更好地理解和掌握课程中的关键概念和技术。 对于学生而言,打开这个压缩包后,可以根据自己的需要选择具体的学习材料进行查阅和使用。同时,也可以根据课程大纲或者考试的重点,有针对性地进行复习,并通过做习题巩固知识。 总之,北邮-2021-软件工程-期末复习.rar是一份为学生提供软件工程课程复习资料的压缩包,通过使用其中的学习资料,学生可以更加高效地进行软件工程知识的复习和巩固,为期末考试做好准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值