
MySQL数据库操作与联合主键详解
下载需积分: 0 | 57KB |
更新于2024-08-15
| 192 浏览量 | 举报
收藏
"这篇文档主要介绍了MySQL中的联合主键概念,并涵盖了数据库的基本操作、SQL语句的分类、数据类型、范式理论以及表约束。同时,给出了学生表、班级表和分数表的示例,强调了联合主键在确保数据完整性和一致性中的作用。"
在MySQL数据库中,联合主键是一个由两个或更多列组成的复合键,用于唯一标识表中的每一行。例如,在描述中提到的"Primary key(sno, cno)"就是一个联合主键,它由学号sno和课程号cno共同构成,确保了每条记录的唯一性。在设计数据库表结构时,当单一列无法满足唯一性要求时,可以使用联合主键。
数据库操作方面,可以通过以下命令进行基本的MySQL交互:
1. 登录数据库:`mysql –u用户名–p密码`
2. 执行SQL文件:`source.sql文件绝对路径`
3. 查看所有数据库:`Show databases;`
4. 创建数据库:`Create database 数据库名;`
5. 删除数据库:`Drop database 数据库名;`
6. 进入指定数据库:`Use 数据库名;`
7. 查看所有表:`Show tables;`
8. 查看表结构:`Desc 表名;`
9. 创建表:使用`Create table`语句,定义列及约束。
10. 删除表:`Drop table;`
11. 修改表:`Alter table;`
SQL语句主要分为三类:
1. DDL(Data Definition Language)数据定义语言,用于创建、修改和删除数据库对象如表、视图等。
2. DML(Data Manipulation Language)数据操纵语言,用于插入、更新、删除数据。
3. DCL(Data Control Language)数据控制语言,用于权限管理,如`grant`和`revoke`。
数据类型包括:
1. `Bigint`:长整型
2. `Varchar(int)`:可变长度字符型,括号内的int表示最大长度
3. `Double`:浮点型
4. `Date`:日期类型,如`current_date`
5. `Time`:时间类型,如`current_time`
6. `Timestamp`:时间戳类型,如`current_timestamp`
范式理论是数据库设计的基础,主要包括:
1. 第一范式(1NF):确保每一列都是不可再分的基本数据项,无重复数据。
2. 第二范式(2NF):在1NF的基础上,非主属性完全依赖于主键。
3. 第三范式(3NF):在2NF基础上,消除非主属性对主键的传递依赖。
表约束用于保证数据的完整性和一致性:
1. 主键(`primary key`):确保每行的唯一性,实现实体完整性。
2. 外键(`foreign key (FK)`):建立表间关系,实现参照完整性。
3. 唯一约束(`unique (UK)`):确保列中的值唯一。
4. 非空约束(`not null`):确保列的值不为空。
5. 检查约束(`check`):限制列的值必须满足特定条件。
根据描述,创建的数据库exam包含学生表、课程表和分数表,其中学生表的结构如下:
- 学号(sno,主键,唯一)
- 姓名(sname,字符型,非空)
- 地址(address,字符型)
- 出生日期(birthdate,日期型,非空,小于当前日期)
- 总分(total_score,浮点型)
- 班级编号(class_no,字符型,外键,参照班级表的班级编号)
班级表的结构如下:
- 班级编号(class_no,主键,唯一,非空)
- 班级名称(class_name,唯一,非空)
分数表的结构如下:
- 学号(sno)
- 课程号(cno)
- 分数(score)
最后,将建表语句保存到`.sql`文件中,通过源代码执行导入数据库。联合主键在这里的作用是确保学生和课程的组合具有唯一性,防止出现重复记录。
相关推荐











速本
- 粉丝: 28
最新资源
- 大学生自创计算器程序:VC++/VS2005作品回顾
- 电信E8业务网时计算器:实时计时与余量查询
- 组合数学课后习题详尽解答
- VC++源码实现鼠标控件启用与禁用技巧
- 软件设计师考试下午科目辅导资料
- 51单片机C语言编程实践:配套光盘指南
- 深入了解SCO Unix操作系统及其文档
- C# 二维码生成与解码源码分享
- WTL版本更新历史:7.0至8.0版本特性解析
- MFC校园导航系统实现与最短路径算法应用
- JAVA开发的聊天室程序应用与程序员指南
- JAVA开发实现双向聊天功能的小软件
- 打造高效销售:大型超市管理系统优化策略
- C#编程实践:100个实用源码案例解析
- CLISP 2.43:Lisp编译软件详解
- 构建奥运主题的Ajax留言板网站应用
- 华为路由器模拟器使用教程与功能介绍
- JSP源码开发的网上电子商店系统设计
- JDOM类库操作XML文件教程详解
- Delphi编程实现删除电脑文件的方法
- 第二版复变函数与积分变换习题答案详解
- 探索计算机领域十大先进算法及论文研究
- Setup Factory 7.0使用教程与打包工具说明
- JAVA开发的人事财务管理系统详细教程