大纲
1、数据类型
2、主键
3、SQL
4、客户机-服务器软件
5、常见的MySQL客户机工具
一、什么是数据库? 为什么需要数据库?
数据库: 存储数据的仓库,一堆以有组织方式存储的数据集合。 广义来讲,就是可以对数据进行存储和管理的软件以及数据本身,统称为数据库。数据库是一种组织数据的方式,与文件系统类似。存储数据的方式,也就是持久化,主要是它有ACID 四个主要指标。
为什么需要数据库呢?
公司最核心的是数据。
1、几乎所有的应用程序的后台都需要数据库支持
2、数据库存储数据节省磁盘空间
3、存储比较安全
4、容易维护和升级
5、数据库移植容易
二、数据类型(DataType) & 主键(Primary Key)
数据库表中的每个列都有相应的数据类型。数据类型定义了列所允许的数据的种类,它限制或容许该列中存储的数据。数据类型限制可存储在列中的数据种类(例如,防止在数值字段中录入字符串)。数据类型还帮助正确的排序数据,并在优化磁盘使用方面起着重要的作用。因此,在创建表时必须对数据类型给予特别的关注。
数据类型及其名称是SQL不兼容的一个主要原因。
唯一标识表中每一行的列或者一组列称为主键。没有主键,更新或删除表中特定的行非常困难,因为没有安全的方法保证只涉及相关的行。
最佳实践:应该总是定义主键,虽然并不总是都需要主键,但我们都应保证创建的表具有一个主键,以便于数据操纵和管理。主键通常定义在表的一列上,但这并不是必须的,也可以使用多个列作为主键。在使用多列作为主键时,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
表中的任何列都可以作为主键,只要它满足以下条件:
任意两行都不具有相同的主键值
每个行都必须具有一个主键值(主键列不允许为 NULL)
主键的最好习惯:除了MySQL强制实施的规则外,应该做到:
1、不更新主键列的值
2、不重用主键列的值
3、不在主键列中使用可能会更改的值
三、SQL(Structured Query Language)
SQL是一种专门用于和数据库通信的语言。SQL是高级的非过程化编程语言,它允许用户在高层数据结构上工作。SQL已经被标准化,几乎所有重要的DBMS都支持SQL,所以学习它几乎能与所有的关系型数据库打交道。但是事实上任意两个DBMS实现的SQL都不完全相同,都在其基础上为了实现某个特性或者优化速度而进行了扩展,所以有些SQL语句并不是完全可移植的。
SQL包含3个部分:
“数据定义语言”(DDL : Data Definition Language),操作数据库对象,CREATE,DROP,ALTER
数据库对象:库、表、索引、试图、约束(有效性,引用完整性,主键约束)、存储过程、函数、触发器、游标、用户
“数据操纵语言”(DML : Data Manipulation Language),操作数据记录,INSERT,DELETE,UPDATE
“数据控制语言”(DCL : Data Control Language),管理和授权,GRANT,REVOKE
“数据查询语言”(DQL:Data Query Language),查询,SELECT
SQL语言的扩展:
Transact-SQL
微软 MS SQL-Server,以及 Sybase Adaptive Server 系列数据库所用的SQL
PL-SQL
Oracle 数据库所扩展的SQL
四、常见的关系型数据库系统
1.甲骨文的 Oracle, MySQL(MySQL AB -> SUN -> Oracle)
2.IBM 的 DB2
3.微软的 Access 和 SQL Server (基于Sybase)
4.开源 PostgreSQL
5.开源 MariaDB
6.文件数据库 SQLite
Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。我们应该关注Percona。
反关系模型,不再完全满足关系模型: NoSQL,术语仅仅是一种技术,而不是特定的软件。
MongoDB
Redis
Hbase
五、客户机-服务器软件
MySQL是DBMS软件。
DBMS可分为两类:一类为基于共享文件系统的DBMS(如:Access),另一类为基于客户机-服务器的DBMS(如:MySQL, Oracle)。
客户机-服务器应用分为两个不同的部分。服务器部分负责所有数据访问和处理,它运行在称为数据库服务器的计算机上。与数据打交道的只有服务器软件,关于数据增、删、改的所有请求都由服务器完成。这些请求来自客户机,客户机是与用户打交道的软件。
客户机软件通过网络提交请求给服务器软件,服务器处理这个请求,根据需要过滤、丢弃和排序数据,然后把结果送回到客户机软件。
六、常用的MySQL客户端工具
1、MySQL命令行实用程序
2、phpMyAdmin图形化工具(http://www.phpmyadmin.net/home_page/index.php)
3、MySQL Workbench(http://dev.mysql.com/downloads/workbench/)
4、Navicat Premium(http://www.navicat.com/ )
5、MySQL Query Browser(http://sqlbrowser.www2.pl/)
MySQL命令行实用程序是使用最多的使用程序之一,它对于快速测试和执行脚本非常有效。即使你选择使用后面列出的其他图形化管理工具,也必须熟悉MySQL命令行程序,因为它是可以安全依靠总是给出的客户机(是MySQL核心安装的一部分)。