sql 学习笔记 2

--------------第6章-------------------
--上机实验题---1---Use stsc
Go
Create View st_co_sr
As
Select Student.stno,stname,stsex,Score.cno,cname,grade from Student,Score,Course
Where Student.stno=Score.stno and Score.cno=Course.cno;
Go
Select * From st_co_sr;
--上机实验题---2---
Use stsc
Go
Create View st_computer
As
Select stname,cname,grade from Student,Course,Score
Where Student.stno=Score.stno and Score.cno=Course.cno and specialist=‘计算机‘;
Go
Select * from st_computer;
--上机实验题---3---
Go
Create View st_av
As
Select stname,AVG(grade) 平均分 from Student,Score
Where Student.stno=Score.stno
Group by stname;
Go
Select * from st_av;
--------------第7章-------------------
--上机实验题---1---
Use stsc
Go
--如果存在索引先删除它(没成功)
--If Exists(select object_name(object_id) tableName,name,type_desc from sys.indexes where name=‘tno‘)
--Drop Index Teacher.tno
--Else
Create Unique Clustered Index itno On Teacher(tno);--唯一聚集索引
--上机实验题---2---
Go
Create NonClustered Index icredit On Teacher(credit);--非聚集索引
Go
Alter Index icredit
On Teacher
Rebuild
With(Pad_Index=On,FillFactor=90)
Go
--------------第8章-------------------
--上机实验题---1---
Use stsc
--Alter table Score drop constraint CK_grade
Alter Table Score
Add Constraint CK_grade check(grade between 0 and 100);
--上机实验题---2---
Use stsc
Alter Table Student
Add Constraint DF_stsex Default(‘男‘) for stsex;
--上机实验题---3---
--删除
Alter table Student
drop constraint PK_stno;
--添加
Alter table Student
add constraint PK_stno Primary Key(stno);
--上机实验题---4---
Alter table Score
add constraint FK_stno foreign key(stno) references Student(stno);
--上机实验题---5---(没做出来)
--Declare @credit;
--Create Rule credit_rule
--As
[email protected] between 1 and 4;
--上机实验题---6---
Alter Table Teacher
add constraint school_dft Default(‘通信学院‘) for school;
--------------第9章-------------------
--上机实验题---1---
If Exists(select * from sysobjects where name=‘Score‘ and type=‘Table‘)
Drop Table Score;
--上机实验题---2---使用游标解决
Use stsc
Declare @stn char(8),@gr int,@cn char(16)
Declare CR_Rank Cursor
For (select stname,grade,cname From Student,Score,Course
Where Student.stno=Score.stno and Score.cno=Course.cno
group by stname,grade,cname)
Open CR_Rank
Fetch Next From CR_Rank Into @stn,@gr,@cn
print ‘姓名    分数 课程名‘
print ‘----------------------------------------------‘
While @@FETCH_STATUS=0--代表执行成功
Begin
if(@gr<60) print @stn+cast(@gr as char(8))[email protected]+‘不及格‘
else if(@gr<70) print @stn+cast(@gr as char(8))[email protected]+‘D‘
else if(@gr<80) print @stn+cast(@gr as char(8))[email protected]+‘C‘
else if(@gr<90) print @stn+cast(@gr as char(8))[email protected]+‘B‘
else print @stn+cast(@gr as char(8))[email protected]+‘A‘--非字符型要转换成字符型
Fetch Next From CR_Rank Into @stn,@gr,@cn
End
Close CR_RAnk
Deallocate CR_Rank;
--上机实验题---3---
Use stsc
GO
Create Function allcourse_Avg(@_tname char(8))
Returns @tn Table
(
_tname char(8),
_cname char(16),
average float
)
As
Begin
Insert @tn
Select tname,cname,AVG(grade) From Teacher,Course,Score
Where Teacher.tno=Course.tno and Course.cno=Score.cno and tname=@_tname
Group By tname,cname,grade
Return
End
GO
Select * From allcourse_Avg(‘刘林卓‘);
时间: 2024-10-17 10:45:19

sql 学习笔记 2的相关文章

Oracle之PL/SQL学习笔记

自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正. PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言. PL---Procedural Language. SQL—Structure QueryLanguage.PL/SQL包括过程化语句和SQL语句     PL/SQL的单位:块. 一个块中可以嵌套

SQL学习笔记:选取第N条记录

Northwind数据库,选取价格第二高的产品. 有两种方法,一个是用Row_Number()函数: SELECT productname FROM (SELECT TOP 2 productname, Row_Number() OVER (ORDER BY unitprice desc) AS rownum FROM Products) AS tbl WHERE rownum = 2; 另一种是对子语句的的结果再进行排序: SELECT top 1 productname FROM (SELE

Oracle之PL/SQL学习笔记之触发器

Oracle之PL/SQL学习笔记之触发器 触发器是许多关系数据库系统都提供的一项技术.在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行. 即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数.所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT. UPDATE及D

Oracle之PL/SQL学习笔记之数据类型(三)

Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到动态执行程序,同时也可以利用变量在PL/SQL内部进行值得传递,甚至可以把值传递出去,最终返回给用户,由此可见,变量是PL/SQL不可或缺的一部分. 1. Oracle预定义的普通数据类型(常见的数据类型) 类型 子类 说明 Oracle中的范围 char Character,String Rowi

SQL学习笔记&mdash;&mdash;导论

果然虽然不努力不一定成功但是放弃了就会很轻松--嗯,acm的道路就此走到头了,虽然可能后面会有点小插曲但是从此以后走向刷绩点的道路这是可以肯定的了. SQL的学习笔记是以数据库系统概念的英文原本为主题的整理和翻译,分为sql的使用类型和数据库概念的解析类型.sql的使用类型里一般会带有实例,数据库概念大概就是一些翻译和总结,大概一篇对应原书的20页吧,不过可能会有修改. 反正写了也没有人看啊233

sql学习笔记1

参考: 1.<SQL学习指南> 2.慕课网,SQL学习基础 提纲: 第二章 创建和使用数据库 2.1 创建MYSQL数据库 2.2 使用mysql命令行工具 2.3 MySQL数据类型 2.3.1 字符型数据 2.3.2 数值型数据 2.3.3 时间数据 2.4 表的创建 2.4.1 第一步:设计 2.4.2 第二步:精华 2.4.3 第三步:构建SQL方案语句 2.5 操作和修改表 2.5.1 插入数据 2.5.2 更新数据 2.5.3 删除数据 2.6 导致错误的语句 2.6.1 主键不唯

sql学习笔记2

<SQL学习指南>第9章 子查询 参考:leetcode 2 ---------------------- 9.1 啥是子查询 9.2 子查询的类型 基于结果集的类型:单行/单列,单行/多列,多行/多列 完全独立的(非关联子查询).引用包含语句中的列(关联查询) 9.3 非关联子查询 前面讲的都是非关联的,可以的单独执行而不需要引用包含语句中的任何的内容.我们遇到的大多数的子查询都是这种类型,但是更新或者 删除语句会经常遇到关联子查询. 另外一个特点,前面的子查询除了是非关联的外,返回的都是一

sql学习笔记(21)----------添加外键

最近在忙考试,比较烦!本人一见到考试就蒙圈了!完全大脑空白,不受控制,再加上变态监考老师,更别提有多痛苦了.还好,顺利完成了考试,抽出点空来学习一下MySQL和Oracle,发现点问题,好似很严重. 那么,我想问:  如果让你写SQL语句,添加外键,你会怎么写,如果这就是面试题,你该怎么写呢? 反正我是写不全,不能完全的写正确,平时我们都是是通过数据库的图形工具直接就可以操作主键和外键的设定,但是,如果动真格的去写一些SQL语句,似乎就很吃力了吧!所以我劝自己和读者,耐心点去写一些SQL语句,百

SQL学习笔记之数据库专题(二):Android下SQL数据库开发

在Android开发 中,数据库是不可缺少的.在Android开发中,用的是一种小型的嵌入式数据库,sqllite.今天会写两篇关于Android开发环境下数据库开发的文章,第一篇先介绍使用android自带的API来实现数据库的使用和管理以及增删改查.数据库升级的相关操作. 一.数据库第一次生成 1.javabean文件的准备 这里以一个Person类为例子来描述 package com.example.freedomsql.bean; import java.io.Serializable;

SQL学习笔记之数据库专题(四):浅谈JDBC用法

数据库厂商提供的用来操作数据库用的jar包就是数据库驱动.各个厂商如果提供各自的数据库驱动的话会导致开发人员学习成本太高,所以sun公司提供了一套数据库驱动应该遵循的接口规范,这套规范就叫做JDBC,本质上是很多的接口.简而言之,JDBC就是一套操作数据库的接口规范,由于所有的数据库驱动都遵循JDBC规范,我们在学习和使用数据库时只要学习JDBC中的接口就可以了. 组成JDBC的2个包:java.sql,javax.sql,开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实