MySQL数据库操作详解:从基础到完整性约束
版权申诉
116 浏览量
更新于2024-09-05
收藏 435KB PDF 举报
"Mysql数据库学习总结"
MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,广泛应用于Web应用程序开发和数据存储。以下是对MySQL数据库学习的详细总结:
一、数据库操作
1. 创建数据库
`CREATE DATABASE school;`
此命令用于创建名为'school'的数据库。在MySQL中,数据库名称一旦创建便不可更改。
2. 查看数据库
`SHOW CREATE DATABASE;` 或 `SHOW DATABASES;`
这两个命令用于查看已创建的数据库,`SHOW CREATE DATABASE`显示创建数据库的完整语句,而`SHOW DATABASES`仅列出数据库名。
3. 删除数据库
`DROP DATABASE;`
这个命令用于删除数据库,但需要指定要删除的数据库名称,如`DROP DATABASE school;`
二、表操作
1. 创建表
`CREATE TABLE student{ ... };`
这是创建名为'student'的表,其中包含字段定义,如`Id INT`, `Name VARCHAR(10)`, `Sex BOOLEAN`。
2. 显示所有表
`SHOW TABLES;`
此命令用于显示当前数据库中的所有表。
3. 描述表结构
`DESCRIBE student;`
这会显示表'student'的字段信息,包括字段名、数据类型、是否可为空、主键、默认值和额外信息。
4. 显示创建表的详细信息
`SHOW CREATE TABLE;`
用于查看创建表时的详细SQL语句。
5. 删除表
`DROP TABLE student;`
删除名为'student'的表。
三、完整性约束
完整性约束是确保数据准确性和一致性的规则。主要包括:
1. 主键约束
`PRIMARY KEY`
主键用于唯一标识表中的每一行,可以是单个字段,如`Id INT PRIMARY KEY`,也可以是多个字段的组合,如`PRIMARY KEY (id, course_id)`。
2. 外键约束
外键用于建立与其他表的关联,确保数据的一致性。例如,如果表A的'id'是外键,而表B的'id'是主键,则表B称为父表,表A称为子表。当父表中的记录被删除时,相关的子表记录也会被删除。
3. 非空约束
`NOT NULL`
这用于确保表中的字段值不能为空,如`Name VARCHAR(10) NOT NULL`。
4. 唯一性约束
`UNIQUE`
此约束确保表中特定字段的值是唯一的,如`UNIQUE (email)`。
5. 自动增长约束
`AUTO_INCREMENT`
此约束用于在新插入记录时自动生成唯一的ID,通常用于主键字段,如`Id INT AUTO_INCREMENT PRIMARY KEY`。
6. 默认值约束
`DEFAULT value`
这允许为字段设置默认值,如果在插入新记录时未指定该字段的值,系统会自动使用默认值。
四、修改表
`ALTER TABLE` 语句用于修改已有表的结构,包括:
1. 修改表名
`ALTER TABLE student RENAME person;`
这将'student'表重命名为'person'。
2. 修改字段数据类型
`ALTER TABLE person MODIFY name VARCHAR(20);`
此命令将'person'表中'name'字段的数据类型从VARCHAR(10)改为VARCHAR(20)。
通过这些基本操作和约束,可以有效地管理和维护MySQL数据库中的数据,确保数据的完整性和一致性。在实际应用中,还会涉及到索引、视图、触发器、存储过程等更高级的概念,这些都是MySQL数据库管理的重要组成部分。
2021-11-19 上传
2022-06-22 上传
2022-07-14 上传
2021-10-10 上传
2022-02-01 上传
2022-02-22 上传
2021-11-01 上传
liumeilin333
- 粉丝: 0
- 资源: 6万+
最新资源
- 国际象棋得分表:LaTeX模板,用于跟踪国际象棋游戏
- auto-win-vm-ad:使用Active Directory和证书服务自动创建Windows虚拟机
- lerning_music_AI:使用AI进行钢琴演奏的简单应用
- project-list:Chrome打包应用中支持node.js api的项目列表
- 课程设计 —— 基于 java swing 的火车购票系统.zip
- BackendEasyfood:墨西哥联邦储蓄银行联合发行的sql eo前端,美国联邦储蓄银行发行的信息处理程序
- Yukee-798.github.io:我的博客
- Redis-windows
- c代码-一个简单的repl生成
- convert-sep:为斯坦福哲学百科全书(SEP)条目生成书本样式的文档
- ColorTrackTabLayout
- business_plan_template:LaTeX中的业务计划模板
- Slice-of-a-Pizza:那个美味的比萨中最神奇的一块。
- apache-jmeter-5.1.1.zip
- 快乐草药微控制器
- 一个Java作业,纯控制台学生成绩信息管理系统.zip