SQL入门随笔(上机实验报告)

<数据定义部分>

一.定义模式和删除模式

a.为用户定义一个模式学生—课程模式 S-T

CREATE  SCHEMA  "S-T"  AUTHORIZATION USER;

b.删除模式

DROP SCHEMA USER;

二.表的定义

a.建立一个“学生”表 Student

CREATE TABLE Student

(Sno  char(9)   PRIMARY KEY,

Sname  char(20)  UNIQUE,

Ssex      char(2),

Sage     SMALLINT,

Sdept   char(20)

)

b.建立一个“课程”表 Course

CREATE  TABLE Course(

Cno  char(4)  PRIMARY KEY,

Cname  char(40)   NOT NULL,

Cpno     char(4),

Ccredit  SMALLINT,

FOREIGN KEY (Cpno)  REFERENNCES  Course(Cno)

)

c.建立学生选课表 SC

CREATE TABLE SC(

Sno  char(9)  ,

Cno  char(4),

Grade  SMALLINT,

PRIMARY  KEY(Sno,Cno),

FOREIGN KEY (Sno) REFERENCES Student(Sno),

FOREIGN  KEY(Cno) REFERENCES Course(Cno)

)

Student表


学号

Sno


姓名

Sname


性别

 Ssex


年龄

 Sage


所在系

 Sdept


201215121


李勇



20


CS


201215122


刘晨



19


CS


201215123


王敏



18


MA


201215125


张立



19


IS


Sno


 课程号

  Cno


  成绩

    Grade


201215121


1


 92


201215121 


2


85


201215121 


3


88


201215122


2


90


201215122


3

  • 80

SC表


课程号

Cno


课程名

Cname


先行课

Cpno


学分

Ccredit


1


数据库


5


4


2


数学

 
2


3


信息系统


1


4


4


操作系统


6


3


5


数据结构


7


4


6


数据处理

 
2


7


PASCAL语言


6


4

Course表

二.删除基本表Student

DROP   TABLE  Student

三.修改基本表

a.向Student表中增加“入学时间”列,其数据类型为日期型。

ALTER  TABLE Student ADD S_entrance  DATE

b.将年龄的数据类型由字符型修改为整形

ALTER TABLE Student ALTER COLUMN  Sage INT

<数据查询>

一.单表查询

1.查询全体学生的学号与姓名

SELECT Sno,Sname FROM Student

2.查询全体学生的姓名、学号、所在系

SELECT Sname,Sno,Sdept FROM Student

3.查询全体学生的详细记录

SELECT * FROM Student

4. 查全体学生的姓名及其出生年份

SELECT Sname,2019-Sage FROM  Student

5.查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名

SELECT Sname,2019-Sage,LOWER(Sdept)   FROM Student

6.查询选修了课程的学生学号

SELECT  DISTINCT Sno FROM  SC

7.查询计算机科学系全体学生的名单

SELECT * FROM Student

    WHERE Sdept = ‘CS‘

8.查询所有年龄在20岁以下的学生姓名及其年龄

SELECT Sname,Sage FROM Student

     WHERE  Sage<20

9.查询考试成绩有不及格的学生的学号

SELECT Sno FROM SC

    WHERE  Grade<60

10.查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄

SELECT Sname ,Sdept,Sage  FROM Student

待更新···

原文地址:https://www.cnblogs.com/spiderljx/p/10765214.html

时间: 2024-11-13 04:29:12

SQL入门随笔(上机实验报告)的相关文章

微机接口技术与汇编语言上机实验报告_汇编初步(intel8086)

实验环境:intel x386 一.要求:将3000H单元开始置数为00H-0FH SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE, SS:SSTACK START: PUSH DS XOR AX, AX MOV DS, AX MOV SI, 3000H MOV CX, 16 AA1: MOV [SI], AL INC SI INC AL LOOP AA1 ;CX == 0? NEXT():AA1

软件测试上机实验报告

Tasks: Install Junit(4.12), Hamcrest(1.3) with Eclipse Install Eclemma with Eclipse Write a java program for the triangle problem and test the program with Junit. 实验过程: 1. 从办公网上下载junit-4.12.jar和hamcrest-all-1.3.jar包,并通过build path导入. 2. 下载Eclemma并安装,H

第五章上机实验报告

1.     实践题目及问题描述 工作分配问题:n件工作分配给n个人,为每一个人都分配1 件不同的工作,工作i分配给第j个人所需的费用为cij,设计一个算法,使总费用最小. 2.     算法描述 (1)     解空间 {<x11,x12-x1n>,<x21,x22-x2n>--<xn1,xn2-xnn>} 其中 <x11,x12-x1n>!=<x21,x22-x2n>!=-!= <xn1,xn2-xnn> (2)     解空间树

算法第二章上机实验报告

1.实践题目 7-1 二分查找 (20 分) 输入n值(1<=n<=1000).n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数.若x不存在,输出-1和比较次数. 输入格式: 输入共三行:第一行是n值:第二行是n个整数:第三行是x值. 输出格式: 输出x所在的下标(0~n-1)及比较次数.若x不存在,输出-1和比较次数. 输入样例: 4 1 2 3 4 1 输出样例: 0 2 2.问题描述 本道题是让我们输入非降序排列的整数,也就是说是排好

算法第二章实践上机实验报告

题目:二分法查找 问题描述:用二分法查找x,找到时输出x的下标和比较次数:找不到时输出-1和比较次数. 算法语言描述: 输入数组和要查找的数x 算法描述:将一个数组分为两半,设置一个中间量a[mid]与要查找的数x比较,设置一个变量表示比较次数cnt,每次比较后cnt+1.若相等则说明中间值是要找的数,输出中间值和比较次数.若a[mid]小于x,则在数组右边继续查找,若a[mid]大于x,则在数组左边继续查找.找不到则输出-1和查找次数. 代码实现: #include <iostream> u

第二章上机实验报告

1.实践题目:7-1 2.问题描述:使用二分查找算法在n个非降序排列的整数中查找x,输出x所在的下标(0~n-1)及比较次数.若x不存在,输出-1和比较次数. 3.算法描述:将n个元素分成个数大致相同的两半,取a[mid]与x比较.如果x=a[mid],则找到x,算法终止:如果x<a[mid],则只在数组a的左半部继续查找x,如果x>a[mid],则只在a的右半部继续搜索x.同时,在while语句里加一个b统计比较次数. 4.代码如下: 1 #include<iostream> 2

算法第三章上机实验报告

1.实践题目 7-2 最大子段和 2.问题描述 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的子段和的最大值.当所给的整数均为负数时,定义子段和为0. 要求算法的时间复杂度为O(n). 3.算法描述 首先将数据保存到一个数组内,然后建立一个循环来遍历这些数组,定义一个sum来保存和,定义一个max来保存最大值,对于每次遍历的结果x,如果sum为负,则将sum的值更改为x,并与max做对比,若比max大则将sum的值

算法第四章上机实验报告

题目:删数问题 问题描述:输入一个正整数a和一个正整数k(k≤n ),在n位正整数a中去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新 的正整数. 算法描述:从前往后进行比较,删掉升序的最后那个数,若一直保持升序,则删掉最后一位数,重复k次,删掉k个数 时间复杂度:该算法主要进行了k次的for循环,每次循环的时间复杂度是o(n),故其时间复杂度为o(n) 空间复杂度:该算法不需要额外的数组或变量来存放数据,故其空间复杂度为o(1) 心得体会:在做题的时候还要再细心一点,特别对于一些小细节

Java上机实验报告(1)

一.任务简要描述 1.实现Java版本的快速排序. 2.编写一个学生和教师数据输入和显示程序,学生数据有编号.姓名.班号和成绩,教师数据有编号.姓名.职称和部门.要求将编号.姓名输入和显示设计成一个类Person,并作为学生数据操作类Student 和教师数据操作类Teacher 的基类. 3.请设计 3 个类 , 分别是学生类 Student, 本科生类Undergaduate, 研究生类 Postgraduate, 其中 Student 类是一个抽象类 , 它包含一些基本的学生信息如姓名.所