oracle基础(1)
Oracle
why?
1)保存数据
2)操作数据
3)在项目开发中,数据库必不可少的。
数据库在项目中的后台。
项目的前台:界面----注册界面,登录界面
项目的后台:操作数据---保存数据,查询数据
what?数据库:保存数据的仓库,
持久化保存数据。
重点:操作数据,增删改查CRUD
io/file:保存数据的格式不规范,
解析数据的方式不统一
xml:轻量级保存数据
保存数据的格式规范
解析数据的方式统一
how?学习简单的SQL语句
使用SQL语句对数据进行增删改查的操作。
使用SQL语句创建表的操作。
SQL语句
查询所有学生的名字?表(字段)
字段是该表保存的信息
学生表(学号,姓名,年龄,性别,班级,专业。。。)
select name from student;
insert,delete,update,select
大型数据库:Oracle,DB2。。。,银行系统
保存数据量大,安全性高。需要付费
中型数据库:Sql Server,MySQL。。。网站开发
保存数据量比较大,安全性比较高。
免费的。
小型数据库:Sqlite,access。。。嵌入式设备
保存数据量比较小,安全性低。
就是一个文件。
免费的。
学生选课系统:
学生表(学号,姓名,性别。。。。)
课程表(课程号,课程名,简介。。。)
老师表(编号,姓名,性别,职称。。。)
学生选了哪门课程
选课表(学生学号,课程编号,)
授课表(课程号,老师编号)
关系:一对一,一对多,多对多
层次模型数据库:相当于树
网状模型数据库:相当于蜘蛛网
关系型数据库:
1)表,二元关系,二维关系
2)表与表之间的关系
数据库:DB保存数据
关系型数据库:RDB
关系型数据库管理系统:RDBMS操作数据
一行代表一个记录,一条数据
PK:primary key主键,用来唯一标识表中的数据。
1)主键的值不能重复
2)主键的值不能为空
FK:foreign key外键,用来维护表与表之间的关系。
一般情况下,把一张表的主键作为另一张表的外键。外键的值需要依赖那个主键的值。
1)外键的值可以为空
2)如果外键的值存在,它的值必须存在依赖的那张表中。
数据库中的对象:
1)表:数据库的基本存储单位
2)视图:是一张续表,实质就是一个查询语句。
从一张或者多张表查询出来的数据。
3)序列:是Oracle特有的。
主要用来生成主键的值。
ID:1 2 3 4 5 6
起始值:20,步长:2
20 22 24 26...
4)索引:主要用来提高检索效率
5)同义词:给对象取别名
6)存储单元:PL/SQL
将一条SQL或多条SQL通过循环语句,判断语句等连接起来的。
数据完整性约束:规范,规定
数据库----软件
1)实体性完整性约束:针对主键(主键非空唯一)
2)参照性完整性约束:针对外键
3)列级完整性约束:字段的值必须定义的数据类型。
4)自定义完整性约束(选择性完整性约束):
规定字段取值范围。
gender check('男','女')
Oracle:甲骨文
是全球一个大型数据库厂商
是全球第二大软件厂商
数据字典表:数据库自己创建自己维护
用户表:用户创建用户维护
SQL:结构化的查询语言。所有的数据库都支持SQL
第四代语言。
只关心做什么,不关心怎么做。
select name from user;
SQL*Plus:是一个工具,可以执行SQL或者PL/SQL的命令。
还可以显示执行后的结果。
sqlplus "/as sysdba"
sqlplus system/安装数据库密码
sqlplus 用户名/密码
sqlplus briup/oracle 以briup用户登录
conn 用户名/密码 切换用户
show user
数据库一旦安装成功就会有两个管理员用户:
Sys:数据库系统的管理员
相当于皇帝
System:数据库管理员
相当于丞相
这两个用户的权限都是非常高。
建议:不要在该用户下操作。
新建用户,在新建用户做操作的。
6.SQL*PLUS的编辑命令
l/list:显示buffer中的命令
/ :执行buffer中的命令
select last_names,salary from s_emp;
c:替换 c/旧串/新串
先定位 1
后替换 c/names/name
clear buffer:清空缓冲区
PL/SQL:存储单元
conn system/oracle
create user briup identified by briup;
创建用户名为briup,密码也为briup
grant resource,connect to briup
给用户briup授权
conn briup/briup
切换到briup用户
alter session set nls_date_language=english;
修改语言环境为英语
start g:\oracle.sql
执行脚本语言
select count(*) from user_tables;
select count(*) from s_emp;
查询当前用户下素有表的名字
select table_name from user_tables;
查询语句:select
s_emp 员工表
s_dept 部门表
s_region 注册区域表
s_customer 顾客表
查看表结构:desc 表明
desc s_emp;
Buffer:缓冲区,
是用来保存最近执行的一条SQL语句
一个认知:认识Oracle
二个概念:数据库
关系型数据库管理系统
三个名次:SQL,SQL*PLUS,PL/SQL
四种约束:
五种分类:针对SQL语句
数据查询:select
DML:insert,delete,update
DDL:create,alter,drop,rename,truncate
DCL:grant,revoke
事务控制语句:commit,rollback,savepoint
六种对象:数据库对象
第一章:
1.如何写SQL语句?
a)查询部门的所有信息?
select * from s_dept;
b)查看员工的last_name和工资?
select last_name,salary from s_emp;
c)查询部门的名字?
select distinct name from s_dept;
总结select语句的格式:
select [distinct] * | 字段1,字段2,字段3...
from 表名s;
*代表表中所有的字段,项目中不建议写*,效率低
1)先查询表中所有的字段名
2)再根据字段名去查询数据。
select后加需要查询的字段
from后加表名
distinct消除重复的数据
2.使用算术运算+-*/
a)针对数字类型number(+-*/)
1)查询所有员工的年薪
select last_name,12*salary from s_emp;
2)查询所有的员工月薪加上100后的年薪
select last_name,(salary+100)*12 from s_emp;
3) 查询所有员工的年薪(包含提成)
提成:commission_pct
select last_name,(salary+nvl(commission_pct,0))*12 s from s_emp;
b)这对日期类型date(+-)单位是天
select start_date,start_date+1 from s_emp;
3.给字段取别名
a)在需要取别名字段后空格直接加上别名
select last_name name,(salary+100)*12 sal from s_emp;
b)使用as关键字
select last_name,(salary+100)*12 as sal from s_emp;
c)使用"" ,可以区分大小写和特殊字符
select last_name,(salary+100)*12 "Sal" from s_emp;
4.处理空值
什么时候处理空值:当字段有空值的情况。
并且对表达式的结果有影响。
处理空值的函数:nvl
nvl(字段名,默认值)
如果字段为null,nvl处理之后的结果为默认值
如果字段不为null,nvl处理之后的结果为字段本事的值
nvl(commission_pct,0)
5.字段的拼接,将多个字符串拼接成一个字符串
||
查询所有员工的全名(last_name,first_name)
select last_name||','||first_name name from s_emp;
注意:Oracle中字符串用''
查询所有员工的全名 in 哪一个部门工作
如:zhangsan in 32 dept
select last_name ||','||first_name|| ' in '|| dept_id ||' dept work ' info from s_emp;
6.

浙公网安备 33010602011771号