MySQL数据库操作与SQL语句分类详解
需积分: 0 142 浏览量
更新于2024-08-15
收藏 57KB PPT 举报
"SQL语句的分类-mysql总结文档"
在SQL中,主要分为三类语句:DDL(Data Definition Language)、DML(Data Manipulation Language)和DCL(Data Control Language)。这些语句分别用于数据库的定义、操作和控制。
**DDL (数据定义语言)**
DDL主要用于创建和修改数据库中的对象,如表格、视图、索引等。在MySQL中,常见的DDL语句包括:
1. **创建表** - `CREATE TABLE` 语句用于创建新的表,例如:
```sql
CREATE TABLE Student (
sno BIGINT PRIMARY KEY,
sname VARCHAR(8) NOT NULL,
address VARCHAR(255),
birth DATE NOT NULL CHECK (birth < CURRENT_DATE),
total_score DOUBLE,
class_id CHAR(10) REFERENCES Class(class_id)
);
```
2. **数据类型** - 包括 `BIGINT`(长整型)、`VARCHAR(int)`(可变长度字符)、`DOUBLE`(浮点型)、`DATE`、`TIME` 和 `TIMESTAMP`(日期和时间戳)等。
3. **范式** - 数据库设计遵循不同的范式,如第一范式(每个字段不可再分)、第二范式(非主键列完全依赖于主键)和第三范式(不存在传递依赖),以确保数据的一致性和减少冗余。
4. **表约束** - 主键(`PRIMARY KEY`)、外键(`FOREIGN KEY`)、唯一约束(`UNIQUE`)、非空约束(`NOT NULL`)和检查约束(`CHECK`)用于确保数据的完整性和一致性。
**DML (数据操纵语言)**
DML语句用于插入、更新、删除和查询数据。常见的DML语句包括:
1. **插入数据** - `INSERT INTO` 用于向表中添加新记录。
2. **更新数据** - `UPDATE` 用于修改现有记录。
3. **删除数据** - `DELETE FROM` 用于从表中删除记录。
4. **查询数据** - `SELECT` 是最常用的DML语句,用于检索数据。
**DCL (数据控制语言)**
DCL语句用于管理数据库的安全性和访问权限,如:
1. **授权** - `GRANT` 用于赋予用户特定的数据库权限。
2. **撤销权限** - `REVOKE` 用于取消用户的某些权限。
**MySQL操作**
在MySQL中,可以使用以下命令进行基本的数据库操作:
1. **登录数据库** - 使用 `mysql -u用户名 -p密码` 命令。
2. **执行SQL文件** - 使用 `source sql文件绝对路径` 执行存储在文件中的SQL语句。
3. **数据库操作** - `SHOW DATABASES;` 查看所有数据库,`CREATE DATABASE 名字;` 创建数据库,`DROP DATABASE 名字;` 删除数据库,`USE 名字;` 进入指定数据库。
4. **表操作** - `SHOW TABLES;` 查看当前数据库中的表,`DESCRIBE 表名;` 查看表结构,`CREATE TABLE`、`DROP TABLE`、`ALTER TABLE` 分别用于创建、删除和修改表。
在给出的例子中,创建了学生表、班级表和分数表,每个表都有相应的字段和约束,比如学生表的学号为主键,姓名和出生日期为非空,地址为可为空,总分为浮点型,班级编号为外键,参考班级表的主键。班级表的班级编号和名称为唯一约束。通过一系列的DDL语句,可以实现这些表的创建,并将建表语句保存到`.sql`文件中。此外,联合主键是用于标识表中多列组合成的唯一键。
2015-07-01 上传
2009-04-25 上传
2023-09-06 上传
2023-07-08 上传
2023-07-22 上传
2024-06-16 上传
2023-04-12 上传
2023-05-26 上传
深井冰323
- 粉丝: 24
- 资源: 2万+
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建