SQL server (oracle)语句练习案例

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 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;
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
29天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
1月前
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
1月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
56 3
|
1月前
|
SQL Oracle 关系型数据库
Oracle SQL:了解执行计划和性能调优
Oracle SQL:了解执行计划和性能调优
53 1
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。
|
1月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
115 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。

推荐镜像

更多