文章目录
- 第一章 初始MySQL
- 1. 数据库(Database,简称DB)
- 2. 数据库管理系统(Database Management System)
- 3. 结构化查询语句SQL
- 4.命令行操作数据库
- 5.1 数值类型
- 5.2 字符串类型
- 5.3 日期和时间型数值类型
- 5.4 NULL值
- 6. 数据字段属性
- 7. 数据字段注释
- 8. 数据表的类型
- 9. 设置数据表字符集
- 10. 数据表
第一章 初始MySQL
1. 数据库(Database,简称DB)
**概念:**长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”。
**作用:**保存、管理数据
数据库总览:
关系型数据库(SQL):MySQL、Oracle、SQL Server、SQLite、DB2
非关系型数据库(NOSQL):Redis、MongoDB
2. 数据库管理系统(Database Management System)
DBMS:数据管理软件,科学组织和存储数据、高效地获取和维护数据
MySQL简介
概念:是现流行的开源、免费的关系型数据库
特点:免费、开源数据库;小巧、功能齐全;使用便捷;可运行于Windows或Linux操作系统;可适用于中小型甚至大型网站应用
运行机制:
3. 结构化查询语句SQL
名称 | 解释 | 命令 |
---|---|---|
DDL(数据定义语言) | 定义和管理数据对象,如数据库,数据表等 | CREATE、DROP、ALTER |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
DQL(数据查询语言) | 用于查询数据库数据 | SELECT |
DCL(数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | GRANT、COMMIT、ROLLBACK |
4.命令行操作数据库
- 创建数据库
CREATE DATABASE hz;
- 删除数据库
CREATE DATABASE hz;
- 查看数据库
SHOW DATABASES;
- 使用数据库
use hz;
规定数据库中该列存放的数据类型,分为数值类型,字符串类型,日期和时间型数值类型,NULL值
表列类型设置:
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
5.1 数值类型
类型 | 说明 | 存储需求 |
---|---|---|
tinyint | 非常小的数据 | 1字节 |
int | 标准整数 | 4字节 |
bigint | 较大的整数 | 8字节 |
float | 单精度浮点数 | 4字节 |
double | 双精度浮点数 | 8字节 |
decimal | 字符串形式的浮点数 | decimal(m, d) m字节 保留d位小数 |
5.2 字符串类型
类型 | 说明 | 存储需求 |
---|---|---|
varchar | 可变字符串 | 变长度 |
text | 文本 | 2的16次方–1字节 |
5.3 日期和时间型数值类型
类型 | 说明 |
---|---|
DATE | YYYY-MM-DD |
DATETIME | YY-MM-DD hh:mm:ss |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 |
5.4 NULL值
理解为“没有值”或“未知值”,不要用NULL进行算术运算,结果仍为NULL
6. 数据字段属性
-
UNSIGNED
无符号的,声明该数据列不允许负数
-
ZEROFILL
0填充的,不足位数的用0来填充,如 int(3),5则为 005
-
AUTO_INCREMENT
自动增长的,每添加一条数据,自动在上一个记录数上加1
通常用于设置主键,且为整数类型,可定义起始值和步长
-
NULL 和 NOT NULL
默认为NULL,即没有插入该列的数值
如果设置为NOT NULL,则该列必须有值
-
DEFAULT
默认的,用于设置默认值
7. 数据字段注释
表列类型注释
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘编码号’
)COMMENT=‘测试表’;
MySQL注释:
#…… 单行注释
/……/ 多行注释
8. 数据表的类型
MySQL的数据表的类型:MyISAM、InnoDB 、HEAP、BOB、CSV等
常见的MyISAM与InnoDB类型:
名称 | MyISAM | InnoDB |
---|---|---|
事务处理 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约2倍 |
使用MyISAM: 节约空间及相应速度
使用InnoDB: 安全性,事务处理及多用户操作数据表
设置数据表的类型
CREATE TABLE 表名(
#省略一些代码
) ENGINE = MyISAM
CREATE TABLE 表名(
#省略一些代码
) ENGINE = InnoDB
9. 设置数据表字符集
设定方法:
-
创建时通过命令来设置
CREATE TABLE 表名( #省略一些代码 )CHARSET = utf8;
-
如无设定,则根据MySQL数据库配置文件my.ini
character-set-sever = utf8
10. 数据表
存储位置:MySQL数据表以文件方式存放在磁盘中
创建表:
create table `student`(
`id` int,
`name` varchar(10)
);
删除表:drop table student;
修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
添加字段:ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]
修改字段:ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]
删除字段:ALTER TABLE 表名 DROP 字段名