一、什么是数据库
(一)数据库
简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。 所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合
(二)数据库管理系统
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
二、数据库分类和常见数据库
(一)常见关系型数据库
指采用了关系模型来组织数据的数据库。 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
MySQL
DB2
Percona Server(MySQL的代替品·)
PostgreSQL
Microsoft Access
Microsoft SQL Server
Oracle数据库
关系模型中常用概念:
关系:一张二维表,每个关系都具有一个关系名,也就是表名
元组:二维表中的一行,在数据库中被称为记录
属性:二维表中的一列,在数据库中被称为字段
域:属性的取值范围,也就是数据库中某一列的取值限制
关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成
关系模式:指对关系的描述。其格式为:关系名(属性1,属性2, ... ... ,属性N),在数据库中成为表结构
(二)非关系型数据库
特点:
1、使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
优点:
1、无需经过sql层的解析,读写性能很高;
2、基于键值对,数据没有耦合性,容易扩展;
3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型
缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理,附加功能bi和报表等支持也不好
(三)常见的关系型数据库
NoSql
MongoDB
redis
HBase
三、结构化查询SQL
名称 | 解释 | 命令 |
---|---|---|
DDL(数据定义语言) | 定义和管理数据对象,如数据库,数据表等 | CREATE、DROP、ALTER |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
DQL(数据查询语言) | 用于查询数据库数据 | SELECT |
DCL(数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | GRANT、COMMIT、ROLLBACK |
四、DDL数据定义语言常用语句
(一)创建 create
/*创建数据库 判断是否存在*/
CREATE DATABASE if not EXISTS myschool;
/*创建表*/
CREATE table if not EXISTS `student` (
id int PRIMARY KEY auto_increment,
name VARCHAR(50) not null DEFAULT "张三",
money DECIMAL(3,2)
)
(二)删除 drop
/*删除数据库*/
DROP DATABASE if EXISTS myschool;
/*删除表*/
DROP TABLE student;
(三)修改 alter
#1、修改表名
ALTER TABLE 旧表名 RENAME AS 新表名
#2、添加字段
ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]
#3、修改字段
ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]
#4、删除字段
ALTER TABLE 表名 DROP 字段名
#使用SQL向商品表添加字段商品类型
#商品类型 数据类型:bigint 大小:20 (无须设置外键)
ALTER TABLE goods ADD goodsType BIGINT(20);
(四)查看,切换 show,use
/*查看库*/
show DATABASES;
/*查看表*/
show tables;
/*切换数据库*/
use myschool;
五、MySQL常用的数据类型
(一)列类型
规定数据库中该列存放的数据类型
数值类型
字符串类型
日期和时间型数值类型
NULL值
(二)数值类型
类型 | 说明 | 存储需求 |
---|---|---|
tinyint | 非常小的数据 | 1字节 |
int | 标准整数 | 4字节 |
bigint | 较大的整数 | 8字节 |
float | 单精度浮点数 | 4字节 |
double | 双精度浮点数 | 8字节 |
decimal | 字符串形式的浮点数 | decimal(m, d) m字节 保留d位小数 |
(三)字符串类型
类型 | 说明 | 存储需求 |
---|---|---|
varchar | 可变字符串 | 变长度 |
text | 文本 | 2的16次方–1字节 |
(四)日期类型
类型 | 说明 |
---|---|
DATE | YYYY-MM-DD |
DATETIME | YY-MM-DD hh:mm:ss |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 |