一、模式(Schema)
定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
理解:
① 一个数据库只有一个模式;
② 是数据库数据在逻辑级上的视图;
③ 数据库模式以某一种数据模型为基础;
④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。
二、外模式(External Schema)
定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
理解:
① 一个数据库可以有多个外模式;
② 外模式就是用户视图;
③ 外模式是保证数据安全性的一个有力措施。
三、内模式(Internal Schema)
定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。
理解:
① 一个数据库只有一个内模式;
② 一个表可能由多个文件组成,如:数据文件、索引文件。
它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法
SQL> connect system/lixiang666
已连接。
SQL> create user li identified by pass123;
用户已创建。
SQL> grant connect,resource to li;
授权成功。
SQL> create table stu(
2 son char(4) primary key,
3 sname varchar(10) unique,
4 sage number(2));
表已创建。
SQL> insert into stu
2 values(1001,'张三',18);
已创建 1 行。
SQL> insert into stu
2 values(1003,'李四',22);
已创建 1 行。
SQL> insert into stu
2 values(1002,'王五',19);
已创建 1 行。
SQL> select sysdate from stu;
SYSDATE
--------------
26-9月 -19
26-9月 -19
26-9月 -19
SQL> select to_char(sysdate,'YYYYMMDD HH:MI:SS') from stu;
TO_CHAR(SYSDATE,'YYYYMMDDHH:MI:SS'
----------------------------------
20190926 09:03:46
20190926 09:03:46
20190926 09:03:46
SQL> desc stu;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
SON NOT NULL CHAR(4)
SNAME VARCHAR2(10)
SAGE NUMBER(2)
SQL> desc dual;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
DUMMY VARCHAR2(1)
SQL> select * from dual;
DU
--
X
SQL> select to_char(sysdate,'YYYYMMDD HH:MI:SS'),sname from stu;
TO_CHAR(SYSDATE,'YYYYMMDDHH:MI:SS' SNAME
---------------------------------- --------------------
20190926 09:07:46 张三
20190926 09:07:46 李四
20190926 09:07:46 王五
SQL> select * from stu;
SON SNAME SAGE
-------- -------------------- ----------
1001 张三 18
1003 李四 22
1002 王五 19
SQL> create view st20
2 as
3 select * from stu;
视图已创建。
SQL> create view st188
2 as
3 select son,sname,sage
4 from stu
5 where sage=18;
视图已创建。
SQL> insert into st188 values('1111','hhh',21);
已创建 1 行。
SQL> select * from st188;
SON SNAME SAGE
-------- -------------------- ----------
1001 张三 18
SON SNAME SAGE
-------- -------------------- ----------
1001 张三 18
1003 李四 22
1002 王五 19
1111 hhh 21
转载:https://blog.csdn.net/weixin_43838785/article/details/101475520
查看评论