day01

一、数据库

数据库技术到目前共经历以下几个阶段:

  • 人工管理阶段
  • 文件系统阶段
  • 数据库系统阶段

人工管理阶段

​ 特点:

  1. 数据不保存
  2. 没有对数据进行管理的软件系统
  3. 没有文件的概念
  4. 一组数据应对于一个程序,数据是面向应用的

文件系统阶段

特点:

  1. 数据需要长期保存在外存上供反复使用

  2. 程序直接有一定的独立性

  3. 文件的形式已经多样化

  4. 数据的存取基本上以记录为单位

数据库系统阶段

特点:

  1. 采用复杂的结构化的数据模型
  2. 较高的数据独立性
  3. 最低的冗余性
  4. 数据控制功能

1.1 数据库特点

  1. 实现数据共享
  2. 减少数据的冗余度
  3. 数据的独立性
  4. 数据实现集中控制
  5. 数据一致性和可维护型性,以确保数据的安全性和可靠性

二、oracle环境

$cls // 清楚屏幕

conn briup/briup // 切换连接

sqlpuls system/system // 连接到数据库 ,即登录

show user // 查看当前登录的用户

exit // 退出sql

create user test1 identified by test1; //创建用户test1,设置密码test1

grant connect,resource to test1; // //把角色connect和resource授权给test1账号

drop user test1; // 删除用户

@ 路径 // 导入

在这里插入图片描述
在这里插入图片描述

三、数据库对象

常见的数据库对象:

  • 用户 --> user
  • 表 --> table
  • 视图 --> view
  • 索引 --> index
  • 触发器 --> trigger
  • 存储过程 --> procedure
  • 同义词 --> synonym
  • 序列 --> sequence

四、sql

  • DQL(Data Quey Language),数据库查询
    用于检索数据库中的数据,主要是SELECT语句

  • DML(Data Mainpulation Language),数据操作语言
    用于改变数据库中的数据,主要是inster,update,delete语句

  • DDL(Data Define Language),数据定义语言
    用来建立、修改、删除数据库对象,主要是createalterdroptruncate语句

  • TCL(Transaction Control Language),事务控制语言
    用于维护数据的一致性,主要是commit,rollback,savepoint语句

  • DCL(Data Control Language),数据控制功能
    用于执行权限授予和权限收回操作,主要是grantrevoke语句

这是重点要记住!!!

sql、sqlpius、pl、sql的区别:

sql:结构化的查询语句,操作oracle数据库的语言
sqlplus:操作oracle软件自带的可以输入sql,且将sql执行结果
pl/sql:程序化的sql语句,在sql语句的基础上加入一定的逻辑操作,如:if for

5.1 select

查看s_dept表中所有的记录

select *
from s_dept; 

例如,查看s_dept表中所有记录的指定三个字段:id,name,region_id

select id,name,region_id
from s_dept;

5.2 运算

例如,查看每个员工的员工id,名字和年薪

select id,name,(salary*12) as sal
from s_emp;

[as]可以省略

5.3 别名

例如,查看员工的员工id,名字和年薪,年薪列名为annual

select id,name,salary*12 as annual
from s_emp;

5.4 拼接

例如,查看员工的全名

select last_name || first_name
from s_emp;

5.5 nvl

使用nvl函数可以将null进行替换

例如,查看所有员工的员工id,名字和提成,如果提成为空,显示成0

select id,last_name,nvl(commission_pct,0) commission_pct
from s_emp;

5.6 distinct

distinct:去重复数据

如果 distinct 关键词后面如果出现多列,表示多列联合去重,即多列的值都相同的时候才会认为是重复的记录

例如,查看所有员工的职位名称和部门id,同职位同部门的只显示一次

select distinct title,dept_id
from s_emp; 

5.7 format

使用 format 可以将查询结果显示的宽度进行调整。

col last_name format a15;

清除设置的格式:

clear col

5.8 排序

例如,查看员工的id,名字和薪资,按照薪资的降序排序显示,工资相同就按名字升序排

select id,last_name,salary
from s_emp
order by salary desc,last_name asc;

asc可以不写,默认就是asc
desc:降序
asc:升序

5.9 条件查询

模糊查询:

  • like ,模糊查询,在值不精确的时候使用
  1. %,通配0到多个字符
  2. -,通配一个字符
  3. \,转义字符,需要使用escape关键字指定,转义字符只能转义后面的一个字符

例如:查看员工名字以C字母开头的员工id,工资

select id,last_name,salary
from s_emp where last_name like 'C%'; 123
  • between and操作符,表示在俩个值之间
    例如:查询工资大于1000小于1500员工的信息
select id,last_name,salary
from s_emp
where salary between 1000 and 1500;
  • in() ,表示值在一个指定的列表中
    例如,查看员工号1,3,5,7,9员工的工资
select id,last_name,salary
from s_emp
where id in (1,3,5,7,9);
  • is null,判断值为null的时候使用,null值的判断不能使用等号
    例如:查询commission_pct为null的员工的信息?
select id,last_name,salary,commission_pct
from s_emp
where commission_pct is null;
  • andor ,逻辑操作符,当条件有多个的时候可以使用

and的优先级比or

例如,查看员工部门id为41且职位名称为Stock Clerk(存库管理员)的员工id和名字

select id,last_name,dept_id,title
from s_emp 
where dept_id = 41 and title = 'Stock Clerk';

例如,查看员工部门为41 或者 44号部门,且工资大于1000的员工id和名字

select id,last_name,dept_id,title
from s_emp 
where salary > 1000 and (dept_id = 41 or dept_id = 44 );

例如,查看员工部门为41且工资大于1000,或者44号部门的员工id和名字

select id,last_name,dept_id,title
from s_emp 
where salary > 1000 and dept_id = 41 ordept_id = 44;

注意,以上两个sql语句,执行的结果是不一样的,它们的区别就是第一个sql在条件中多了个小括号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值