一 数据库介绍:
1 Database时按照数据结构来组织、存储和管理数据的仓库
每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制锁保存的数据
也可将数据存储在文件中,不过文件的读写速度会相对较慢。
我们使用关系型数据库管理系统(RDBMS:Relationship DB Management System)来储存和管理大数据量。Radis便是非关系型,两个字典之间没有关系,想怎么存就怎么存。这个类似于EXCEL表格,具有如下特点
1数据以表格的形式出现
2每行为各种记录名称
3每列为记录名称所对应的数据域
4许多行和列构成一张表单
5若干的表单组成DB
种类有:
Oracle(收费)、Mysql、SqlServer、DB2、Postgresql、Sqlite、Access
术语:
数据库:一些关系表的集合
数据表:表时数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格
列:一列(数据元素)是一组相同类型的数据,例如邮政编码的数据
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的表格
冗余:存储两倍数据,冗余可以使系统更快(表的规范化程度越高,表与表之间的关系就越多;查询时可能经常需要在多个表之间进行连接查询,而进行连接操作会降低查询速度。如果添加一个冗余字段(针对查询特别频繁的字段,会增加数据量)就可以避免多次进行连接操作了。
主键:主键使唯一的标识某一行,一个数据表中只能包含一个主键。可以使用主键来查询数据。(不能重复,确定某行使唯一的,类似身份证号不能重复)
外键:外键用来关联两个表。
复合键:将多个列作为一个索引键,一般用于符合索引
索引:顾名思义,使用索引可以快速的访问数据库的特定信息,索引是对数据库表中一列或多列的值进行排序的一种结构,类似于书籍的目录。(二分法查询42亿查32次,数据库不是用的这个)
参照完整性:参照的完整性要求关系中不允许引用不存在的实体,与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
Mysql数据库
Mysql是最受欢迎的数据库,在web应用方面是最好的RDBMS应用软件之一。由瑞典Mysql AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,数据保存在不同的表中,而不是将所有的数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- 开源,免费
- 支持大型数据库,处理上千万条数据32位为4GB,64位为8TB
- 使用标准的SQL语言形式
- 允许在多个系统上,并且支持多语言,包括C、C++、python、java,Perl,PHP、Eiffel、Ruby和Tcl等,PHP是目前最流行的Web开发语言
- 可定制,采用GPL协议,可以修改源码开发自己的Mysql系统
2Mysql安装
Linux:[root@host]# rpm -i MySQL -5.0.9-0.1386.rpm
Windows:下载地址
常用命令:
mysql -uroot -p:输入密码进入数据库
USE 数据库名:选择要操作的数据库
SHOW DATABASE:列出MySQL数据库管理系统的数据库列表
SHOW TABLES:显示指定数据库的所有表,使用该命令前需要使用use命令来选择要操作的数据库
SHOW COLLUMNS FROM 数据表:显示数据库的属性,属性类型,主键信息,是否为null,默认值等其他信息。
CREATE DATABASE TESTDB CHARSET "UTF-8";创建一个testdb的数据库,并且让其支持中文。
DROP DATABASE TESTDB:删除数据库
SHOW INDEX FROM 数据库:显示数据表的详细索引信息,包括PRIMARY KEY(主键)
表操作
-
创建新表:CREATE
TABLE
table_name (column_name column_type);共有以下几种column
- 插入数据:
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
- 查询数据:
SELECT column_name,column_name#可用*号代替其他字段 FROM table_name [WHERE Clause]#包含任何条件 [OFFSET M ][LIMIT N]#偏移量和起始量
- where子句:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
- where子句:
4MySQL数据类型
MySQL中定义数据字段的类型对数据库的优化非常重要,大致可分为3类
1数值
2日期和时间
3字符串