欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle第二天学习

程序员文章站 2023-03-08 08:18:05
当我们安装完oracle之后,可以进行基本的命令测试,未安装的可以看https://editor.csdn.net/md/?articleId=107188724dos命令行打开cmd:进入oracle命令sqlplus用户名scott口令root(第一次会显示被锁)解锁1.以管理员身份登录用户名sys口令 随便输入即可2.输入命令解锁如果安装oracle时的口令(密码)忘记了,可以修改密码注意:我们进行的所有增删改查操作一定要用普通用户(scott)进行,不能用sys(超级管理...

当我们安装完oracle之后,可以进行基本的命令测试,未安装的可以看
https://editor.csdn.net/md/?articleId=107188724

dos命令行

打开cmd:
进入oracle命令sqlplus
用户名scott
口令root(第一次会显示被锁)
oracle第二天学习解锁
1.以管理员身份登录
用户名sys
口令 随便输入即可
oracle第二天学习2.输入命令解锁
oracle第二天学习oracle第二天学习
如果安装oracle时的口令(密码)忘记了,可以修改密码
oracle第二天学习注意:我们进行的所有增删改查操作一定要用普通用户(scott)进行,不能用sys(超级管理员),sys用来管理其它用户,如果使用sys不小心删除oracle自带的表,需要重装oracle

表空间

数据库里有表空间,表空间有表,表里有数据
oracle第二天学习表空间一般跟用户挂钩,可以指定某个表空间归哪个用户管

创建表空间(PLSQL)

(管理员才可以执行):

普通用户创建表空间时会显示权限不足
oracle第二天学习当用管理员创建表空间时可以创建成功
oracle第二天学习表空间创建如下
oracle第二天学习然后直接删除表空间是不可以删除的
注意:这时的dbf文件不可以直接删除,dbf已经是oracle系统的一部分了
oracle第二天学习oracle第二天学习
oracle第二天学习

这时在删除就成功
oracle第二天学习

创建普通用户(PLSQL)

也是需要拥有管理员权限
oracle第二天学习创建完后,这个用户是不可以用的,因为没权限
切换登录时会提示没权限
oracle第二天学习

给用户赋予权限

oracle第二天学习

//创建表空间user01_tablespace(一块存储表数据的空间),放在user01.dbf文件中
//需要有管理员权限(sys)
create tablespace user01_tablespace
datafile 'd:\app\createDatabase\user01.dbf'
size 1M;

//创建一个用户(需要有管理员权限sys),不赋予权限没法用
//用户名use01  密码:root
create user user01 identified by root;

//赋予临时用户权限
grant connect to user01;
//赋予普通用户权限
grant resource to user01;
//赋予管理员权限
grant dba to user01;

//给user01分配表空间为user01_tablespace
alter user user01 default tablespace user01_tablespace;

//创建表,设置表的字段
create table stuMarks(
examno varchar2(7) not null,
stuno varchar2(6) not null,
writtenexam number(3,0) not null,
labexam number(3,0) not null
);


//插入语句
insert into grades values('28','28班','这是28班');

oracle第二天学习

回收用户权限

oracle第二天学习

回收权限 revoke resouce from user

oracle数据类型

oracle第二天学习字符:char varchar2
数值:number
日期时间:date

char与varchar2都是Oracle的数据存储格式。char是定长的,varchar2是变长。都可以存储字符串。
char与varchar2区别:
1.char是定长的 char(8) , varchar2(8)是变长的 当我们同样存c ,char占用了8个字符(c占一个,另外7个使用空格占用),varchar2 只占用了 一个字符(注意:一个中文占两个字符,英文占一个)。
2.char的查询速度要比varchar2快。因为使用varchar2的时候Oracle还要进行语法分析,这个字段是多少位的,所以慢一些。(这是相对于上千万的记录来说)。一般的项目用哪个都可以。

面试题:
如查询的字段使用的char(8)时:
Select查询要注意定长的格式。查询字符串的长度要刚好。多了少了都不能查到数据。例如字段A为char(8)。存“ABCD”,长度不满8。Oracle会用空格补满8位。你用"ABCD"作为查询字段时是查不出来的。

char与varchar2应用场景:
VARCHAR2比CHAR节省空间,但在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是数据库设计上常说的‘以空间换效率’。
在考虑效率的情况下用char
在考虑空间的情况下用varchar2

oracle第二天学习varchar2(20) 代表任意长度的字符,20是最大长度

number 代表数字
number(4,2) 4代表最大整数和小数位数的和 2代表最大小数位数
number(5,0) 只有整数位,整数位最大长度是5

oracle不能将字符串类型直接转换为日期类型

创建表的例题:
oracle第二天学习

create table user1(sid char(6),uname varchar(20));

create table stuinfo(
stuno char(6) not null,
stuname varchar2(20),
stuage number(3,0),
stuid varchar2(18),
stuseat number(2,0)
);

修改表字段

oracle第二天学习

数据完整性

oracle第二天学习其实开发中不会用数据库进行数据校验的
数据校验一般在前端验证

四种完整性约束

oracle第二天学习实体完整性
补充概念:主键
数据库表中,每个表都要有一个字段充当主键,这个主键起到唯一识别的作用
数据库里数据一般是不可以重复的

保证数据的唯一性,可以用主键约束,也可以用唯一约束,
两者区别:唯一约束的字段内容可以为null,而主键约束的字段内容不可以是null,.

域完整性

oracle第二天学习

引用完整性

oracle第二天学习oracle第二天学习一张表中主键唯一,外键可以有多个

oracle第二天学习出现下面这个错误
oracle第二天学习原因:
外键数据对应的班级不存在
解决:
先添加班级,在添加学生

用PLSQL工具执行sql语句时进行增删改操作时,
执行完后要提交才会插入表中
oracle第二天学习成绩、科目、学生之间的主外键关系:
oracle第二天学习oracle第二天学习
联表查询
oracle第二天学习
表与表之间有四种对应关系:
一对一、一对多、多对一、多对多

多对多:学生表和课程表
一个学生可以选择多门课程,一门课程可以被多个学生选

一对多、多对一:学生表和班级表
一个学生属于一个班级、一个班级可以有多个学生
从学生表到班级表时多对一,从班级表到学生表是一对多

一对一:班级表和班主任表
一个班级只有一个班主任,一个班主任管理一个班

注意:一般遇到多对多要进行转换,加一个中间表,把多对多转换成两个一对多的关系

自定义完整性

oracle第二天学习

约束

oracle第二天学习

本文地址:https://blog.csdn.net/qq_41150890/article/details/107190741