初始MySQL数据库(08.05)
MySQL数据库
作者:孙慧敏
1. 什么是数据库
1.1 数据库,
简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合
1.2 数据库管理系统:
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
2. 数据库分类与常见的数据库
2.1 关系型数据库:
指采用了关系模型来组织数据的数据库。
关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
2.1 关系模型中常用的概念:
关系:一张二维表,每个关系都具有一个关系名,也就是表名
元组:二维表中的一行,在数据库中被称为记录
属性:二维表中的一列,在数据库中被称为字段
域:属性的取值范围,也就是数据库中某一列的取值限制
关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成
关系模式:指对关系的描述。其格式为:关系名(属性1,属性2, ... ... ,属性N),在数据库中成为表结构
2.3 常见的关系型数据库:
MySQL (开放源代码 、网站应用广泛)
DB2
Percona Server(MySQL的代替品·)
PostgreSQL
Microsoft Access
Microsoft SQL Server (针对不同用户群体的多个版本、易用性好)
Oracle数据库 (Oracle公司的产品,产品免费、服务收费 )
2.4 非关系型数据库
2.4.1 非关系型数据库的特性
1、使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
2.4.2 非关系型数据库的优点:
1、无需经过sql层的解析,读写性能很高;
2、基于键值对,数据没有耦合性,容易扩展;
3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。
2.4.3 非关系型数据库的缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理,附加功能bi和报表等支持也不好;
2.5 常见的关系型数据库:
NoSql
MongoDB
redis
HBase
3. 为什么要学习数据库
发送请求 返回数据
HTML JAVA 数据库
调用 返回数据
4.结构化查询语句SQL
名称 |
解释 |
命令 |
DDL(数据定义语言) |
定义和管理数据对象,如数据库,数据表等 |
CREATE、DROP、ALTER |
DML(数据操作语言) |
用于操作数据库对象中所包含的数据 |
INSERT、UPDATE、DELETE |
DQL(数据查询语言) |
用于查询数据库数据 |
SELECT |
DCL(数据控制语言) |
用来管理数据库的语言,包括管理权限及数据更改 |
GRANT、COMMIT、ROLLBACK |
5.DDL数据定义语言常用语句
/*创建数据库 判断是否存在*/
CREATE DATABASE if not EXISTS myschool;
/*删除数据库*/
DROP DATABASE if EXISTS myschool;
/*查看库*/
show DATABASES;
/*切换数据库*/
use myschool;
/*创建表*/
CREATE table if not EXISTS `student` (
id int PRIMARY KEY auto_increment,
name VARCHAR(50) not null DEFAULT "张三",
money DECIMAL(3,2)
)
/*删除表*/
DROP TABLE student;
6. MySql常用的数据类型
1. 列类型
规定数据库中该列存放的数据类型
2. 数值类型
3. 字符串类型
4. 日期和时间型数值类型
5. NULL值
6. 数值类型
类型 |
说明 |
存储需求 |
tinyint |
非常小的数据 |
1字节 |
int |
标准整数 |
4字节 |
bigint |
较大的整数 |
8字节 |
float |
单精度浮点数 |
4字节 |
double |
双精度浮点数 |
8字节 |
decimal |
字符串形式的浮点数 decimal(m, d) m字节 |
保留d位小数 |
6.1 字符串类型
类型 |
说明 |
存储需求 |
varchar |
可变字符串 |
变长度 |
text |
文本 |
2的16次方–1字节 |
6.2 日期和时间型数值类型
类型 |
说明 |
DATE |
YYYY-MM-DD |
DATETIME |
YY-MM-DD hh:mm:ss |
TIMESTAMP |
YYYYMMDDhhmmss格式表示的时间戳 |
6.3 NULL值(特别注意)
三种NULL:
1.悬浮,点击后会消失(提示输入内容)
2.null或NULL字符串
3.压根不输入(等价于空字符串)
7. 补充
7.1 错误类型
[Err]1064:错误代码
1007:数据库存在
1055:卸载了重新装吧,版本问题,缺少配置文件my.ini,暂时没发现影响使用
1017:符号错误
7.2 主键(主键约束)
1. 不能为空
2. 不可重复
(逐渐以后不允许用int类型,可以使用bigint)
7.3 其他
跟性别有关用0/1表示tinyint类型
跟钱有关用decimal类型
now()当前时间
[]:代表可有可无