数据库(Database,简称DB)
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”
作用:保存、管理数据
数据库总览
关系型数据库(SQL) MySQL、Oracle、SQL Server、SQLite、DB2
非关系型数据库(NOSQL) Redis、MongoDB
数据库管理系统(Database Management System)
数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查洵、更新(包括插入、删除和修改)及各种控制都是通过DBMS进行的。DBMS就是实现把用户意义下的抽象逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便。
主要功能:
1.数据定义功能·
2.数据操纵功能
3.数据库运行管理功能
4.数据库的建立和维护功能
5.数据通信接口
6.数据组织、存储和管理
数据管理软件,科学组织和存储数据、高效地获取和维护数据
MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB公司1995年开发,迅速成为最流行的开源关系型数据库管理系统。
MySQL数据库管理系统由瑞典MySQL AB公司1995年开发,该公司后被Sun公司收购,现在Sun公司又被Oracle公司收购,因此MySQL目前属于Oracle旗下产品
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版。由于其体积小,速度快,总体拥有成本低,一般中小型网站的开发都选择MySQL作为网站数据库。
特点
免费、开源数据库
小巧、功能齐全
使用便捷
可运行于Windows或Linux操作系统
可适用于中小型甚至大型网站应用
结构化查询语句SQLStructure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。
优点:
1、简单易学,具有很强的操作性 2、绝大多数重要的数据库管理系统均支持SQL 3、高度非过程化;用SQL操作数据库时大部分的工作由DBMS自动完成
结构化查询语句分类
名称
解释
命令
DDL
(数据定义语言)
定义和管理数据对象,
如数据库,数据表等
CREATE、DROP、ALTER
DML
(数据操作语言)
用于操作数据库对象中所包含的数据
INSERT、UPDATE、DELETE
DQL
(数据查询语言)
用于查询数据库数据
SELECT
DCL
(数据控制语言)
用来管理数据库的语言,包括管理权限及数据更改
GRANT、COMMIT、ROLLBACK
DDL操作数据库创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名;
删除数据库
DORP DATABASE [IF EXISTS] 数据库名;
查看数据库
SHOW DATABASES;
使用数据库
USE 数据库名;
DDL操作表
创建数据表
反引号用于区别MySQL保留字与普通字符而引入的
删表
DROP TABLE [ IF EXISTS ] 表名
IF EXISTS 为可选,判断是否存在该数据表 如删除不存在的数据表会抛出错误
显示表结构
desc 表名
显示表创建语句
show create table 表名
修改数据表
修改表(ALTER TABLE)
修改表名
ALTER TABLE 旧表名 RENAME AS 新表名
添加字段
ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]
#在员工表基础上增加age列
ALTER TABLE workers ADD age INT;
修改字段
ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]
#修改email 长度为50
ALTER TABLE workers MODIFY email VARCHAR(50);
#列名name 修改为username
ALTER TABLE workers CHANGE sname username VARCHAR(20);
删除字段
ALTER TABLE 表名 DROP 字段名
#删除remark列
ALTER TABLE workers DROP remark;
列类型
规定数据库中该列存放的数据类型
分为:
数值类型
类型
说明
取值范围
存储需求
tinyint
非常小的数据
有符值: -27 ~ 27-1
无符号值:0 ~ 28-1
1字节
smallint
较小的数据
有符值: -215 ~ 215-1
无符号值: 0 ~ 216-1
2字节
mediumint
中等大小的数据
有符值: -223 ~ 223-1
无符号值: 0 ~ 224-1
3字节
int
标准整数
有符值: -231 ~ 231-1
无符号值:0 ~ 232-1
4字节
bigint
较大的整数
有符值: -263 ~263-1
无符号值:0 ~264-1
8字节
float
单精度浮点数
±1.1754351e -38
4字节
double
双精度浮点数
±2.2250738585072014e -308
8字节
decimal
字符串形式的浮点数
decimal(m, d)
m个字节
字符串类型
类型
说明
最大长度
char[(M)]
固定长字符串,检索快但费空间, 0 2
true
#将sid为4的那一行的username改为"弗利萨"
UPDATE workers SET username='弗利萨' WHERE sid=4;
#将sid为4的那一行的age设为250
UPDATE workers SET age =250 WHERE sid=4;
删除数据
delete命令
DELETE FROM 表名 [ WHERE condition ];
#删除age为2000的那一行
DELETE FROM workers WHERE age=250;
condition为筛选条件,若不指定则删除该表的所有列数据
TRUNCATE命令
用于完全清空表数据,但表结构、索引、约束等不变
TRUNCATE [TABLE] table_name
区别于DELETE命令
相同:都能删除数据、不删除表结构,但TRUNCATE 速度更快
不同:使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器
使用TRUNCATE TABLE不会对事务有影响