SQL server (oracle)语句练习案例

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQL server (oracle)语句练习案例


!!!练习希望可以按顺序执行!!!

  1. 建表(一):
create table Teacher(
Tno integer ,
Tname char(6) ,
Title char(6),
Dept char(10));
create table Teacher(
Tno integer Primary Key,
Tname char(6) not null,
Title char(6),
Dept char(10));
  1. 插入数据(一):
insert into Teacher
values
(101,'李华','讲师','计算机');
insert into Teacher
values
(102,'张丽','讲师','通信');
insert into Teacher
values
(103,'刘力伟','助教','计算机');
insert into Teacher(Tno,Tname,Dept)
values
(104,'李春生','计算机');
insert into Teacher(Tno,Tname,Dept)
values
(105,'王华英','自动化');
  1. 查询(一):
/*select * from teacher;*/
/*select * from teacher where dept='通信';*/
/*select distinct dept from teacher;*/
/*select count(*) from teacher;*/
/*select count(distinct dept) from teacher;*/
/*select * from teacher aa,teacher bb where aa.tno=bb.tno;*/
  1. 建表(二):
create Table Course(
Cno integer not null,
Tno integer not null,
Cname char(10) not null,
credit numeric(3,1) not null,
Primary key(cno,tno));
  1. 插入数据(二):
insert into Course
values(1,101,'数据库',3.5);
insert into Course
values(1,103,'数据库',3.5);
insert into Course
values(2,102,'网络',3);
insert into Course
values(2,101,'网络',3);
insert into Course
values(3,103,'操作系统',3);
  1. 查询(二):
select * 
from teacher,course;
select * 
from teacher,course
where teacher.tno=course.tno;
  1. 查询(三):
//select cname from course ;
//select distinct cname from course;
select * from teacher;
  1. 更新数据:
//update teacher
  //set dept='通信工程'
  //where dept='通信';
  1. 删除数据:
//delete from teacher where dept='计算机';
  1. 查询(四):
//select * from course where credit >3;
//select * from course where credit between 2 and 3;
//select * from teacher where dept in('计算机','自动化' ) ;
//select * from teacher where dept not in('计算机') ;
//select * from teacher where tname like '李%' ;
//select * from teacher where title is null ;
//select * from teacher order by tno desc ;
//select * from teacher order by title ;
//select count(*) from teacher;
//select count(distinct cname) from course;
select * from course aa, course bb
where aa.tno=bb.tno;
  1. 查询(五):
//select * from course
//    where Tno in ( select Tno 
//                    from Teacher
//                     where Tname='李华');
//
//
//select * from teacher,course
//   where (teacher.tno=course.tno) and Tname='李华';
//
//select * from course
//    where Tno in ( select Tno 
//                    from Teacher
//                     where Title='讲师');
select * from teacher,course
   where (teacher.tno=course.tno) and Title='讲师';
  1. 查询(六):
select Distinct Tno from course
  where 2<=(select count(*) from Course aa
                where aa.Tno=course.tno);
//select count(*) from Course aa
//                where Tno=102;
//
  1. 新建视图:
create view v_t_c
   as 
      select Teacher.Tno,Tname,Title,Dept,Cno,Cname
        from Teacher,course
          where Teacher.Tno=course.Tno;
  1. 视图查询
Select * from v_t_c;
Select * from v_t_c where Tno=101;
  1. 认识NUll:
create table Teacher(
Tno integer Primary Key,
Tname char(6) not null,
Title char(6),
Dept char(10));
insert into Teacher
values
(901,'李华','讲师','计算机');
insert into Teacher
values
(902,'张丽','讲师','通信');
insert into Teacher
values
(903,'刘力伟','助教','计算机');
insert into Teacher
values
(904,'赵莺',null,'计算机');
insert into Teacher
values
(905,'张大军',null,null);
select * from teacher;
Select * from teacher where title is null;
select * from teacher where dept is not null;
  1. 外键1:
create table father_t
(Cno integer primary key,
 Cname char(10) not null,
 Credit numeric(3,1) );
insert into father_t
values
(1,'数据库',2);
insert into father_t
values
(2,'网络',3);
  1. 外键2:
create table son_t
(st_no integer primary key,
 fk_cno integer,
 grade integer,
 foreign key(fk_cno)
 references father_t(Cno));
insert into son_t
values
(101,2,86);
insert into son_t
values
(102,5,78);
  1. 查询(七):
select * from teacher;
select title,count(*) from teacher group by title ;
select title,count(*) from teacher group by title having count(*)>1;
  1. 触发器(建表):
create table Teacher(
Tno integer Primary Key,
Tname char(6) not null,
Title char(6),
Dept char(10));
insert into Teacher
values
(101,'李华','讲师','计算机');
insert into Teacher
values
(102,'张丽','讲师','通信');
insert into Teacher
values
(103,'刘力伟','助教','计算机');
insert into Teacher(Tno,Tname,Dept)
values
(104,'李春生','计算机');
insert into Teacher(Tno,Tname,Dept)
values
(105,'王华英','自动化');
create Table Course(
Cno integer not null,
Tno integer not null,
Cname char(10) not null,
credit numeric(3,1) not null,
Primary key(cno,tno));
insert into Course
values(1,101,'数据库',3.5);
insert into Course
values(1,103,'数据库',3.5);
insert into Course
values(2,102,'网络',3);
insert into Course
values(2,101,'网络',3);
insert into Course
values(3,103,'操作系统',3);
  1. 触发器(测试):
delete from teacher where tno=101; 
select * from teacher;
select * from course;
  1. 触发器2-oracle
create trigger trig_demo1
after delete on teacher
for each row
begin
  delete course
     where course.tno=:old.tno;
end;
  1. 触发器2-SQL Server 2000:
create trigger trig_demo1
  on teacher
   for delete
as
  delete course
    from course,deleted
        where course.tno=deleted.tno
  1. 触发器3(测试):
select * from teacher;
select * from course; 
update teacher
  set tno=110
where tno=103;
select * from teacher;
select * from course;
  1. 触发器3-oracle:
create trigger trig_demo2
   after update on teacher
   for each row
   begin
        update course
        set course.Tno=:new.Tno
     where course.Tno=:old.Tno;
   end;
  1. 触发器3-SQL Server 2000
create trigger trig_demo2
   on teacher
   for update
   as
   if update(Tno)
   begin
      Declare @old_Tno integer,@new_Tno integer
      select @old_Tno=Tno
         from deleted;
      select @new_Tno=Tno
         from inserted;
       update course
        set course.Tno=@new_Tno
     where course.Tno=@old_Tno;
   end;
  1. 事务(SQL Server 2000)
begin transaction
select * from teacher;
update teacher
  set title=null
     where tno=101;
select * from teacher;
rollback;
select * from teacher;
相关文章
|
4月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
2月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
276 8
|
7月前
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
5月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。
|
7月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
7月前
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
278 6
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
|
9月前
|
SQL 数据库
数据库数据恢复—SQL Server报错“错误 823”的数据恢复案例
SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份不可用,那么就需要通过专业手段对数据库进行数据恢复。
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。

推荐镜像

更多