实验一sql

sql 复制代码
CREATE DATABASE XSGL;
USE XSGL;
CREATE TABLE student (
sno CHAR(9) PRIMARY KEY,
ssex CHAR(2),
sname CHAR(10)UNIQUE NOT NULL,
sage INT(4),
sdept CHAR(5)
);
 
 CREATE TABLE course(
cno CHAR(4)PRIMARY KEY,
cname CHAR(40)Not NULL,
credit INT (4),
cpno CHAR(4)

);
 
 CREATE TABLE SC(
 sno CHAR(9),
 cno CHAR(4),
 grade FLOAT(5,1),
 FOREIGN KEY(sno)REFERENCES student(sno),
 FOREIGN KEY(cno)REFERENCES course (cno)
 );

DESC;
ALTER TABLE student ADD Phonenumber CHAR(11);

ALTER TABLE student DROP Phonenumber;
ALTER TABLE course ADD UNIQUE(cname);
DROP TABLE student CASCADE;
DROP TABLE course CASCADE;
DROP TABLE sc CASCADE;
DROP DATABASE XSGL;

实验一 认识DBMS,建立数据库、表

一、【实验目的】

1、认识DBMS,熟悉应用环境;

2、使用SQL数据定义语言(DDL)语句创建数据库库和基本表。

二、【实验基本要求】

1、理解并掌握数据定义语言DDL语法和各种参数的具体含义及使用方法,能够熟练地使用DDL语句来创建、修改和删除数据库模式和基本表;

2、掌握DDL语句常见语法错误及其调试方法。

三、【实验原理】

CREATE语句能创建数据库和数据表;ALTER TABLE语句能修改数据表的表名、数据类型、添加属性列、删除属性列;DROP语句能删除数据库和数据表;PRIMARY KEY 可对主键约束;FOREIGN KEY对外键约束;NOT NULL可对字段非空约束;UNIQUE可对字段属性值唯一约束。

四、【实验内容】

题目1:创建名为XSGL(学生管理)的数据库

题目2:在XSGL数据库下创建三个表:

分别为:

student:学生基本信息

course:课程信息表

sc:学生选课表

各表的结构分别如表1、表2和表3所示。

表1 学生信息表:student

|-------|------|----|---------|--------|
| 列名 | 数据类型 | 长度 | 是否允许为空值 | 含义 |
| sno | 字符型 | 9 | 否 | 学号(主键) |
| sname | 字符型 | 10 | 否 | 姓名(唯一) |
| ssex | 字符型 | 2 | 是 | 性别 |
| sage | 整数型 | 4 | 是 | 年龄 |
| sdept | 字符型 | 5 | 是 | 系别 |

表2 课程信息表:course

|--------|------|----|---------|---------|
| 列名 | 数据类型 | 长度 | 是否允许为空值 | 含义 |
| cno | 字符型 | 4 | 否 | 课程号(主键) |
| cname | 字符型 | 40 | 否 | 课程名 |
| credit | 整数型 | 4 | 是 | 学分 |
| cpno | 字符型 | 4 | 是 | 先修课(外键) |

表3 学生选课表:sc

|-------|------|-------|-----|---------|--------|
| 列名 | 数据类型 | 长度 | 小数位 | 是否允许为空值 | 含义 |
| sno | 字符型 | 9 | | 否 | 学号(外键) |
| cno | 字符型 | 4 | | 否 | 姓名(外键) |
| grade | 小数型 | 5(精度) | 1 | 是 | 成绩 |

练习:

1、向student表里添加"手机号"列Phonenumber,其数据类型为字符型。

2、删除新添加的属性列Phonenumber。

3、增加课程名称必须取唯一的约束条件。

4、依次删除所建的成绩表和数据库。

五、【主要实验仪器及设备】

计算机、MySQL

相关推荐
TDengine (老段)38 分钟前
TDengine 时间函数 WEEKDAY() 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)1 小时前
从 ETL 到 Agentic AI:工业数据管理变革与 TDengine IDMP 的治理之道
数据库·数据仓库·人工智能·物联网·时序数据库·etl·tdengine
LQ深蹲不写BUG3 小时前
MySql的事务机制
数据库·mysql
逼子格3 小时前
【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
数据库·单片机·嵌入式硬件·51单片机·proteus·定时器·硬件工程师
stein_java5 小时前
Mybatis-7 XML映射器
数据库·sql·mybatis
xhbh6665 小时前
开发效率翻倍:资深DBA都在用的MySQL客户端利器
数据库·mysql·数据库连接工具·mysql 连接工具
LJC_Superman5 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim
java水泥工5 小时前
校园管理系统|基于SpringBoot和Vue的校园管理系统(源码+数据库+文档)
数据库·vue.js·spring boot
高山有多高6 小时前
详解文件操作
c语言·开发语言·数据库·c++·算法