王海鱼 发表于 2024-8-31 00:19:49

Oracle基本语法(SQLPlus)

目录:

媒介:
准备工作:
登录:
1.打开SQL Plus下令行工具
第一种方式:
 第二种方式:
2.以差别用户登录 
SYSTEM(平凡管理员):
SYS(超级管理员):
不显示密码方式:
 显示密码方式:
SCOTT(平凡用户):
如果出现被锁住的情况:​
办理方法: 
SQL基本下令
1.数据定义语言(DDL)
数据库操作 
查询所有用户:
查看当前用户:
创建用户并指定其表空间:
给用户授予dba的权限(超级管理员):
删除用户(超级管理员):
 切换用户登录:
表操作
查询:
查询某个用户下所有表名:
查询某个用户下表个数:
查询某个用户的表结构:
查询指定表的建表语句:
创建:
数据范例(链接):
创建表空间:
​编辑
创建表:
给表添加解释:
给字段添加解释: 
 表备份:
修改:
重定名表:
添加字段:
修改字段名:
修改数据范例:
删除:
删除表字段:
删除表:
删除表空间:
删除指定表并重新创建该表:
2.数据操作语言(DML)
添加数据(insert)
给指定字段添加数据:
给表中批量添加数据:
修改数据(update) 
修改数据:
删除数据(delete)
删除数据:
3.数据查询语言(DQL)
编写顺序:
执行顺序:
基本查询
查询多个字段:
设置别名:
去除重复记载:
条件查询
语法:
​编辑
条件:
聚合函数
分组查询
排序查询
分页查询 
4.数据控制语言(DCL)
管理用户
查看当前用户:
权限控制
查询用户权限: 
授予权限:
回收权限:
函数
使用
sys.dual 
字符串函数
数值函数
日期函数
日期表现:
函数概述:
 eg:
sysdate:
next_day(): 
​last_day():​
round() :
​add_months():​
months_between(): 
extract(): 
约束
概念
分类
外键约束
添加外键:
 在创建表的时间添加:
 sql语句添加(alter):
查询外键
根据外键名称查看外键地点位置:
查找表的外键:
 删除外键


媒介:

   1.使用的数据库差别,所使用的语法也略有差别
2.SQL对大小写不敏感
3.Oracle中对引号里面的内容大小写敏感
3.表空间名、文件路径......等需要用单引号将其包含
4.一样寻常引号里面的内容需要大写
准备工作:

安装tips:PLSQL、Oracle以及客户端远程毗连服务器条记(仅供参考)-CSDN博客
   (1).Win+R打开services.msc
 https://img-blog.csdnimg.cn/direct/64043c7e13034dce96eaf0ed1e8c4686.png
 (2)启动一些服务:
(qwq我不知道哪些有用,哪些没用,所以我都把打开了,不知道有没有负面影响,大家参考一下别的博客吧)
https://img-blog.csdnimg.cn/direct/8d70dd999efd4d049fab81e60bab8d79.png

登录:

1.打开SQL Plus下令行工具

第一种方式:

https://img-blog.csdnimg.cn/direct/aad1db7b169b4eac9edd18279bee82d8.png
 第二种方式:

   (1)win+R 打开cmd
https://img-blog.csdnimg.cn/direct/0ae7612311de40fb8fb74ea450ebba6e.png
(2)输入sqlplus
https://img-blog.csdnimg.cn/direct/446d653c1e014fe59d106a4f4fe4f319.png

2.以差别用户登录 

   注意:
1.使用用户口令这种形式登录的时间,是不显示密码的,口令输入的时间是不显示的,直接输就好
2.如果想以显示密码的形式输入,直接在用户名那一块输入:用户名/密码
3.超级管理员(sys)输入时需要注意指定 as sysdba
SYSTEM(平凡管理员):

https://img-blog.csdnimg.cn/direct/8f6561a1c6d948ae835ebb8dcaa2ca53.png
SYS(超级管理员):

   不显示密码方式:

用户名:SYS
密码:sys密码 as sysdba
https://img-blog.csdnimg.cn/direct/77c26f043b53473a9fa5b5ed482435b1.png

 显示密码方式:

用户名:sys/sys密码 as sysdba
https://img-blog.csdnimg.cn/direct/4b83951f276c41ca83eecf44793076df.png

SCOTT(平凡用户):

如果出现被锁住的情况:https://img-blog.csdnimg.cn/direct/40ee596ce65f4c4d91b892354add8c16.png

办理方法: 

   (1)登录超级管理员账户,
https://img-blog.csdnimg.cn/direct/c77fd087ace041cca948bfd00f8cf91f.png
(2)输入alter user 用户名 account unlock; 
 https://img-blog.csdnimg.cn/direct/433a1ea1dbcd479386758b5b997e68e7.png
(3)重新登录即可:
https://img-blog.csdnimg.cn/direct/d6019aab8099487fac09613777b052f1.png

SQL基本下令

https://img-blog.csdnimg.cn/direct/45591f885f4d4f5d9bd6c6767ff51dae.jpeg

1.数据定义语言(DDL)

数据库操作 

查询所有用户:

select distinct(OWNER) from all_tables; 查看当前用户:

show user;
https://img-blog.csdnimg.cn/direct/25fb972e96d8417eb1d638ba1d58a7de.png
创建表空间:

create tablespace 表空间名 datafile '存储路径\***.dbf' size 空间大小; https://img-blog.csdnimg.cn/direct/0d5ef691829d4c2c9e8862fae1c4f0ee.png
创建用户并指定其表空间:

(指定表空间需要先创建表空间,如果不指定表空间,就会按照默认空间存储)
create user 用户名 identified by 密码 default tablespace 表空间; https://img-blog.csdnimg.cn/direct/612bd70b2d6445e08b5e9fc1e607dcd2.png
给用户授予dba的权限(超级管理员):

grant dba to 用户; https://img-blog.csdnimg.cn/direct/c4bb355750b748f8b5ea74d9fcef4342.png

删除表空间:

drop tablespace 表空间名 including contents and datafiles; https://img-blog.csdnimg.cn/direct/3847a0765c8349a9b86ac14cc5fe24b2.png
删除用户(超级管理员):

   (1)查看用户是否有活泼对话
select sid as session_id, serial# from v$session where username='用户名';https://img-blog.csdnimg.cn/direct/6169ad8426a74986aa9b5eac874624d8.png
(2)如果查询结果显示有活动的会话,结束这些会话
kill session 'session_id, serial#' immediate; (3)删除用户
drop user 用户名 cascade;https://img-blog.csdnimg.cn/direct/d1a8e583257745c5891b74b6f5b354b6.png  
 切换用户登录:

conn 用户名/密码 https://img-blog.csdnimg.cn/direct/4941b3f7d3e8420fbe81b1608077a2ba.png
表操作

查询:

查询某个用户下所有表名:

(用户名注意大写)
select table_name from dba_tables where owner = '用户名'; https://img-blog.csdnimg.cn/direct/0c5d053bac9b43b48d9ba27187ccba60.png
查询某个用户下表个数:

(用户名注意大写)
select count(*) from all_tables where OWNER = '用户名'; https://img-blog.csdnimg.cn/direct/ebc494999ae9490ebdc04e09d6e6f5e3.png
查询某个用户的表结构:

desc 用户名.表名; https://img-blog.csdnimg.cn/direct/612ed8ba1c2141e4bda219cc2343c7b9.png
查询指定表的建表语句:

(表名、用户名注意大写)
select dbms_metadata.get_ddl('TABLE', '表名','用户名') from dual; https://img-blog.csdnimg.cn/direct/999f0a61b39b461bab3fd86e9f4e1bd3.png

创建:

数据范例: 

https://img-blog.csdnimg.cn/direct/311c8a4815ff4739b2d13611ce97a4a4.png
创建表空间:

create tablespace 表空间名 datafile '文件路径\文件名.dbf' size 表空间大小; https://img-blog.csdnimg.cn/direct/c4ff0231753449bc902ffaed742e4ecc.png

 https://img-blog.csdnimg.cn/direct/449ec481357d4b29a6622aee411f6048.png
创建表:


#创建表
create table 表名(

        字段1 字段1类型,

        字段2 字段2类型,

        字段3 字段3类型,

        .......

        字段n 字段n类型

) ;        https://img-blog.csdnimg.cn/direct/67e6d71bf33d4213a27bac2660da75f0.png
给表添加解释:

comment on table 表名 is '注释';  https://img-blog.csdnimg.cn/direct/6a969838fedb498baff66d7a142cb80c.png
给字段添加解释: 

comment on column 表名.字段名 is '注释'; https://img-blog.csdnimg.cn/direct/e74b46f0ca004afd8022568658992f45.png
 表备份:

create table 用户名.备份表名 as select * from 用户名.需要备份的表名; https://img-blog.csdnimg.cn/direct/bebdea3ea6e542f2bf67707624d2c961.png
 https://img-blog.csdnimg.cn/direct/1f3b2de526bf4ccd9a7e7a351565dac1.png
https://img-blog.csdnimg.cn/direct/913de5439fbd4eb78c9d15b783ca7755.png
给表添加一列:

alter table 表名 add (字段名 字段类型 约束条件); https://img-blog.csdnimg.cn/direct/9360de58a4ad4fa59969ad84c024557a.png
修改:

重定名表:

alter table 用户名.旧表名 rename to 新表名; https://img-blog.csdnimg.cn/direct/4a22f74446224a5188f7930a77a93b3e.png
添加字段:

alter table 用户名.表名 add 新字段名 新字段类型 default '默认值'; https://img-blog.csdnimg.cn/direct/ceaa475f0be0424fb1b781f3980a0448.png
修改字段名:

alter table 用户名.表名 rename column 旧字段名 to 新字段名; https://img-blog.csdnimg.cn/direct/b3d0295c47134e62a6f56df5b5529682.png
修改数据范例:

alter table T1.emp1 modify temp varchar(30); https://img-blog.csdnimg.cn/direct/e29c1b0e3cbe497d9336fad53d1d396b.png
删除:

删除表字段:

alter table 用户名.表名 drop column 字段名; https://img-blog.csdnimg.cn/direct/4d1868ae15654b5b87a98046ac3024e5.png
删除表:

drop table 表名; https://img-blog.csdnimg.cn/direct/2923308e027f4a308729399528105e4f.png
删除表空间:

   (1)查看是否有别的用户在使用该表空间:
select * from dba_users where default_tablespace='表空间名';https://img-blog.csdnimg.cn/direct/4115b34101a44ae0aaf5756a77de59fb.png(2)如有,则删除这些用户大概将这些用户迁徙到别的表空间
(3)删除表空间
drop tablespace 表空间名 including contents and datafiles;https://img-blog.csdnimg.cn/direct/5bbbb74bf8194f6484fe15116141bff0.png
https://img-blog.csdnimg.cn/direct/9cfc615bad3e4234b6724166428d86c0.png
删除指定表并重新创建该表:

truncate table 表名; https://img-blog.csdnimg.cn/direct/76ca07de2f144a7b857e85d3843d06e9.png
2.数据操作语言(DML)

添加数据(insert)

   注意:
1.插入数据注意顺序
2.插入的数据大小要合法
给指定字段添加数据:

insert into 表名 (字段1,字段2......) values(值1, 值2......); https://img-blog.csdnimg.cn/direct/3a33ba2e43664a3b83cd22180f5ca935.png
给表中批量添加数据:

insert all into 用户名.表名(字段1,字段2,字段3......) values(值1,值2,值3.......)
         into 用户名.表名(字段1,字段2,字段3......) values(值1,值2,值3.......)
select * from dual; https://img-blog.csdnimg.cn/direct/0d11e4500bae43e7b544252c12f23272.png
修改数据(update) 

修改数据:

 注意:如果没有条件,则会修改整张表
update 表名 set 字段1=值1,字段2=值2......; https://img-blog.csdnimg.cn/direct/5180e972979d464bbbc1bebc3e667496.png
删除数据(delete)

删除数据:

注意:如果没有条件,则会删除整张表
delete from 表名; https://img-blog.csdnimg.cn/direct/99f79737614b4298b1dcbcbeda6bb110.png

3.数据查询语言(DQL)

编写顺序:

select 字段列表

from 表名

where 查询条件

group by 分组字段列表

having 分组后条件列表

order by 排序字段列表:asc或者desc
;
作树模的表结构:
https://img-blog.csdnimg.cn/direct/b820d0aecd2d49ceba7654b870cf7524.png
表名:T_STUDENT
https://img-blog.csdnimg.cn/direct/1eba1862db084366b4d29a4423802951.png
执行顺序:

from 表名 : 从哪张表查询

where 条件 :查询条件

group by 分组条件 :分组

having 分组后查询条件 :分组后查询条件

select 字段列表 :选择字段

order by 排序方式 :对查询结果进行排序
; 基本查询

查询多个字段:

select 字段1,字段2,字段3...from 表名;

select * from 表名; 设置别名:

select 字段1,字段2 ......from 表名; https://img-blog.csdnimg.cn/direct/fb1497a7153c4250a37e73b291dfef58.png
去除重复记载:

select distinct 字段列表 from 表名; 条件查询

语法:

select 字段列表 from 表名 where 条件列表; https://img-blog.csdnimg.cn/direct/ce0d14f6c62a4c16968ff45ce9b55691.png

条件:

比较运算符功能>>=<<==<> 或 !=不等于between...and...在某个范围之内in(...)在in之后的括号中,多选一like 占位符含糊匹配(_匹配单个字符,%匹配任意个字符)is nulland 或 &&并且or 或 ||或not 或 !非 聚合函数

select 聚合函数(字段列表) from 表名; https://img-blog.csdnimg.cn/direct/4312a3558c3948d88d736a298e2c2294.png
注意:
           对一列进行盘算 所有null值不参与聚合函数的盘算
函数功能count统计数量max最大值min最小值avg均匀值sum求和 分组查询

select 字段列表 from 表名 group by 分组字段名 ; where <strong>分组之前执行,不满足where条件的不参与分组,where不能对聚合函数进行判断</strong> having <strong>分组之后对结果进行过滤,having可以对聚合函数进行判断</strong> eg:
https://img-blog.csdnimg.cn/direct/2327d20fe4b94fb2971e1441eceef673.png
排序查询

select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2; asc升序(默认)desc降序 https://img-blog.csdnimg.cn/direct/3b8c4db6d0844c278bb0a3190fc40bb3.png
分页查询 

(oracle查询没有limit关键字,引入rownum进行分页查询)
select * from
(
    select rownum rn, t.* from
    (select 字段 from t_student) t where rownum <= 终止行
)
where rn >= 起始行; https://img-blog.csdnimg.cn/direct/fb69425cbfe641dda3aacfb63a6741c9.png
4.数据控制语言(DCL)


管理用户

查看当前用户:

show user;
切换用户:
connect 用户名/密码; https://img-blog.csdnimg.cn/direct/bae9072efd0344b9b98fce4aa12fc5cc.png
   注意毗连到数据库超级管理员的时间:
可能会出现以下错误:
https://img-blog.csdnimg.cn/direct/ef845ade81e74c0f85e12e0478d8229a.png
办理方法:
connect sys/密码 as sysdba
 https://img-blog.csdnimg.cn/direct/4a99278b0e2041f29407bf6a4fcfc582.png
权限控制


查询用户权限: 

select * from dba_sys_privs where grantee='用户名'; 授予权限:

grant 权限 to 用户; 权限说明create session登录权限create table创建表的权限drop any table删除任意表insert any table向任意表中插入行update any table修改任意表中行的权限select on 表名 查看指定表的权限  eg:
https://img-blog.csdnimg.cn/direct/8d7f29ddc3904f6687084ca7634adf73.png

回收权限:

--回收用户权限
revoke 权限 from 用户;
revoke select on 用户2.表2 from 用户1; #回收用户1查看表2的权限 https://img-blog.csdnimg.cn/direct/73ba37304ec3471198997955eb0d9747.png
函数

使用

   一样寻常形式:
select 函数 from 表名 where 条件;如果只是想看函数的返回结果可以使用以下形式:
select 函数 from sys.dual;sys.dual 

   dual是一个虚拟表,用来构成select的语法规则,oracle包管dual里面永世只有一条记载
字符串函数


eg:
 https://img-blog.csdnimg.cn/direct/00baad8106b14a2eaa20f7b70703c96c.png
https://img-blog.csdnimg.cn/direct/4a1760c36501430cab3e95aad96b64d8.pnghttps://img-blog.csdnimg.cn/direct/726ef4e2d3114615afaae9dfc74006e8.png 
数值函数

eg: 
https://img-blog.csdnimg.cn/direct/2a2444b65ceb49f4a9867e2e5e8e7e60.png
https://img-blog.csdnimg.cn/direct/e1a8ab0eabcb457e9865dff9960b6fc7.png
https://img-blog.csdnimg.cn/direct/355917d661384e3d804c1ae5d979a5b2.png
日期函数

日期表现:

   日期-月份-年份   
eg:21-9月-2024
函数概述:

 eg:

sysdate:

https://img-blog.csdnimg.cn/direct/6a3a3ddf5bb8436db28763a1b93fe1e1.png
next_day(): 

https://img-blog.csdnimg.cn/direct/8958603badb1448ca9f4d1b4e68c902f.png last_day():https://img-blog.csdnimg.cn/direct/a42771aa0b744fc8be5516099089a701.png

round() :

https://img-blog.csdnimg.cn/direct/9bf0eb565a41423896ed728d6973180b.png add_months():https://img-blog.csdnimg.cn/direct/6d96c549b02b443cacabc8b2a5b1a93b.png

months_between(): 

https://img-blog.csdnimg.cn/direct/1d1efa3f2be74c26bc3419554b2b5556.png
extract(): 

https://img-blog.csdnimg.cn/direct/5438d95e63c44d09ac49f10ce9a40329.png
约束

概念

                   约束是作用于表中字段上的规则,用于限定存储在表中的数据
                约束可以在创建表/修改表的时间添加
分类

约束描述关键字非空约束限定该字段的数据不能为nullnot null唯一约束包管该字段的所有数据都是唯一的、不重复的unique主键约束主键是一行数据的唯一标识,要求非空且唯一 primary key 
默认约束保存数据时,如果未指定该字段的值,则接纳默认值default检查约束包管字段值满意某一条件check外键约束用来让两张表的数据之间建立毗连,包管数据的同等性和完整性 foreign key
建表时添加约束:
https://img-blog.csdnimg.cn/direct/c6e78906f7e24dbebe6a93b71e13c294.png
https://img-blog.csdnimg.cn/direct/f37b7a87a55f418a96ab47b11427a8c5.png
 sql语句添加:
alter table 表名 add constraints 约束名称 primary key(列名); https://img-blog.csdnimg.cn/direct/8c965bf59c774ea88c670f74216d80a9.png
外键约束

   子表(从表):具有外键的表
父表(主表):外键所关联的表
FOREIGN KEY约束可以与另外一个表的PRIMARY KEY及UNIQUE关联

添加外键:

 在创建表的时间添加:

constraint 外键名称 foreign key(外键) references 表名(外键关联的键) https://img-blog.csdnimg.cn/direct/cd97e9b1dc1e462e985afd85db8ab506.png
foreign key(列名) references 外键关联的表名 https://img-blog.csdnimg.cn/direct/cbff835f023e441388a8d0b14a136abc.png
 sql语句添加(alter):

alter table 表名 add constraint 外键名称 foreign key(列名) references 表名(外键关联的键); https://img-blog.csdnimg.cn/direct/e7bd23c5e73d42a59ccccf6df8bace51.png
查询外键

根据外键名称查看外键地点位置:

select * from user_cons_columns cl where cl.constraint_name= upper('外键名称'); https://img-blog.csdnimg.cn/direct/2b0a6962de6b480c82883928e2df824f.png
查找表的外键:

(包罗名称,引用表的表名和对应的列名)
select * from user_constraints c where c.constraint_type='R' and c.table_name=upper('表名'); https://img-blog.csdnimg.cn/direct/a323a8bef3714ce7ae6ce9fe0674e17e.png
 删除外键

alter table 表名 drop constraint 外键名称; https://img-blog.csdnimg.cn/direct/e2fff658f8ca430e8c293e8a7dd0082a.png
多表查询 

基本概念

   自然毗连(内毗连):左表与右表中每一个元组进行条件匹配,满意条件的才会查询出来
自毗连:同一个表内的查询
外毗连:


[*]左外毗连:左表中的元组不会丢失,即每一个左表中的元素都可查出,若右表没有匹配的,就置为空
[*]右外毗连:右表中的元组不会丢失,即每一个右表中的元素都可查出,若左表没有匹配的,就置为空
[*]全毗连:左右表的悬浮元组都会加入到最后的查询结果中
基本结构 

内毗连+外毗连:

select 查询的字段名 from 左表 join 右表 on 连接条件; 自毗连:

select 别名.查询的字段名(列名)from 表1 别名1, 表1 别名2 where 连接条件;
关系运算

https://img-blog.csdnimg.cn/direct/8fad53c2fe3d4b34a5db340362829b46.png
大学模式:

https://img-blog.csdnimg.cn/direct/ab4ac625a86547f1974310c62ba9f19e.jpeghttps://img-blog.csdnimg.cn/direct/8a34b018ed094fb89d2036b283213565.jpeg
 https://img-blog.csdnimg.cn/direct/b2e284937c4c498fb9eca0e46489565e.jpeg
 https://img-blog.csdnimg.cn/direct/ed99d6bd2659436ca6cd76c22060ae8b.jpeg
 https://img-blog.csdnimg.cn/direct/5490ffe1891c48ef8847de9c2adfee8d.jpeg
 https://img-blog.csdnimg.cn/direct/3ac3372d4dc24d4db9d650a1413323ef.jpeg
 https://img-blog.csdnimg.cn/direct/642e241a28664f6fbdd3cdb329a74eed.jpeg
 https://img-blog.csdnimg.cn/direct/b694ef1de38a4f9bbbc8bcf0122c2620.jpeg
起首以黑书里面的大学模式为例:
创建基本表结构:

create table classroom
        (building varchar(15),
       room_number varchar(7),
       capacity numeric(4,0),
       primary key (building, room_number)
        );

create table department
        (dept_name varchar(20),
       building varchar(15),
       budget numeric(12,2) check (budget > 0),
       primary key (dept_name)
        );

create table course
        (course_id varchar(8),
       title                       varchar(50),
       dept_name               varchar(20),
       credits               numeric(2,0) check (credits > 0),
       primary key (course_id),
       foreign key (dept_name) references department (dept_name)
                on delete set null
        );

create table instructor
        (ID                       varchar(5),
       name                       varchar(20) not null,
       dept_name               varchar(20),
       salary                       numeric(8,2) check (salary > 29000),
       primary key (ID),
       foreign key (dept_name) references department (dept_name)
                on delete set null
        );

create table section
        (course_id               varchar(8),
         sec_id                       varchar(8),
       semester               varchar(6)
                check (semester in ('Fall', 'Winter', 'Spring', 'Summer')),
       year                       numeric(4,0) check (year > 1701 and year < 2100),
       building               varchar(15),
       room_number                 varchar(7),
       time_slot_id               varchar(4),
       primary key (course_id, sec_id, semester, year),
       foreign key (course_id) references course (course_id)
                on delete cascade,
       foreign key (building, room_number) references classroom (building, room_number)
                on delete set null
        );

create table teaches
        (ID                       varchar(5),
       course_id               varchar(8),
       sec_id                       varchar(8),
       semester               varchar(6),
       year                       numeric(4,0),
       primary key (ID, course_id, sec_id, semester, year),
       foreign key (course_id, sec_id, semester, year) references section (course_id, sec_id, semester, year)
                on delete cascade,
       foreign key (ID) references instructor (ID)
                on delete cascade
        );

create table student
        (ID                          varchar(5),
       name                       varchar(20)not null,
       dept_name                varchar(20),
       tot_cred                  numeric(3,0) check (tot_cred >= 0),
       primary key (ID),
       foreign key (dept_name) references department (dept_name)
                on delete set null
        );

create table takes
        (ID                       varchar(5),
       course_id               varchar(8),
       sec_id                       varchar(8),
       semester               varchar(6),
       year                       numeric(4,0),
       grade                       varchar(2),
       primary key (ID, course_id, sec_id, semester, year),
       foreign key (course_id, sec_id, semester, year) references section (course_id, sec_id, semester, year)
                on delete cascade,
       foreign key (ID) references student (ID)
                on delete cascade
        );

create table advisor
        (s_ID                      varchar(5),
       i_ID                       varchar(5),
       primary key (s_ID),
       foreign key (i_ID) referencesinstructor (ID)
                on delete set null,
       foreign key (s_ID) referencesstudent (ID)
                on delete cascade
        );

create table time_slot
        (time_slot_id               varchar(4),
       day                       varchar(1),
       start_hr               numeric(2)check (start_hr >= 0 and start_hr < 24),
       start_min               numeric(2)check (start_min >= 0 and start_min < 60),
       end_hr                       numeric(2)check (end_hr >= 0 and end_hr < 24),
       end_min               numeric(2)check (end_min >= 0 and end_min < 60),
       primary key (time_slot_id, day, start_hr, start_min)
        );

create table prereq
        (course_id               varchar(8),
       prereq_id               varchar(8),
       primary key (course_id, prereq_id),
       foreign key (course_id) references course (course_id)
                on delete cascade,
       foreign key (prereq_id) references course (course_id)
        );

插入数据:

delete from prereq;
delete from time_slot;
delete from advisor;
delete from takes;
delete from student;
delete from teaches;
delete from section;
delete from instructor;
delete from course;
delete from department;
delete from classroom;
insert into classroom values ('Packard', '101', '500');
insert into classroom values ('Painter', '514', '10');
insert into classroom values ('Taylor', '3128', '70');
insert into classroom values ('Watson', '100', '30');
insert into classroom values ('Watson', '120', '50');
insert into department values ('Biology', 'Watson', '90000');
insert into department values ('Comp. Sci.', 'Taylor', '100000');
insert into department values ('Elec. Eng.', 'Taylor', '85000');
insert into department values ('Finance', 'Painter', '120000');
insert into department values ('History', 'Painter', '50000');
insert into department values ('Music', 'Packard', '80000');
insert into department values ('Physics', 'Watson', '70000');
insert into course values ('BIO-101', 'Intro. to Biology', 'Biology', '4');
insert into course values ('BIO-301', 'Genetics', 'Biology', '4');
insert into course values ('BIO-399', 'Computational Biology', 'Biology', '3');
insert into course values ('CS-101', 'Intro. to Computer Science', 'Comp. Sci.', '4');
insert into course values ('CS-190', 'Game Design', 'Comp. Sci.', '4');
insert into course values ('CS-315', 'Robotics', 'Comp. Sci.', '3');
insert into course values ('CS-319', 'Image Processing', 'Comp. Sci.', '3');
insert into course values ('CS-347', 'Database System Concepts', 'Comp. Sci.', '3');
insert into course values ('EE-181', 'Intro. to Digital Systems', 'Elec. Eng.', '3');
insert into course values ('FIN-201', 'Investment Banking', 'Finance', '3');
insert into course values ('HIS-351', 'World History', 'History', '3');
insert into course values ('MU-199', 'Music Video Production', 'Music', '3');
insert into course values ('PHY-101', 'Physical Principles', 'Physics', '4');
insert into instructor values ('10101', 'Srinivasan', 'Comp. Sci.', '65000');
insert into instructor values ('12121', 'Wu', 'Finance', '90000');
insert into instructor values ('15151', 'Mozart', 'Music', '40000');
insert into instructor values ('22222', 'Einstein', 'Physics', '95000');
insert into instructor values ('32343', 'El Said', 'History', '60000');
insert into instructor values ('33456', 'Gold', 'Physics', '87000');
insert into instructor values ('45565', 'Katz', 'Comp. Sci.', '75000');
insert into instructor values ('58583', 'Califieri', 'History', '62000');
insert into instructor values ('76543', 'Singh', 'Finance', '80000');
insert into instructor values ('76766', 'Crick', 'Biology', '72000');
insert into instructor values ('83821', 'Brandt', 'Comp. Sci.', '92000');
insert into instructor values ('98345', 'Kim', 'Elec. Eng.', '80000');
insert into section values ('BIO-101', '1', 'Summer', '2017', 'Painter', '514', 'B');
insert into section values ('BIO-301', '1', 'Summer', '2018', 'Painter', '514', 'A');
insert into section values ('CS-101', '1', 'Fall', '2017', 'Packard', '101', 'H');
insert into section values ('CS-101', '1', 'Spring', '2018', 'Packard', '101', 'F');
insert into section values ('CS-190', '1', 'Spring', '2017', 'Taylor', '3128', 'E');
insert into section values ('CS-190', '2', 'Spring', '2017', 'Taylor', '3128', 'A');
insert into section values ('CS-315', '1', 'Spring', '2018', 'Watson', '120', 'D');
insert into section values ('CS-319', '1', 'Spring', '2018', 'Watson', '100', 'B');
insert into section values ('CS-319', '2', 'Spring', '2018', 'Taylor', '3128', 'C');
insert into section values ('CS-347', '1', 'Fall', '2017', 'Taylor', '3128', 'A');
insert into section values ('EE-181', '1', 'Spring', '2017', 'Taylor', '3128', 'C');
insert into section values ('FIN-201', '1', 'Spring', '2018', 'Packard', '101', 'B');
insert into section values ('HIS-351', '1', 'Spring', '2018', 'Painter', '514', 'C');
insert into section values ('MU-199', '1', 'Spring', '2018', 'Packard', '101', 'D');
insert into section values ('PHY-101', '1', 'Fall', '2017', 'Watson', '100', 'A');
insert into teaches values ('10101', 'CS-101', '1', 'Fall', '2017');
insert into teaches values ('10101', 'CS-315', '1', 'Spring', '2018');
insert into teaches values ('10101', 'CS-347', '1', 'Fall', '2017');
insert into teaches values ('12121', 'FIN-201', '1', 'Spring', '2018');
insert into teaches values ('15151', 'MU-199', '1', 'Spring', '2018');
insert into teaches values ('22222', 'PHY-101', '1', 'Fall', '2017');
insert into teaches values ('32343', 'HIS-351', '1', 'Spring', '2018');
insert into teaches values ('45565', 'CS-101', '1', 'Spring', '2018');
insert into teaches values ('45565', 'CS-319', '1', 'Spring', '2018');
insert into teaches values ('76766', 'BIO-101', '1', 'Summer', '2017');
insert into teaches values ('76766', 'BIO-301', '1', 'Summer', '2018');
insert into teaches values ('83821', 'CS-190', '1', 'Spring', '2017');
insert into teaches values ('83821', 'CS-190', '2', 'Spring', '2017');
insert into teaches values ('83821', 'CS-319', '2', 'Spring', '2018');
insert into teaches values ('98345', 'EE-181', '1', 'Spring', '2017');
insert into student values ('00128', 'Zhang', 'Comp. Sci.', '102');
insert into student values ('12345', 'Shankar', 'Comp. Sci.', '32');
insert into student values ('19991', 'Brandt', 'History', '80');
insert into student values ('23121', 'Chavez', 'Finance', '110');
insert into student values ('44553', 'Peltier', 'Physics', '56');
insert into student values ('45678', 'Levy', 'Physics', '46');
insert into student values ('54321', 'Williams', 'Comp. Sci.', '54');
insert into student values ('55739', 'Sanchez', 'Music', '38');
insert into student values ('70557', 'Snow', 'Physics', '0');
insert into student values ('76543', 'Brown', 'Comp. Sci.', '58');
insert into student values ('76653', 'Aoi', 'Elec. Eng.', '60');
insert into student values ('98765', 'Bourikas', 'Elec. Eng.', '98');
insert into student values ('98988', 'Tanaka', 'Biology', '120');
insert into takes values ('00128', 'CS-101', '1', 'Fall', '2017', 'A');
insert into takes values ('00128', 'CS-347', '1', 'Fall', '2017', 'A-');
insert into takes values ('12345', 'CS-101', '1', 'Fall', '2017', 'C');
insert into takes values ('12345', 'CS-190', '2', 'Spring', '2017', 'A');
insert into takes values ('12345', 'CS-315', '1', 'Spring', '2018', 'A');
insert into takes values ('12345', 'CS-347', '1', 'Fall', '2017', 'A');
insert into takes values ('19991', 'HIS-351', '1', 'Spring', '2018', 'B');
insert into takes values ('23121', 'FIN-201', '1', 'Spring', '2018', 'C+');
insert into takes values ('44553', 'PHY-101', '1', 'Fall', '2017', 'B-');
insert into takes values ('45678', 'CS-101', '1', 'Fall', '2017', 'F');
insert into takes values ('45678', 'CS-101', '1', 'Spring', '2018', 'B+');
insert into takes values ('45678', 'CS-319', '1', 'Spring', '2018', 'B');
insert into takes values ('54321', 'CS-101', '1', 'Fall', '2017', 'A-');
insert into takes values ('54321', 'CS-190', '2', 'Spring', '2017', 'B+');
insert into takes values ('55739', 'MU-199', '1', 'Spring', '2018', 'A-');
insert into takes values ('76543', 'CS-101', '1', 'Fall', '2017', 'A');
insert into takes values ('76543', 'CS-319', '2', 'Spring', '2018', 'A');
insert into takes values ('76653', 'EE-181', '1', 'Spring', '2017', 'C');
insert into takes values ('98765', 'CS-101', '1', 'Fall', '2017', 'C-');
insert into takes values ('98765', 'CS-315', '1', 'Spring', '2018', 'B');
insert into takes values ('98988', 'BIO-101', '1', 'Summer', '2017', 'A');
insert into takes values ('98988', 'BIO-301', '1', 'Summer', '2018', null);
insert into advisor values ('00128', '45565');
insert into advisor values ('12345', '10101');
insert into advisor values ('23121', '76543');
insert into advisor values ('44553', '22222');
insert into advisor values ('45678', '22222');
insert into advisor values ('76543', '45565');
insert into advisor values ('76653', '98345');
insert into advisor values ('98765', '98345');
insert into advisor values ('98988', '76766');
insert into time_slot values ('A', 'M', '8', '0', '8', '50');
insert into time_slot values ('A', 'W', '8', '0', '8', '50');
insert into time_slot values ('A', 'F', '8', '0', '8', '50');
insert into time_slot values ('B', 'M', '9', '0', '9', '50');
insert into time_slot values ('B', 'W', '9', '0', '9', '50');
insert into time_slot values ('B', 'F', '9', '0', '9', '50');
insert into time_slot values ('C', 'M', '11', '0', '11', '50');
insert into time_slot values ('C', 'W', '11', '0', '11', '50');
insert into time_slot values ('C', 'F', '11', '0', '11', '50');
insert into time_slot values ('D', 'M', '13', '0', '13', '50');
insert into time_slot values ('D', 'W', '13', '0', '13', '50');
insert into time_slot values ('D', 'F', '13', '0', '13', '50');
insert into time_slot values ('E', 'T', '10', '30', '11', '45 ');
insert into time_slot values ('E', 'R', '10', '30', '11', '45 ');
insert into time_slot values ('F', 'T', '14', '30', '15', '45 ');
insert into time_slot values ('F', 'R', '14', '30', '15', '45 ');
insert into time_slot values ('G', 'M', '16', '0', '16', '50');
insert into time_slot values ('G', 'W', '16', '0', '16', '50');
insert into time_slot values ('G', 'F', '16', '0', '16', '50');
insert into time_slot values ('H', 'W', '10', '0', '12', '30');
insert into prereq values ('BIO-301', 'BIO-101');
insert into prereq values ('BIO-399', 'BIO-101');
insert into prereq values ('CS-190', 'CS-101');
insert into prereq values ('CS-315', 'CS-101');
insert into prereq values ('CS-319', 'CS-101');
insert into prereq values ('CS-347', 'CS-101');
insert into prereq values ('EE-181', 'PHY-101');

内毗连 (自然毗连)

select 查询的字段(列名)from 左表 inner join 右边 on 连接条件; https://img-blog.csdnimg.cn/direct/015e147c81f54f6ca3968a350b5a0c24.png
外毗连

左外毗连

select 查询的字段名(列名)from 左表 left join 右表 on 连接条件; https://img-blog.csdnimg.cn/direct/692bc90e7bc94bd0a9376755eddf98ca.png

右外毗连

https://img-blog.csdnimg.cn/direct/d7567ba80e6d436b846bed2f6a7fa1cf.png

全毗连 

select 查询出的字段名(列名) from 左表 full join 右表 on 连接条件; https://img-blog.csdnimg.cn/direct/c09191f2eea341afbb8e9b83750dd072.png
自毗连

select 别名.查询的字段名(列名)from 表1 别名1, 表1 别名2 where 连接条件; https://img-blog.csdnimg.cn/direct/db7904dae07b42cf9641b2d81631e8ce.png

视图

基本概念 

   
[*]视图是一个虚拟表,视图不在数据库中存储数据,视图的行和列来自于子查询所返回的结果
[*]视图名不允许与基本表重名
[*]可以通过视图对数据进行增删改查:insert、delete、select
[*]基本表中的数据改变时,视图中的数据也会动态更新
基本操作 

查看视图

desc Vcourse; https://img-blog.csdnimg.cn/direct/cdd5e4303deb45809fbba2ed0cea85d2.png
创建视图 

create [{force|noforce}] view 视图名(别名列表) as 子查询;
--or replace:如果视图已存在,则用新视图替换旧视图
--force:基本表不存在,也可以创建视图,但是创建的视图不能正常使用
--noforce:基本表不存在,不能创建视图 https://img-blog.csdnimg.cn/direct/62c70bc6cb7748bbad95d53cf9193bc9.png
https://img-blog.csdnimg.cn/direct/81497e5b3d3840b4885aa300c33e9794.png
修改视图

create or replace view 视图名 as 子查询; https://img-blog.csdnimg.cn/direct/99cb735bf1f54d97be7e15558f2e09e4.png
删除视图

drop view 视图名; https://img-blog.csdnimg.cn/direct/15c02be52b6b41cfa160c45aa4957b35.png
子查询
 如有错误,欢迎指正!!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Oracle基本语法(SQLPlus)