你的浏览器不支持本网站所要求的功能, 现在看到的是本网站简化版本.

为了获得最佳体验, 请使用最新的Chrome, Safari, Firefox 或 Edge 浏览器.

3. 关系数据库标准语言 SQL

3.3 数据定义

Powered by impress.js
Ver. 2408

### MySQL 简介 - 关系型数据库管理系统 - 瑞典 MySQL AB 开发, 被 Oracle 收购 - 最流行的开源数据库之一 - 主要用于 Web 应用环境 - 使用标准的 SQL
### MySQL 下载 - [https://dev.mysql.com/downloads/](https://dev.mysql.com/downloads/) - MySQL Enterprise Edition - MySQL Cluster CGE - MySQL Community Edition
![MySQL Download](img/c03/mysql-download.png) #### MySQL Download
![MySQL Community Edition](img/c03/mysql-community-download.png) #### MySQL Community Edition
### MySQL 常用客户端 - MySQL Workbench - phpMyAdmin - Navicat for MySQL
![MySQL Workbench](img/c03/mysql-workbench.png) #### MySQL Workbench
### MySQL 安装 - 安装 MySQL Server - 安装 MySQL Workbench
### MySQL 数据类型 - 数值类型 - 日期和时间类型 - 字符串类型
![MySQL Data Types](img/c03/mysql-data-type.png) #### MySQL Data Types
### 数值类型 - INT: 整数, 4 Byte - TINYINT: 很小整数, 1 Byte - SMALLINT: 小整数, 2 Byte - MEDIUMINT: 中等大小整数, 3 Byte - BIGINT: 大整数, 8 Byte - FLOAT: 单精度浮点数, 4 Byte - DOUBLE: 双精度浮点数, 8 Byte - DECIMAL: 依赖于用户定义的精度和标度
### 日期和时间 - YEAR: 年份, 格式为 'YYYY', 1 Byte - DATE: 日期, 格式为 'YYYY-MM-DD', 3 Byte - TIME: 时间, 格式为 'HH:MM:SS', 3 Byte - DATETIME: 日期和时间, 格式为 'YYYY-MM-DD HH:MM:SS', 8 Byte - TIMESTAMP: 时间戳, 从 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC, 4 Byte
### 字符串类型 - CHAR: 定长字符串, 最大 255 字符 - VARCHAR: 变长字符串, 最大 65535 字符 - TEXT: 长文本字符串, 最大 65535 字符 - BLOB: 二进制对象, 最大为 65535 字节 - ENUM: 枚举类型, 最多 65535 个对象 - SET: 集合类型, 最多 64 个成员
### 选择数据类型 - BIGINT: 存储超大整数, 如科学数据 - DOUBLE: 存储双精度小数据, 如科学数据 - DECIMAL: 以高精度存储小数据, 如货币数额 - TEXT: 存储大型文本数据, 如产品描述 - BLOB: 存储二进制数据, 如图片或声音 - TIMESTAMP: 存储即时时间, 如当前时间 - ENUM: 存储单选属性, 如性别 - SET: 存储多选属性, 如业余爱好和兴趣
### 数据定义 - 模式 (Schema) - 表 (Table) - 视图 (View) - 索引 (Index)
![Database Schemas](img/c03/database_schemas.jpeg) #### Database Schemas
![Database Schema](img/c03/database_schema.jpeg) #### Database Schema
### 模式 (Schema) - 创建模式: CREATE SCHEMA - 删除模式: DROP SCHEMA
### 创建模式 CREATE SCHEMA "temp" AUTHORIZATION ROOT; CREATE SCHEMA `temp`; CREATE SCHEMA `heroes1` ;
### 删除模式 DROP SCHEMA "temp" ; DROP DATABASE `temp`;
### 表 (Table) - 创建表: CREATE TABLE - 修改表: ALTER TABLE - 删除表: DROP TABLE
### 创建表 CREATE TABLE <表名> ( <列名> <数据类型> [列级完整性约束条件], [<列名> <数据类型> [列级完整性约束条件]], ... [, <表级完整性约束条件>]); CREATE TABLE Heroes ( HeroID INT UNSIGNED AUTO_INCREMENT, HeroName VARCHAR(50) NOT NULL, HeroLife INT NOT NULL, HeroDescription TEXT, PRIMARY KEY (HeroID) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
### 修改表 ALTER TABLE <表名> [ADD [COLUMN] <新列名> <数据类型> [完整性约束]] [ADD <表级完整性约束>] [DROP [COLUMN] <列名> [CASCADE | RESTRICT]] [DROP CONSTRAINT <完整性约束> [RESTRICT | CASCADE]] [ALTER COLUMN <列名> <数据类型>];
### 删除表 DROP TABLE <表名> ; DROP TABLE `hok`.`Users`;
### 索引 (Index) - 索引可以提高查询速度, 但会增加数据库负担 - 索引的建立和删除由数据库管理员或表主完成 - 不同数据库管理系统支持的索引类型有所差异 - 数据库系统会根据查询自动选择合适的索引 - 删除索引会同时从数据字典中删除相关信息
### 索引 - 创建索引: CREATE INDEX - 删除索引: DROP INDEX - 修改索引: ALTER INDEX
### 创建索引 CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名> (<列名> [次序], <列名> [次序], ...);
### 修改索引 ALTER INDEX <旧索引名> RENAME TO <新索引名>;
### 删除索引 DROP INDEX <索引名>;
### 数据字典 (Data Dictionary) - 是关系数据库管理系统内部的一组系统表 - 记录数据库中所有的定义信息 - 在查询优化和查询处理中发挥重要作用
![course 3.3 mindmap](img/c03/mindmap-3-3.png)
### 3.3 数据定义 - 在 MySQL 中,VARCHAR 和 CHAR 有何不同? - 在 MySQL 中我们如何创建和删除模式? - 想要添加新列到现有的表时该使用哪个 SQL 命令? - 索引在数据库中的作用是什么? - 数据字典在关系数据库管理系统中有什么作用? ---- [ 3.2 王者荣耀数据库](dbds-3-2.html#/overview) [| 练习 |](dbds-exec.html) [ 3.4 数据查询](dbds-3-4.html#/overview)

黑公网安备23010302001726号   黑ICP备2024033110号-1