数据库基本知识

本文档详细介绍了Oracle数据库的基础知识,包括前期准备、用户创建、数据类型、SQL动词、数据操作、视图、存储过程、函数及触发器等。通过学习,读者将掌握Oracle数据库的基本操作和SQL语句的使用。
摘要由CSDN通过智能技术生成

基础认识

使用数据库的前期准备

  1. 使用Oracle,需要打开两个服务(以Oracle 11g Express edition为例),具体操作如下:

    • Windows操作系统中,使用快捷键Win+Q打开搜索栏,搜索“服务”
    • 在服务中找到以下两个服务后,右键启动
      • OracleXETNSListener
      • OracleServiceXE

    两个服务的作用:

    OracleXETNSListener作用:Oracle监听器,监听用户的请求等等(如果有客户连接到数据库,这个功能必须得打开)【当被监听的对象发生变化时(某种请求),监听器的某个方法将会被立即执行】。
    OracleServiceXE作用:数据库得主服务器,此服务启动才能启动Oracle。

  1. Oracle的第一行代码(以图形界面软件Oracle SQL developer为例)
    • 新建sys管理员数据库连接

![](数据库图片/Oracle SQL developer 连接.png)

- 备注:如果你要创建新的用户,必须得通过sys系统管理员/system本地管理员才能新建其他用户,因为Oracle默认只有sys系统管理员/system本地管理员/Scott普通用户(默认不解锁) 

**防止掉坑:**

名词解释-端口  
	- 1-49151端口:依据互联网传输层TCP/IP协议的协议通信,不同的协议都对应不同的端口  
	- 1521 对应Oracle数据库default listener  
	
在命令行界面(cmd)使用sqlplus遇到的问题  
	- Oracle乱码:客户端服务端的字符集设置不一样:  
	1、常用unicode字符集 set NLS_LANG=american_america.AL32UTF8 可以通过修改注册表键值永久设置 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG  
	2、常用中文字符集(一般不用) set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK   
	3、需要注意的点:环境变量  

注册表
	- 以后快速找到某个注册表:将注册表添加到收藏夹
	- 找注册表的值:模糊搜索:“HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\”(适时可以加‘/’)

基础知识

varchar和nvarchar

The VARCHAR2 is a Unicode-only datatype
The NVARCHAR2 is use a non-Unicode character set
NUMBER(20,2):

用户的创建

/* 数据库的操作(Oracle的注释有两种/*和--和) */
--一开始的用户只有管理员:sys超级管理员,system本地管理员,(scott普通用户,默认不解锁)通过这两个管理员可以创建其他用户
--创建myDataBase用户;identified by后面是用户密码;
--刚创建的用户是没有任何权限,通过grant/revoke授予/收回用户的权限
--resource访问权限,访问表等;connect连接数据库;dba所有的权限;
create user myDataBase identified by uber;
grant resource,connect,unlimited tablespace,create view to myDataBase;

--dual表是实际存在的虚表,由sys创建,任何用户都可以读取
--可以通过该dual表查看"系统时间","显示当前用户"(和show user的作用一样)
select sysdate from dual;
select user from dual;
show user;

--查看所有的用户(只能sys/system管理员模式下查看)
select username from dba_users;

--提交/回滚
commit;
rollback;

--删除用户
drop user mydatabase;

函数

-- trim / ltrim / rtrim(修剪):删除左右空白字符串
-- 输出名称是以“DB_”开头,倒数第三个字符是i
select * from course where trim(cname) like 'DB\_%i__'escape '\';

--转义字符 escape'\'(斜线后面的不会被理解为通配符)
select * from course where trim(cname) like 'DB\_%i__'escape '\';

--any(全部中取“一个”)/all(“全部”)
select sname,sage from student where sage<any(select sage from student where sdept='CS')and sdept<>'CS';
select sname,sage from student where sage<all(select sage from student where sdept='CS')and sdept<>'CS';

集合

-- 自己理解:只能对于同一个表(值域要想等),但是又可以通过and or 来实现,所以集合没什么用
-- union:并集
-- intersect:交集
-- minus:差集
select * from sc where cno='1'
union 
select * from sc where cno='2';

表的操作


数据操作


字符集编码


数据类型(列类型)


列属性(列约束)


建表规范


初识SQL

SQL的动词

SQL功能 动词
数据定义 Create,Drop,Alter
数据操纵 Insert,Update,Delete
数据查询 Select
数据控制 Grant,Revoke

数据定义

操作对象 创建 删除 修改
模式 Create Schema Drop Schema
视图 Create View Drop View
Create Table Drop Table Alter Table
索引 Create Index Drop Index Alter Index

Oracle中一个模式对应一个表,因此不用特意的去操作(增删改)Schema

视图->外模式:不能修改视图,只能删除+重新创建
表->模式
索引->内模式

基本表的SQL操作

数据定义

定义基本表

联想具体记忆:表头的名字+表头的类型+约束条件【写代码的时候就像说话一样】

  • 注意:学生选课表的外码cno,sno的类型要和student的sno、course的cno的类型要一致!!
-- 建立一个Student表
Create table student
(sno char(9) primary key,
sname char(20) unique,
ssex char(2),
sage smallint,
sdept char(20)
);

--建立一个Course表
Create table Course
(cno char(4) primary key,
cname char(40)not null,
cpno char(4),
ccredi
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值