SQL实验:创建与修改数据库及表结构
需积分: 5 79 浏览量
更新于2024-08-26
收藏 97KB DOC 举报
本实验主要涉及使用SQL语言进行数据库的创建、修改和管理,特别是针对MySQL数据库系统的操作。实验目标在于让学习者熟悉常见的数据库管理系统,掌握基础的SQL语句,包括建表、插入数据、更新数据和删除数据,以及进行表结构的定义、修改和删除。实验内容分为两部分,分别在SQL Server 2005环境下通过图形界面和SQL语句执行操作。
实验步骤详细说明如下:
1. 首先,实验要求删除一个名为“订货管理”的数据库,这可以通过使用`DROP DATABASE 数据库名`语句来完成,例如:`DROP DATABASE 订货管理`。
2. 数据库的“分离”与“附加”操作,是数据库管理中的常见任务。“分离”使数据库与服务器断开连接,但保留数据文件,可以使用SQL Server Management Studio中的图形界面进行操作;“附加”则是将已分离的数据文件重新连接到服务器,同样可通过图形界面或SQL语句(如`ATTACH DATABASE '数据库名' AS 新数据库名`)完成。
3. 查看系统中的所有数据库,可以使用`SELECT * FROM sys.databases` SQL查询。
4. 要查看数据库“订货”的定义信息,可以查询系统视图,如`EXEC sp_helpdb '订货'`。
5. 对数据库进行重命名,可以使用`ALTER DATABASE 当前数据库名 MODIFY NAME = 新数据库名`,例如:`ALTER DATABASE 订货 MODIFY NAME = order`。
接下来,实验进入创建“XSGL”数据库的环节,该数据库包含了三个表:学生信息(student)、课程信息(course)和选课信息(sc)。这些表的结构如下:
- student表:包含sno(学生编号,主键)、sname(学生姓名,不为空)、ssex(性别,默认值'男',取值'男'或'女')、sage(年龄,取值10-100)、sdept(专业名称)等字段。
- course表:包含cno(课程编号,主键)、cname(课程名称,唯一)、cpno(父课程编号)、credit(学分)等字段。
- sc表:包含sno(学生编号,主属性,外键)、cno(课程编号,主属性,外键)、grade(成绩,取值0-100)等字段。
在创建这些表时,可以使用`CREATE TABLE`语句,定义每个字段的名称、数据类型、长度和完整性约束,例如:
```sql
CREATE TABLE student (
sno CHAR(10) PRIMARY KEY,
sname CHAR(8) NOT NULL,
ssex CHAR(2) DEFAULT '男' CHECK (ssex IN ('男', '女')),
sage INT CHECK (sage BETWEEN 10 AND 100),
sdept VARCHAR(10)
);
```
对于数据的增、删、改操作,可以使用`INSERT INTO`、`UPDATE`和`DELETE`语句。例如,插入一条学生信息:
```sql
INSERT INTO student (sno, sname, ssex, sage, sdept) VALUES ('001', '张三', '男', 20, '计算机');
```
更新一条记录:
```sql
UPDATE student SET sage = 21 WHERE sno = '001';
```
删除一条记录:
```sql
DELETE FROM student WHERE sno = '001';
```
通过这样的实践,学习者能够深入理解SQL语言在数据库管理和数据操作中的应用,提升数据库管理技能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-07-15 上传
2022-06-12 上传
2022-06-03 上传
2022-12-01 上传
2013-05-21 上传
2021-10-07 上传
哎哎,,,
- 粉丝: 1
- 资源: 10
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析