一、数据库
1、基本介绍
数据库就是一种用于管理数据的软件,数据库是利用内存和磁盘来储存和控制数据的,所以能更高效和快速的管理和处理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。
2、数据库的分类
关系型数据库:是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库有下面这几个:
- Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统
- MySQL:属于甲骨文,不适合做复杂的业务
- SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目
非关系型数据库:不规定基于SQL实现。现在更多是指NoSQL数据库。如:
- 基于键值对(Key-Value):如 memcached、redis
- 基于文档型:如 mongodb
- 基于列族:如 hbase
- 基于图型:如 neo4j
二、MySQL
1、数据定义语言(DDL)
1、创建数据库:CREATE DATABASE [数据库名];
2、查看数据库: SHOW DATABASES;
3、删除数据库: DROP DATABASE[数据库名];
4、使用数据库: USE [数据库名];
注意:这里的使用数据库可以理解为进入或者选中数据库,然后在数据库中进行操作。
2、数据操纵语言(DML)
1、创建表:CREATE TABLE [表名] (字段1 类型 ,字段2 类型);
2、显示表结构:DESC [表名] ;
3、删除表:DROP TABLE [表名];
注意:在进行表操作之前要先选中数据库。
- Field:字段名、列名,就是创建表时自己规定的名字
- Null:标明这列能不能插入null
- Key:键名、约束,后面会讲到6个约束类型
- Default:如果不输入这一列数据,系统默认的值(这个值可以自己设置)
数据类型 | 大小 | 说明 |
---|---|---|
tinyint | 1字节 | 对应java中的Byte |
smallint | 2字节 | 对应java中的Short |
int | 4字节 | 对应java中的Long |
decimal(M,D) | M/D最大值+2 | 双精度,M指定长度,D指定小数点位数 |
varchar | 0-6553字节 | 对应java中的String |
timestamp | 4字节 | 表示时间戳 |
3、数据表的增删查改
全列插入:INSERT INTO [表名] VALUES (数据1,数据2,数据3,数据4); 全列插入后面的数据必须和表中的字段完全对应,不能多或者少,不然都会插入失败。
指定列插入:INSERT INTO [表名] (字段1,字段2,字段3) VALUES (数据1,数据2,数据3); 没有指定的字段的数据,会插入默认值
多行插入:INSERT INTO [表名] VALUES (数据1,数据2,数据3,数据4) , (数据1,数据2,数据3,数据4);
全列查询:SELECT * FROM [表名] ;
指定列查询:SELECT 字段1,字段2,FROM[表名] ;
表达式查询:SELECT [表达式] FROM[表名]; (表达式是指字段数据之间的关系)
别名:SELECT[表达式] AS[别名] FROM[表名];(别名相当于就是创建了一个临时的列,列中的值就是表达式中的值)
去重:SELECT DISTINCT [字段] FROM [表名]; (去重后的列也是一个临时的列,不是对原数据做出的修改)
排序:SELECT 字段 FROM [表名] ORDER BY[字段];(排序的表是一张临时表,默认是升序,最后加DESC可以变成降序排列)
条件查询:SELECT [字段] FROM [表名] WHERE [逻辑表达式]; (逻辑表达式就是相当于对表的一种筛选)
模糊查询:SELECT [字段] FROM [表名] WHERE [字段] LIKE [通配符加字符串]; (% 匹配任意多个(包括 0 个)字符, _ 匹配严格的一个任意字符)
分页查询:SELECT [字段] FROM [表名] LIMIT n OFSET s(s代表从第几条开始,筛选n条数据)
修改数据:UPDATE [表名] SET [修改的数据] ;
删除数据:DELETE FROM [表名] ; DELETE删除的只是数据表中的数据,DROP是直接连整张表都删除了。