SQL语句创建学生信息数据库表的示例
- 格式:doc
- 大小:67.50 KB
- 文档页数:8
序号:云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:2015-2016学年第二学期任课教师:张云春专业:信息安全学号:20141120206 姓名:严鑫成绩:实验3使用SQL语句创建并管理数据库做删除或修改操作时,请注意备份数据库一、CAP数据库1、用T-SQL语句创建并管理数据库CAP:记录创建数据库的SQL语句。
CREATE DATABASE capon(name='cap',filename='d:\cap.mdf',size=5mb,maxsize=30mb,filegrowth=10%)log on(name='caplog',filename='d:\cap.ldf',size=5mb,maxsize=25mb,filegrowth=1mb)2、修改数据库:将“CAP数据库”的数据库最大容量更改为无限制(UNLIMITED),然后将“CAP数据库”的日志文件增长方式改为2MB。
记录SQL语句。
alter database capmodify file(name=cap,filename='d:\cap.mdf',maxsize=unlimited)alter database capmodify file(name=caplog,filename='d:\cap.ldf',filegrowth=2)3、用T-SQL语句在“CAP数据库”创建数据表,数据表的结构见教材。
记录创建表的SQL语句。
create table customers(cid char(10)not null,cname char(10)not null,city char(10)not null,discnt char(10)null,primary key(cid))create table agents(aid char(10)not null,aname char(10)not null,city char(10)not null,[percent]char(10)null,primary key(aid))create table products(pid char(10)not null, pname char(10)not null, city char(10)not null, quantity char(10)not null, price char(10)not null, primary key(pid))create table orders(ordno char(10)not null, [month]char(10)not null, cid char(10)not null,aid char(10)not null,pid char(10)not null,qty char(10)not null, dollars char(10)not null, primary key(ordno))4、向表中添加记录,使用Insert Into 语句分别向四张表中添加教材上的数据记录。
数据库创建表的sql语句SQL(StructuredQueryLanguage)是一种标准化的用于访问和处理数据库的语言,它创建、修改和删除表和数据库中的数据。
此外,SQL还可以执行其他复杂的数据库管理任务,如设置安全级别、获取表的统计信息等等。
SQL语句用于创建数据库表格,指定表格的字段(表头)及各字段的属性,以及索引等。
创建表格是必须要做的第一步,而创建表格的语句就是CREATE TABLE,下面我们就来更详细地介绍如何使用CREATE TABLE语句创建一个表格。
首先,在创建表格之前,需要先选择相应的数据库。
通过USE语句切换到指定的数据库:USE [database_name];接着,可以使用CREATE TABLE语句来创建表格,CREATE TABLE 语句可以根据你的需要自定义表的结构:CREATE TABLE [table_name] ( column1 datatype(size), column2 datatype(size), column3 datatype(size), .... )以上这段话引用的是Microsoft SQL Server文档中的CREATE TABLE语句的基本语法。
其中,table_name是指要创建的表格的表名,column1,column2,column3…分别表示表格中的字段,datatype指定每个字段的数据类型,size指定每个字段数据类型的最大长度(即可以存储的最大文本长度或者数字长度)。
例如,你可以创建一个名为“Students”的表,包含一些学生的基本信息,如姓名、年龄、成绩等,语句如下:CREATE TABLE Students(Name VARCHAR(50),Age INT,Grade FLOAT)在上面的例子中,要创建的表格名为“Students”,包含三个字段:Name(字符串类型,最大长度为50),Age(整型),Grade(浮点型)。
创建数据库表的语句
创建数据库表的语句是用来建立数据库表格的命令。
在SQL数据库中,有多种用于创建表的命令,其中最常用的是 CREATE TABLE 语句。
CREATE TABLE 语句包含表名、列名、数据类型等信息,用于定义表的基本结构。
CREATE TABLE 语句的语法如下:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
.....
);
其中,table_name 是新建表的名称,column 是表的列名,datatype 是数据类型。
可以使用以下命令来创建一个名为 students 的表:
CREATE TABLE students (
id int,
name varchar(255),
age int,
gender char(1)
);
这个语句将创建一个包含 id、name、age 和 gender 四个列的
表格。
其中,id 列的数据类型是整数型,name 列的数据类型是字符串型,长度为 255,age 列的数据类型是整数型,gender 列的数据类型是字符型,长度为 1。
当表格创建完成后,可以使用 INSERT INTO 语句向表格中添加数据,使用 SELECT 语句查询表格中的数据,使用 UPDATE 语句更新表格中的数据,使用 DELETE 语句删除表格中的数据。
实验4 SQL 语言——SELECT 查询操作1实实验验44 S S Q Q L L 语语言言————S S E E L L E E C C T T 查查询询操操作作实验示例实验示例中要使用包括如下三个表的“教学管理”数据库JXGL :(1)学生表Student ,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。
(2)课程表Course ,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。
(3)学生选课SC ,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。
1、在SQL SERVER 查询分析器或企业管理器(以具有相应操作权限的某用户登录)的SQL 操作窗口中执行如下命令创建数据库。
需要说明的是不同数据库系统其创建数据库的命令或方式有所不同。
CREATE DATABASE JXGL2、刷新数据库目录后,选择新出现的JXGL 数据库,在SQL 操作窗口中,创建Student 、SC 、Course 三表及表记录插入命令如下:Create Table Student( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno),Sname VARCHAR(20),Sage SMALLINT CHECK(Sage>=15 AND Sage<=45),Ssex CHAR(2) DEFAULT '男' CHECK (Ssex='男' OR Ssex='女'),Sdept CHAR(2));Create Table Course( Cno CHAR(2) NOT NULL PRIMARY KEY(Cno),Cname VARCHAR(20),Cpno CHAR(2),Ccredit SMALLINT);Create Table SC( Sno CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL,Grade SMALLINT CHECK ((Grade IS NULL) OR (Grade BETWEEN 0 AND 100)),PRIMARY KEY(Sno,Cno),数据库原理与应用实验指导2FOREIGN KEY(Cno) REFERENCES Course(Cno));INSERT INTO Student VALUES('98001','钱横',18,'男','CS');INSERT INTO Student VALUES('98002','王林',19,'女','CS');INSERT INTO Student VALUES('98003','李民',20,'男','IS');INSERT INTO Student VALUES('98004','赵三',16,'女','MA');INSERT INTO Course VALUES('1','数据库系统', '5',4);INSERT INTO Course VALUES('2','数学分析',null ,2);INSERT INTO Course VALUES('3','信息系统导论','1',3);INSERT INTO Course VALUES('4','操作系统原理','6',3);INSERT INTO Course VALUES('5','数据结构','7',4);INSERT INTO Course VALUES('6','数据处理基础',null,4);INSERT INTO Course VALUES('7','C 语言','6',3);INSERT INTO SC VALUES('98001','1',87);INSERT INTO SC VALUES('98001','2',67);INSERT INTO SC VALUES('98001','3',90);INSERT INTO SC VALUES('98002','2',95);INSERT INTO SC VALUES('98002','3',88);[例1] 查考试成绩大于等于90的学生的学号。
学生管理数据库
1. 创建学生管理数据库Student
使用T-SQL语言创建学生管理系统的数据库,物理文件存取路径:E:\STUDENT\,数据文件Student.mdf,初始大小为5MB,允许自动增长,最大为40MB;日志文件Student_log.ldf 初始大小为3MB,最大为30 MB。
2. 创建学生管理数据库Student中各个表
表1 学生信息数据表(Students)
表2 班级信息数据表(Classes)
表3 教师信息数据表(Teachers)
表4 教师-课程记录数据表(Teacher_course)
表5 课程信息数据表(Courses)
表6学生-课程记录数据表(Student_course)
3.为Student数据库中各表设置相应的约束,以确保Student数据库的数据完整性Student数据库的Students表约束
Student数据库的Classes表约束
Student数据库的Teachers表约束
Student数据库的Teacher_course表约束
Student数据库的Courses表约束
Student数据库的Student_course表约束
Student数据库的Students表数据
Student数据库的Classes表数据
Student数据库的Teachers表数据
Student数据库的Teacher_course表数据
Student数据库的Courses表数据
Student数据库的Student_course表数据。
使用stu中的student表1. 概述在数据库管理系统中,表是一种存储数据的结构,而学生表(student table)是其中一种常见的表。
学生表通常用于存储与学生相关的信息,例如学生的学号、姓名、年龄、性别、班级等。
在本文中,我们将探讨如何使用stu中的student表,以及如何对该表进行各种操作。
2. 创建表在使用stu中的student表之前,我们需要先创建该表。
为了创建学生表,我们需要定义表的结构和字段。
下面是一种常见的学生表的结构:字段名类型说明学号字符串主键,唯一值姓名字符串年龄整数性别字符串班级字符串通过使用SQL语句,我们可以在stu数据库中创建一个名为student的表,并定义以上字段。
创建表的SQL语句如下:CREATE TABLE student (学号 VARCHAR(10) PRIMARY KEY,姓名 VARCHAR(20),年龄 INT,性别 VARCHAR(2),班级 VARCHAR(10));3. 插入数据创建完学生表后,我们可以向表中插入学生的数据。
假设我们有四个学生的信息需要插入表中,他们的数据如下:学号姓名年龄性别班级学号姓名年龄性别班级1001 张三18 男一班1002 李四19 男二班1003 王五17 女三班1004 赵六20 男四班我们可以使用以下的SQL语句将以上数据插入学生表中:INSERT INTO student (学号, 姓名, 年龄, 性别, 班级)VALUES('1001', '张三', 18, '男', '一班'),('1002', '李四', 19, '男', '二班'),('1003', '王五', 17, '女', '三班'),('1004', '赵六', 20, '男', '四班');4. 查询数据在使用stu中的student表时,我们通常需要查询表中的数据以获取所需信息。
数据库创建表sql语句
创建数据库表的SQL语句通常遵循以下的格式:
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
...
columnN datatype constraint
);
其中,table_name是要创建的表的名称,column1, column2, ..., columnN是表的列名,datatype是列的数据类型,constraint是列的约束条件,如主键、外键、唯一性约束等。
下面是一个简单的例子,展示了如何使用SQL语句创建一个名为users的用户表:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
上述SQL语句创建了一个名为users的表,包含了id、name、age、email和created_at这几个列。
其中,id列被定义为主键
(PRIMARY KEY),name列不允许为空(NOT NULL),email列具有唯一性约束(UNIQUE),created_at列设置了默认值为当前时间戳(DEFAULT CURRENT_TIMESTAMP)。
请注意,实际创建数据库表的SQL语句会根据具体的需求和数据库管理系统的语法规则进行调整。
上述例子只是一个简单示例,您可以根据自己的需求和具体的数据库系统进行适当的修改。
sql语句中使用insert select语句创建表概述说明1. 引言1.1 概述本文旨在探讨如何在SQL语句中使用INSERT SELECT语句创建表。
INSERT SELECT语句是一种强大的功能,可以同时插入和选择数据,用于将查询结果插入到新创建的表中。
通过这种方式,我们能够方便地创建包含特定数据的表,并可以根据需要灵活选择要插入的字段。
1.2 文章结构本文将分为以下几个部分进行说明。
首先,我们会对INSERT SELECT语句进行概述,介绍其基本功能和用途。
然后,我们会详细讲解创建表的基本语法和用法示例,以帮助读者更好地理解如何使用该语句来创建表。
接着,我们还会介绍如何插入数据到新创建的表中,包括插入部分字段数据和插入全部字段数据两种情况。
此外,在文章的后半部分,我们还会针对一些可能遇到的错误提供解决方案,并列出使用INSERT SELECT语句创建表时需要注意的一些细节事项。
最后,在结论部分,我们将总结使用INSERT SELECT语句创建表的优势和适用场景,并展望其未来发展趋势。
1.3 目的通过本文的阐述,读者能够全面了解并掌握在SQL语句中使用INSERT SELECT 语句创建表的方法和技巧。
这将帮助读者在实际应用中更高效地创建表格、插入数据,并能够避免一些常见的错误。
同时,通过对使用INSERT SELECT语句创建表的优势和适用场景进行总结,读者还能够更好地评估其在实际项目中的应用价值,并为未来的发展做出合理的选择。
以上就是“1. 引言”部分的内容,请根据需要进行修改和完善。
2. SQL语句中使用INSERT SELECT语句创建表:2.1 INSERT SELECT语句的概述:在SQL中,可以使用INSERT SELECT语句将一张已有表中的数据插入到新创建的表中。
这种方法既能够创建一个新表,同时将源表的数据复制到新表中。
2.2 创建表的基本语法和用途:要使用INSERT SELECT语句创建新表并插入数据,需要按照以下基本语法进行操作:```sqlCREATE TABLE 新表名ASSELECT 列名1, 列名2, ...FROM 源表名;```这里,新建的表会包含与SELECT子句中指定列相同名称和数据类型的字段。
table 语句table语句是一种用于创建和管理数据库表的SQL语句。
下面列举了10个使用table语句的示例,以展示其在数据库中的应用。
1. 创建表:使用CREATE TABLE语句可以创建一个新的数据库表。
例如,CREATE TABLE students (id INT, name VARCHAR(50), age INT, grade VARCHAR(10));2. 添加列:使用ALTER TABLE语句可以向数据库表中添加新的列。
例如,ALTER TABLE students ADD COLUMN address VARCHAR(100);3. 修改列:使用ALTER TABLE语句可以修改数据库表中的列定义。
例如,ALTER TABLE students MODIFY COLUMN name VARCHAR(100);4. 删除列:使用ALTER TABLE语句可以从数据库表中删除列。
例如,ALTER TABLE students DROP COLUMN address;5. 添加主键:使用ALTER TABLE语句可以向数据库表中添加主键约束。
例如,ALTER TABLE students ADD PRIMARY KEY (id);6. 添加外键:使用ALTER TABLE语句可以向数据库表中添加外键约束。
例如,ALTER TABLE students ADD FOREIGN KEY (department_id) REFERENCES departments(id);7. 创建索引:使用CREATE INDEX语句可以在数据库表的列上创建索引,以提高查询性能。
例如,CREATE INDEX idx_name ONstudents (name);8. 删除索引:使用DROP INDEX语句可以删除数据库表的索引。
例如,DROP INDEX idx_name ON students;9. 修改表名:使用ALTER TABLE语句可以修改数据库表的名称。
sql 创建数据库语句创建数据库是SQL中非常重要的一部分,它是用来存储和管理数据的基础设施。
在SQL中,我们可以使用CREATE DATABASE语句来创建一个新的数据库。
下面是一些常用的创建数据库的SQL语句示例。
1. 创建一个名为"mydb"的数据库:```CREATE DATABASE mydb;```2. 创建一个名为"employees"的数据库,并指定字符集和排序规则:```CREATE DATABASE employeesCHARACTER SET utf8COLLATE utf8_general_ci;```3. 创建一个名为"sales"的数据库,并指定数据库文件的路径:```CREATE DATABASE salesDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciDATA DIRECTORY '/var/lib/mysql/data/sales'INDEX DIRECTORY '/var/lib/mysql/index/sales';```4. 创建一个名为"inventory"的数据库,并指定数据库文件的大小和增长方式:```CREATE DATABASE inventoryDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciDEFAULT TABLESPACE = innodb_file_per_tableMAXIMUM SIZE = 100MBAUTOEXTEND ON;```5. 创建一个名为"customers"的数据库,并指定数据库的备注和所有者:```CREATE DATABASE customersDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciCOMMENT 'This is the customer database'OWNER = myuser;```6. 创建一个名为"products"的数据库,并指定数据库的备份选项:```CREATE DATABASE productsDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciBACKUPDATA DIRECTORY '/var/lib/mysql/backup/products'INDEX DIRECTORY '/var/lib/mysql/backup/products';```7. 创建一个名为"orders"的数据库,并指定数据库的权限:```CREATE DATABASE ordersDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciGRANT ALL PRIVILEGES ON orders.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword';```8. 创建一个名为"suppliers"的数据库,并指定数据库的访问权限:```CREATE DATABASE suppliersDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciGRANT SELECT, INSERT, UPDATE, DELETE ON suppliers.* TO 'myuser'@'localhost'IDENTIFIED BY 'mypassword';```9. 创建一个名为"invoices"的数据库,并指定数据库的存储引擎:```CREATE DATABASE invoicesDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ciENGINE = InnoDB;```10. 创建一个名为"reports"的数据库,并指定数据库的字符集和排序规则:```CREATE DATABASE reportsDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ci;```以上是一些常见的创建数据库的SQL语句示例,可以根据具体的需求进行调整和修改。
创建数据库和表的SQL语句SQL常⽤语句:CREATE DATABASE 库名; 创建数据库DROP DATABASE 库名; 删除数据库USE 库名;(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" ORDER BY ⽤于对结果集进⾏排序sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" LIKE ⽤于在 WHERE ⼦句中搜索列中的指定模式。
sql="select * from 数据表 where 字段名 not like '%字段值%' order by 字段名 [desc]" NOT ⽤于在select数据时,查询不在哪⼀个数据范围的的记录sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" TOP ⽤于规定要返回的记录的数⽬。
sql="select * from 数据表 where 字段名 in ('值1','值2','值3')" IN 确定给定的值是否与⼦查询或列表中的值相匹配。
sql="select * from 数据表 where 字段名 between 值1 and 值2" BETWEEN ... AND... 会选取介于两个值之间的数据范围。
这些值可以是数值、⽂本或者⽇期。
(2) 更新数据记录:sql="update 数据表set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"sql="insert into ⽬标数据表 select * from 源数据表" (把源数据表的记录添加到⽬标数据表)(5) 数据记录统计函数:AVG(字段名) 得出⼀个表格栏平均值 SELECT AVG(column_name) FROM table_nameCOUNT(*¦字段名)对数据⾏数的统计或对某⼀栏有值的数据⾏数统计 SELECT COUNT(column_name) FROM table_nameMAX(字段名)取得⼀个表格栏最⼤的值 SELECT MAX(column_name) FROM table_nameMIN(字段名)取得⼀个表格栏最⼩的值 SELECT MIN(column_name) FROM table_nameSUM(字段名)把数据栏的值相加 SELECT SUM(column_name) FROM table_name(6) 数据表的建⽴和删除: 创建:CREATE TABLE 数据表(字段1 类型1(长度),字段2 类型2(长度) …… )例:CREATE TABLE classTab(name varchar(50),datetime default now())删除:DROP TABLE 数据表删除内容和定义,释放空间(清空表)TRUNCATE TABLE 数据表 删除内容、释放空间但不删除定义(清空表数据, 不能删除⾏数据)DELETE TABLE 数据表 删除内容不删除定义,不释放空间(系统⼀⾏⼀⾏地删,效率较truncate低)关于truncate的总结:truncate table 在功能上与不带 WHERE ⼦句的 delete语句相同:⼆者均删除表中的全部⾏。
SQLServer--实验1建⽴⼀个学⽣表1.要求sql servermajormno mnamestusno sname age sex mnocoucno cname ctime ccreditscmno mname1.'计算机科学与技术'2 '软件⼯程‘1 2 null黄⾊的称为主键---主键唯⼀且⾮空下划线表⽰外键---其他表出现的sql 语句使⽤sql server教程:2.建表建⽴⼀个学⽣数据库,查询建⽴好xueshengbiao数据库后其中会有⼀个表我们这⾥全采⽤编码的⽅式所以不⽤视图化先建⽴majorselect * from major查找建⽴stu 表--stu--sno sname age sex mnocreate table stu(sno int,sname varchar(30),age smallint,sex bit,mno int,primary key(sno),foreign key(mno) references major(mno))foreign 是外键 stu 的mno 外键【mno 来⾃ major 表中依次建⽴表全部代码如下:use xueshengbiao--major--mno mnamecreate table major(mno int ,mname varchar (20) ,primary key (mno))use xueshengbiao--major--mno mnamecreate table major(mno int ,mname varchar(20) ,primary key(mno))select*from major;--stu--sno sname age sex mnocreate table stu(sno int,sname varchar(30),age smallint,sex bit,mno int,primary key(sno),foreign key(mno) references major(mno))select*from stu;--cou--cou cname ctime ccreditcreate table cou(cno int ,cname varchar(30),ctime smallint,ccredit decimal(4,2)primary key(cno))--sc--sno cno gradecreate table sc(sno int,cno int,grade decimal(5,2)primary key(sno,cno)foreign key(sno) references stu(sno))--对sc表添加⼀个外键alter table sc add constraint fk_sc foreign key(cno) references cou(cno)。
数据库原理—数据库原理与应用实验指导书目录实验一 SQLSERVER 2000的安装 (3)实验二数据库及表的定义 (16)实验三数据插入、删除、与更新 (19)实验四数据查询 (22)实验五视图的定义和使用 (24)实验六数据完整性 (25)实验七存储过程的使用 (26)实验八事务的使用 (27)实验九安全性管理 (29)实验十数据库设计 (31)实验一 SQLSERVER 2000的安装仅连接Microsoft Windows NT 4.0、Windows 2000(所有版本)、Windows Me、Windows 98 和 Windows 95。
2.SQL SERVER 2000的安装(1)将企业版安装光盘插入光驱后,出现以下提示框。
注意:如果您的计算机的操作系统是windows 95以上,则选择“安装SQL Server 2000 组件”,如果操作系统是windows 95,则需要选择“安装SQL Server 2000的先决条件”。
由于SQL Server 2000 的某些功能要求在Microsoft Windows 2000 Server以上的版本才能运行。
因此安装Windows Server 2000(建议为Advanced版本),可以学习和使用到SQL Server 2000的更多功能,以及享受更好的性能。
本安装将在Windows 2000 Advanced Server操作系统作为示例,详细介绍安装SQL Server 2000企业版的过程。
大家清首先安装Windows 2000 Advanced Server。
(2)选择 "安装 SQL Server 2000 组件",出现下一个页面。
(3)选择 "安装数据库服务器",出现如下界面:(4)选择"下一步",出现如下界面:(5)选择’本地计算机’(默认)选项,选择"下一步",出现如下界面:在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。
用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构Create table Student(Sno varchar(7) primary key,Sname varchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage between 15 and 45),Sdept varchar(20) default(‘计算机系’))Course表结构Create table course(Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int check(Sctedit>0),Semester int check(Semester>0),Period int check(Period>0))SC表结构Create table SC(Sno varchar(7) foreign key references student(Sno),Cno varchar(10) foreign key references course(Cno),Grade int check(Grade between 0 and 100),Primary key (Sno,Cno))1.查询学生选课表中的全部数据。
SELECT *FROM SCgo2.查询计算机系学生的姓名、年龄。
Select Sname,SageFrom StudentWhere Sdept=’计算机系’3.查询成绩在70~80分之间的学生的学号、课程号和成绩。
Select Sno,Cno,GradeFrom Course,ScWhere o=o and sc.Grade between 70 and 804.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名和年龄。
Select Sname,SageFrom StudentWhere Sage between 18 and 20 and Ssex=’男’and Sdept=’计算机系’go5.查询课程号为“C01”的课程的最高分数。
Select top 1 Grade select max(Grade) as 最高分From Sc from ScWhere Cno=’C01’ where Cno=’C01’Order by Grade desc order by Grade desc6.查询计算机系学生的最大年龄和最小年龄。
Select max(Sage) as 年龄最大,min(Sage) as 年龄最小From StudentWhere Sdept=’计算机系’7.统计每个系的学生人数。
Select count(Sdept) as 学生人数,SdeptFrom StudentGroup by Sdept8.统计每门课程的选课人数和考试最高分。
Select count(Sno) as选课人数,c.Sno,max(Grade) as最高分From Course c left join Sc s on o=oGroup by o9.统计每个学生的选课门数和考试平均成绩,并按学号的升序显示结果。
Select sno,avg(grade) as ’平均成绩’,count (cno) as ’选课门数’From scGroup by snoOrder by sno10.查询总成绩超过200分的学生,要求列出学号、总成绩。
Select sno,sum(grade)From scGroup by snoHaving sum(grade)>20011.查询选修了课程“C02”的学生的姓名和所在系。
Select sname,sdeptFrom student s1,sc s2Where s1.sno=s2.sno and o=’c02’12.查询成绩在80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。
Select s1.sname,o,s2.gradeFrom student s1,sc s2Where s1.sno=s2.sno and grade >80Order by grade desc13.查询哪些课程没有人选修、要求列出课程号和课程名。
Select o,ameFrom course c left join sc s on o=oGroup by o,ameHaving count(s.sno)=014.用子查询实现如下查询:(1)查询选修了课程“C01”的学生的姓名和所在系。
Select sname,sdept ,snoFrom studentWhere sno in (Select snoFrom scWhere cno=’c01’)(2)查询信息系成绩在80分以上的学生的学号、姓名。
Select sno,snameFrom studentWhere sdept=’外语系’and sno in(Select snoFrom scWhere grade>80)(3)查询计算机系考试成绩最高的学生的姓名。
Select s1.sname from studentsWhere sdept=’计算机系’ and sno in(select sno from scWhere grade in(select max(Grade)from sc))15.删除选课成绩小于50分的学生的选课记录。
Delete from scWhere grade<70Select* from sc—验证16.将所有选修了课程“C01”的学生的成绩加10分:Update scSet grade=grade+10Where cno=’c01’17.将计算机系所有选修了课程“计算机文化基础”课程的学生的成绩加10分。
Select*from scUpdate scSet grade=grade+10Where cno in(select cno from courseWhere cname=’计算机文化基础’)18.创建查询学生的学号、姓名、所在系、课程号、课程名、课程学分的视图。
Select* from courseSelect* from studentsSelect* from scCreate view 学生基本信息AsSelect students.sno,sname,sdept,o,cname,ccreditFrom course,sc,studentsWhere o=oAnd o=students.sno19.创建查询每个学生的平均成绩的视图,要求列出学生学号及平均成绩。
Create view s_avgAsSelect sno,avg(Grade)as 平均成绩 from scGroup by sno20.创建查询每个学生的选课学分的视图,要求列出学生学号及总学分。
Create view s_scAsSelect students.sno,sum(ccredit)as 总学分 fromStudents,sc,courseWhere students.sno=sc.snoAnd o=oGroup by students.sno21.用SQL语句创建一个名为f_1的函数,该函数能够求出3到100之间的所有素数之和。
Create function f_1()Returns intAsBeginDeclare @a int,@b int,@i int,@sum intSet @i=3Set @sum=0While @i<101BeginSet @b=0While @a<=@i/2BeginIf @i%@a=0BeginSet @b=1BreakEndSet @a=@a+1EndIf @b=0 --@b为0说明之前没有比@i小的数字可以把@i整除BeginSet @sum=@sum+@iEndSet @i=@i+1EndReturn @sumEndGoSelect dbo.f_1()22.用SQL语句创建一个名为f_2的函数,该函数能够求出任意两个数的最大值。
Create function f_2(@x1 int,@x2 int)returns intAsBeginDeclare @max intIf @x1>@x2Return @maxEndSelect dbo.f_2(2,6)23.用SQL语句创建一个名为pro_get_stu_information的存储过程,该存储过程能够根据用户指定的Sno(学号)求出与该学号对应的学生姓名、课程名、成绩。
Create procedure pro_get_stu_information @m char(6) outputAsSelect sname,cname,grade from students,sc,courseWhere students.sno=sc.sno and o=o and sc.sno=@mExec pro_get_stu_information’0603002’24.为“学生”表创建一个依赖于“学号”的唯一的、非聚集的索引Create unique nonclustered index stu_int on students(sno)25.通过游标逐行读取“学生”表的记录Declare stu_cur cursor forSelect * from students for read onlyOpen stu_curFetch stu_curClose stu_curDeallocate stu_cur。