数据库-Oracle

0 前言

       Oracle是一种流行的关系型数据库管理系统,它具有高性能、高可用、高安全等特点。Oracle可以用于存储和管理各种类型的数据,例如文本、数字、日期、图片等。Oracle支持多种操作系统和编程语言,可以与各种应用程序进行交互。

Oracle中的基础语法、函数、多表是指Oracle中的基本概念、原理和操作,它们是学习和使用Oracle的基础和前提。Oracle中的基础语法包括了数据类型、变量、运算符、表达式等,它们是编写SQL语句的基本元素。Oracle中的函数包括了单行函数、多行函数等,它们是对数据进行计算和处理的工具。Oracle中的多表包括了内连接、外连接等,它们是对多个数据表中的数据进行连接和查询的技术。

本文将介绍Oracle中基础语法、函数、多表的介绍,包括了它们的概念、特点、语法和示例,希望能够对读者有所帮助。

1 Oracle基本语句

--创建表空间
create tablespace kb23
datafile '/data/oracle/kb23_space.dbf'
size 100m
autoextend on
next 10m
--删除表空间
drop tablespace kb23
--解锁scott用户
alter user scott account unlock
alter user scott identified by tiger
--创建用户
create user zlt
identified by 123456
default tablespace kb23
--删除用户
drop user zlt
--用户授权
--connect连接权限
--resource资源权限
--dba管理员权限
grant connect,resource,dba to zlt
--取消用户授权
revoke connect,resource,dba from zlt
--登录zlt用户
--测试创建表
create table t_test(
	pid number,
	pname varchar2(10)
)
--增删改查
INSERT INTO 表名 [(字段名列表)] VALUES (值列表); commit;
DELETE FROM 表名 [WHERE条件];commit;
UPDATE 表名 SET sex = ‘女’;commit;
SELECT * FROM 表名

2 Oracle函数

2.1 字符函数

--dual为虚表,oralce必须借助dual才能进行测试字符串函数
--字符串连接,oralce中只能存放2个参数,mysql中可以多个参数
select concat('ab','bc') from dual;
--效果等价于字符串连接,且能连接多个参数
select 'ab'||'bc' from dual;
--首字母大写
select initcap('aaa') from dual;
--所有字母小写
select lower('aAa') from dual;
--所有字母大写
select upper('aAa') from dual;
--去除首尾侧空格
select trim('  qwer ') from dual;
--截取字符串
select substr('mynameisjamegreen',3,4) from dual;
--替换字符串
select replace('thisisus','us','china') from dual;

2.2 数值函数

--求绝对值
select abs(-2) from dual;
--向上取整
select ceil(2.1) from dual;
--向下取整
select floor(2.8) from dual;
--四舍五入
select round(2.5) from dual;

2.3 日期函数

--获取当前完整时间
select sysdate from dual;
--获取年
select to_char(sysdate,'yyyy') from dual;
--获取月
select to_char(sysdate,'MM') from dual;
--获取日
select to_char(sysdate,'dd') from dual;

2.4 转换函数

--数字转字符串
select to_char(1024) from dual;
--字符串转数字
select to_number('100') from dual;
--输出字符串和数字进行对比(字符串靠左显示,数字靠右显示)
select '1024',1024 from dual;
--日期转字符串
select to_char(sysdate,'yyyy') from dual;
--字符串转日期
select to_date('2012-04-15') from dual;

3 Oracle多表

3.1 物理主外键

创建表

--用户表
create table T_USER
(
  id   NUMBER(20),
  name VARCHAR2(10),
  rid  VARCHAR2(10)
)
--角色表
create table T_ROLE
(
  id   NUMBER(20),
  name VARCHAR2(10),
  pid  VARCHAR2(10)
)
--权限表
create table T_PERMISSION
(
  id   NUMBER(20),
  name VARCHAR2(10)
)

设置主外键关联

查询

SELECT
	u.NAME,
	r.NAME,
	p.NAME 
FROM
	t_user u,
	t_role r,
	t_permission p 
WHERE
	u.rid = r.rid 
	AND r.pid = p.id

3.2 中间表关联

创建表

--用户表
create table T_USER
(
  id   NUMBER(20),
  name VARCHAR2(10)
)
--角色表
create table T_ROLE
(
  id   NUMBER(20),
  name VARCHAR2(10)
)
--权限表
create table T_PERMISSION
(
  id   NUMBER(20),
  name VARCHAR2(10)
)

创建中间表

--用户_角色表
create table T_U_R
(
  id   NUMBER(20),
  u_id NUMBER(20),
  r_id NUMBER(20),
)
--角色_权限表
create table T_R_P
(
  id   NUMBER(20),
  r_id NUMBER(20),
  p_id NUMBER(20),
)

查询

SELECT
	u.NAME,
	r.rname,
	p.pname 
FROM
	t_user u,
	t_role r,
	t_permission p,
	t_u_r ur,
	t_r_p rp 
WHERE
	u.id = ur.u_id 
	AND ur.r_id = r.id 
	AND r.id = rp.r_id 
	AND rp.p_id = p.id
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值