SQL语言操作示例练习
设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:
学生(学号,姓名,性别,年龄,所在系);
课程(课程号,课程名,先行课);
选课(学号,课程号,成绩)。
一、数据库创建操作
【练习之1-1】:使用SQL命令创建一个包含一个数据文件和一个事务日志文件的数据库。库文件名和数据文件逻辑名均为教学管理数据库,物理文件名为教学管理数据库.mdf,存储在D盘根目录中,该数据库主数据文件是教学管理数据库,初始大小8MB,最大尺寸80MB,以10%的速度增长。事务日志文件逻辑名为Book_log,物理文件名为教学管理数据库 _log.ldf,初始大小1MB,最大尺寸20MB,以20%的速度增长。操作示例如下:
CREATE DATABASE 教学管理数据库
ON
  PRIMARY (NAME= 教学管理数据库
  FILENAME='D:\ 教学管理数据库.mdf', 
  SIZE=8MB,           
  MAXSIZE=80MB, 
  FILEGROWTH=10%) 
LOG ON 
(NAME=教学管理数据库_log,
  FILENAME='D:\ 教学管理数据库_log.ldf',
  SIZE=1MB,
  MAXSIZE=20MB,
  FILEGROWTH=20%)
【练习之1-2】修改数据库
alter database 教学管理数据库
add file
    (name=教学管理数据库_data2,
      filename='d: \ 教学管理数据库2.mdf',
      size=10mb,
      maxsize=20mb,
    filegrowth=20%)
【练习之1-3】删除数据库
use master
drop database \ 教学管理数据库
go
二、数据表的创建操作
create table
【练习之2-1】:使用SQL命令,在“教学管理数据库”下面创建三个数据表。
“学生”表结构
字段名及说明
数据类型
宽度
说明
学号
字符型
7
主键
姓名
字符型
8
非空
性别
字符型
2
年龄
整形
班级
字符型
10
专业
字符型
10
“课程”表结构
字段名及说明
数据类型
宽度
说明
课程号
字符型
10
主键
课程名
字符型
20
非空
学时数
整形
                                  “选课”表结构
字段名及说明
数据类型
宽度
说明
学号
字符型
7
主键,引用Student的外键
课程号
字符型
10
主键,引用Course的外键
成绩
整形
“学生”表
use 教学管理数据库
Create table 学生
  (
  学号 char(7) not null,
  姓名 char(8) not null,
  性别 char(2),
  年龄 int,
  班级 char(10),
  专业 char(10)
  PRIMARY KEY(学号)
)
“课程”表
use 教学管理数据库
Create table 课程
  (
  课程号 char (10) not null,
  课程名 char(20) not null,
  学时数 int,
  PRIMARY KEY(课程号)
)
“选课”表,
use 教学管理数据库
create table 选课
  (
  学号 char(7) not null,
  课程号 char(10) not null,
  成绩 int,  PRIMARY KEY(学号,课程号),
CHECK(成绩>=0 AND 成绩<=100)
)
【练习之2-1】给课程表增加“先修课程”字段。
use 教学管理数据库
alter table 课程add 先修课程char(20)
【练习之2-2】“选课表”的“成绩”列中添加一个未经验证的 CHECK 约束(0<=成绩<=100)
use 教学管理数据库
ALTER TABLE 选课WITH NOCHECK
ADD CONSTRAINT 选课_check CHECK (成绩>=0 and 成绩<=100)
【练习之2-3】删除表:
Drop  table  <表名>
三、数据记录添加
【练习之3】:使用SQL语句添加数据。
(1)SQL命令格式:
INSERT INTO [教学管理数据库].[dbo].[学生]
          ([学号]
          ,[姓名]
          ,[性别]
          ,[年龄]
          ,[班级]
          ,[专业])
    VALUES
          (<学号,增加字段的sql语句 char(7),>
          ,<姓名, nchar(10),>
          ,<性别, char(2),>
          ,<年龄, int,>
          ,<班级, nchar(10),>
          ,<专业, nchar(10),>)
(2)操作示例
插入记录
use 教学管理数据库
insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','沈红兵','男',22,'计算机','软件工程')
insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','何雪娟','女',21,'经济','市场营销')
insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','狄晓雷','女',22,'计算机','计算机应用')
insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','刘军','男',20,'计算机','计算机应用')
insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','徐丽','女',20,'计算机','计算机应用')
插入课程数据记录
use 学生管理数据库
insert into 课程(课程号,课程名,学时数)  values('1','数据结构',54)
insert into 课程(课程号,课程名,学时数)  values('2','操作系统',51)
insert into 课程(课程号,课程名,学时数)  values('3','软件工程',33)
insert into 课程(课程号,课程名,学时数)  values('4','接口与通讯',51)
插入选课数据记录
use 学生管理数据库
insert into 选课(学号,课程号,成绩)  values('','1',84)
insert into 选课(学号,课程号,成绩)  values('','4',76)
insert into 选课(学号,课程号,成绩)  values('','2',91)
insert into 选课(学号,课程号,成绩)  values('','2',81)
insert into 选课(学号,课程号,成绩)  values('','3',69)
insert into 选课(学号,课程号,成绩)  values('','1',73)
insert into 选课(学号,课程号,成绩)  values('','4',80)
insert into 选课(学号,课程号,成绩)  values('','1',74)
insert into 选课(学号,课程号,成绩)  values('','3',77)
【练习之4】:在将“学生”表中的所有学生的年龄增加1岁。
打开查询分析器,选择“学生管理数据库”,输入如下SQL语句,并执行:
UPDATE 学生 set 年龄=年龄+1
四、数据查询操作
【练习之5】 查询学生的全部信息。
    SELECT * FROM 学生
用‘ * ’表示学生表的全部列名,而不必逐一列出。
【练习之6】:查询全体学生的学号、姓名和年龄。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。