Oracle数据库基础

Oracle(关系型数据库)的启动
启动顺序:先启动 OrcaleOraDb11g_homeTNSListener 的监听系统,在启动OrcalServicORCL服务

Oracle的登陆
超级管理员:sys;默认密码:sys;连接为:SYSDBA


管理员:system;默认密码:system;连接为:SYSDBA


表空间:
Oracle中的数据逻辑上存储于表空间,在物理上存储于表空间的数据文件

在Oracle中用户的所有数据都存放在表空间的,多个用户可以共用一个表空间,也可以指定一个用户只用某一个表空间

创建用户时必须为其指定表空间,否则指定为users表空间

创建表空间
create tablespace 表空间名

datafile '数据文件存放的位置'

size 数据文件的大小


创建用户(管理员身份)
create user to 用户名

identified by 密码

default tablespace 分配空间的名字
给用户授权(管理员身份)
grant connect to 用户名;--创建权限

grant resource to 用户名;--登陆权限

grant connect,resource to 用户名;
移除权限:
revoke connect from 用户名;--创建权限

revoke resource from 用户名;--登陆权限

revoke resource,connect from 用户名;

基本的sql语句复习(适用于Oracle)
增加
1.insert into 表名(列名1,列名2,列名3)values(值1,值2,值3);

2.insert into 表名(列名1,列名2,列名3)

select (值1,值2,值3)union

select (值1,值2,值3)union

select (值1,值2,值3)

删除
删除所有数据:delete from 表名;

根据条件删除数据:delete from 表名 where sid = 1;

修改
update 表名 set 字段1 = 值1,字段2 = 值2 where id=1;

查询
查询所有:select * from 表名;// * 表示所有字段/列;

模糊查询:select * from 表名 where 列名 like '%关键字%';

SQL语言的构成
sq(Structured Query Language)是结构化查询语言。
结构化查询语言包含以下6个部分:
数据查询语言/数据检索语句(DQL):

常用关键字: select(查询/选择),where(分组前筛选),order by(排序),group by(分组) 和having(分组后筛选)。

数据操作语言(DML):该语句包括动词 insert(添加)、update (修改)和 delete(删除)。

事务控制语言(TCL):该语句能确保被 DML 语句影响的表的所有行及时得以更新。

包括 commit(提交)命令、save point(保存)命令、rollback(回滚)命令。

数据控制语言(DCL):它的语句通过 grant(授权) 或 revoke(撤销权限) 实现权限控制,

数据定义语言(DDL):其语句包括动词 cteate(创建数据表和数据库),alert(修改表结构) 和 drop(删除表)。在数据库中创建新表(create table),修改(alert trable),删除表(drop table)。

指针控制语言(CCL):它的语句,像 declare cursor( ),fetch info 和 update where 用于对一个或多个表单独行的操作。

Oracle支持的数据类型
字符型
char:固变,长度范围“1--2000字节;

varchar2:可变,长度范围:1-4000字节;

long可变,长度范围:2GB;

数值
number:整型和非整型都是number,number可指定精确度,最高精确到38位。

整型表示:sid number(5);//5代表总位数

非整型表示:sid number(5,3);5代表总位数,3表示小数位的最大长度是3

例:5-3=2。 99.999

日期数据类型.
date:它可以精确到秒,比如:1小时1分1秒。

timestamp:可以把秒值精确到小数点后6位,比如:1小时1分1.111111秒。

比较操作符.
比较操作符用于比较两个表达式的值。

比较操作符包括 =、!=、<、>、<=、>=、between…and、in、not in、like 和 is null等。

is null 与nvl():

作用:is null 使用来判断某列是否为空。

nvl:nvl() 的作用和is null是一样的。(nvl() 不属于比较操作符。)

作用:判断某列的数据是否为空,如果为空,则赋指定的值。

案例1:求出 emp 表里面 sal 和 comm 列的数据之和。

select nvl(sal,0) + nvl(comm,0) from emp;

逻辑操作符.
逻辑操作符包括与(and)、或(or)和非(not)。

集合操作符
集合操作符:将两个查询的结果组合成一个结果

union:如果要组合的查询结果相同,则只会显示一个;

union all:显示所有要组成查询结果。

连接操作符 - ||.
--连接操作符用于将多个字符串或数据值合并成一个字符串。

伪列
伪列概述.
伪列:伪装起来的列,隐藏起来的列。可以通过代码查询,但不能插入、更新和删除它们的值。

oracle中伪列就像一个表里面的列,但是它并没有存储在表中;

常用的伪列有 rowid 和 rowunm.

rowid.
oracle数据库的表中的每一行数据都有一个唯一的标识符(rowid),在oracle内部通常就是使用它来访问数据的。

rowid需要 10个字节的存储空间,用18个字符来显示。该值表明了该行数据在oracle数据库中的具体物理位置。

让伪列(rowid)显示出来的方法:rowid:select a.rowid,a.* from emp a;

rownum.
在Oracle里面执行 insert 操作的时候,oracle会按照 insert 的先后顺序,将 rownum 分配给每一行数据,且是固定不变的。(类似于Sqlserver中的标识符)

伪列 rownum只能作用于"<"和"="以及"<=",不能作用于">"。

让伪列(rownum)显示出来的方法:select rownum,b.* from emp b;

分页
分页在web项目中使用频繁
在Oracle里面使用伪列 rownum 实现分页的效果。

案例演示:每页最多展示3条数据。

查询 emp 表中第 1 页的数据;

查询 emp 表中第 2 页的数据;

查询 emp 表中第 3 页的数据;

伪表.
伪表(dual):顾名思义。伪装的表。隐式存在,可以显式调用。

因为在Oracle里面 select 后面必须接 from 关键字,当 select和from单独存在的时候会报语法错误,伪表可以解决这个问题。

案例:求1+1的和。

约束
--约束:主键、检查、唯一、非空、默认值、外键。

create table tb_g2103(

sid number primary key,--主键约束

sname varchar2(10) unique,--唯一约束

sex varchar2(10) check(sex='男' or sex='女'),--检查约束

age number(2) check(age>=18 and age<=100) not null,--非空约束

saddress varchar2(10) default '长沙'--默认值约束

)
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_73817220/article/details/129472246

你可能感兴趣的:(数据库,oracle)