前言:最近在学数据库,故顺便总结一下,方便巩固和日后回查。
目录
- 一、基本概念
- (一)数据模型
- (二)关系运算
- (三)SQL语言
- 二、基本命令
- (一)数据库操作
- (二)数据表操作
- (三)数据操作
一、基本概念
(一)数据模型
数据库的类型通常按照数据模型来划分。数据模型是数据库系统的核心和基础,它是对现实数据特征的抽象,用来描述数据,可以理解成一种数据结构。
基本数据类型分三种:层次模型、网状模型、关系模型。
mysql属于关系模型。
-
数据建模
数据建模大致分为3个阶段:概念建模阶段、逻辑建模阶段、物理建模阶段,对应产物为概念模型、逻辑模型、物理模型。 -
概念模型的术语
1)实体:客观存在并可相互区分的食物。
2)属性:实体所具有的特性,
3)联系:指实体与实体之间的联系
4)实体型:通过实体名(如学生)和属性名(如学号、班级、姓名)集合来抽象描述同类实体。
5)实体集:同一类型实体集合,如全校师生。 -
E-R图
即实体-联系图(Entity Relationship Diagram) -
关系模型
基本概念:
1)关系:一个关系对应一张二维表,包含实体本身数据和实体间的联系。
2)属性:二维表中的列成为属性。
3)元组:二维表中每一行数据称为一个元组
4)域:指属性的取值范围
5)关系模式:关系的描述,“关系名(属性1,属性2,…,属性n)”
6)键(key):又称为关键字,具有唯一性。主键,自己表中的;外键,引用别人表中的属性。注:外键可以是其他表中的非主键的字段。 -
关系模型的完整性
1)实体完整性:要求关系中的主键不能重复且不能取空值。
2)参照完整性:要求关系中的外键要么取空值,要么取被参照关系中的某个元组的主键值。
3)用户自定义完整性
(二)关系运算
- 并,差,交
- 笛卡尔积
- 选择,投影
- 连接
- 除 #这个我没看懂 ==b
(三)SQL语言
SQL由四部分组成:
- 数据定义语言:定义数据库、表
- 数据操作语言:对数据进行添加、修改和删除操作。
- 数据查询语言:数据查询
- 数据控制语言:控制用户的访问权限
二、基本命令
MySQL默认端口号:3306
(一)数据库操作
- 创建数据库
CREATE DATABASE 数据库名称 [库选项];
# 当数据库名称不存在时,才会创建
CREATE DATABASE IF NOT EXISTS 数据库名称;
SHOW WARNINGS;
创建好数据库后,MySQL会在存储数据的data目录中创建一个与数据库同名的子目录,并在子目录中生成一个db.opt文件,保存数据库选项。
- 查看数据库
#查看所有数据库
SHOW DATABASES;
#查看指定数据库的创建信息
SHOW CREATE DATABASE 数据库名称;
3. 选择数据库
use 数据库名称;
#登录MySQL服务器时选择数据库
mysql -uroot -p密码 数据库名
#在命令行执行
5. 删除数据库
DROp DATABASE 数据库名称;
DROP DATABASE IF EXISTS 数据库名称;
NOTE:
1.在命令行窗口中,还可以使用“/G”结尾,如SHOW DATABASES\G将显示结果以每条记录为一组,将所有字段纵向展示。(好看)
2.MySQL的关键字在使用时不区分大小写
3.为避免用户自定义的名称与系统中命令冲突,最好使用反引号(``)包裹数据库名称、字段名称和数据表名称。
(二)数据表操作
- 创建数据表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名
(字段名 字段类型 [字段属性] ...) [表选项]
2. 查看数据表
SHOW TABLES [LIKE 匹配模式];
#查看数据表的相关信息
SHOW TABLE STATUS [FROM 数据库名] [LIKE 匹配模式];
匹配模式符有两种,分别为“%”和“_”
LIKE后的匹配模式必须使用单引号或双引号包裹。
- 修改数据表
#方式一
ALTER TABLE 旧表名 RENAME [TO|AS] 新表名;
#方式二
RENAME TABLE 旧表名1 TO 新表名1 [,旧表名2 TO 新表名2...]
#修改表选项
ALTER TABLE 表名 表选项 [=] 值;
#查看修改结果
SHOW CREATE TABLE xxx\G
- 查看表结构
mysql提供的DESCRIBE语句可以查看数据表中所有字段或指定字段的信息,包括字段名、字段类型等。
1)查看数据表的字段信息
#语法格式1:
{ DESCRIBE | DESC } 数据表名;
#语法格式2:
{ DESCRIBE | DESC } 数据表名 字段名;
2)查看数据表的创建语句
SHOW CREATE TABLE 表名;
3)查看数据表结构
#语法格式1
SHOW [FULL] COLUMNS FROM 数据库表名;
#语法格式2
SHOW [FULL] COLUMNS FROM 数据库名.数据库表名;
- 修改表结构
1)修改字段名
ALTER TABLE 数据库名 CHANGE [COLUMN] 旧字段名 新字段名 字段类型 [字段属性];
#例如:
ALTER TABLE XXX CHANGE description des VARCHAR(255);
DESC XXX;
2)修改字段类型
ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名 新类型 [字段属性];
3)修改字段位置
ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名1 数据类型 [字段属性] [FIRST | AFTER 字段名2];
4) 新增字段
#语法格式1:新增一个字段,并可指定其位置
ALTER TABLE 数据库名 ADD [COLUMN] 新字段名 字段类型 [FIRST | AFTER 字段名]
#语法格式2:同时新增多个字段
ALTER TABLE 数据表名 ADD [COLUMN] (新字段名1 字段类型1,新字段名2 字段类型2,...)
5)删除字段
ALTER TABLE 数据表名 DROp [COLUMN] 字段名;
- 删除数据表
此操作指的是删除指定数据库中已经存在的表。在删除数据表的同时,存储在数据表中的数据都将被删除。
DROP [TEMPORARY] TABLE [IF EXISTS] 数据表1 [,数据表2]...;
(三)数据操作
- 添加数据
1)为所有字段添加数据
INSERT [INTO] 数据表名 {VALUES | VALUE} (值1[,值2]...);
2)为部分字段添加数据
#方式一:
INSERT [INTO] 数据库名 (字段名1 [,字段名2]...) {VALUES | VALUE} (值1,[,值2]...);
#方式二:推荐
INSERT [INTO] 数据表名 SET 字段名1=值1 [,字段名2=值2];
3)一次添加多行数据
INSERT [INTO] 数据库名 [(字段列表)] {VALUES | VALUE} (值列表) [,(值列表)...];
- 查询数据
SELECT * FROM 数据表名;
SELECt {字段名1,字段名2,...} FROM 数据表名;
SELECt *|{字段名1,字段名2,...} FROM 数据表名 WHERe 字段名=值;
- 修改数据
UPDATe 数据表名
SET 字段名1=值1 [,字段名2=值2,...]
[WHERe 条件表达式]
- 删除数据
DELETE FROM 数据表名 [WHERe 条件表达式];
参考文献:《MySQL数据库原理、设计与应用》