一、数据库基本概念
(1)数据
所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的。它不仅仅指狭义上的数字,而是有多种表现形式:字母、文字、文本、图形、音频、视频等。现在计算机存储和处理的数据范围十分广泛,而描述这些数据的符号也变得越来越复杂了。
(2)数据库
数据库(Database,DB)指的是以一定格式存放、能够实现多个用户共享、与应用程序彼此独立的数据集合。
(3)数据库管理系统
数据库管理系统(Database Management System,DBMS)是用来定义和管理数据的软件。如何科学的组织和存储数据,如何高效的获取和维护数据,如何保证数据的安全性和完整性,这些都需要靠数据库管理系统完成。目前,比较流行的数据库管理系统有:Oracle
、MySQL
、SQL Server
、DB2
等。
(4)数据库应用程序
数据库应用程序(Database Application System,DBAS)是在数据库管理系统基础上,使用数据库管理系统的语法,开发的直接面对最终用户的应用程序,如学生管理系统、人事管理系统、图书管理系统等。
(5)数据库管理员
数据库管理员(Database Administrator,DBA)是指对数据库管理系统进行操作的人员,其主要负责数据库的运营和维护。
(6)最终用户
最终用户(User)指的是数据库应用程序的使用者。用户面向的是数据库应用程序(通过应用程序操作数据),并不会直接与数据库打交道。
(7)数据库系统
数据库系统(Database System,DBS)一般是由数据库、数据库管理系统、数据库应用程序、数据库管理员和最终用户构成。其中DBMS是数据库系统的基础和核心。
二、数据库类型和常见的关系型数据库
1、数据库类型
数据库经过几十年的发展,出现了多种类型。根据数据的组织结构不同,主要分为网状数据库、层次数据库、关系型数据库和非关系型数据库四种。目前最常见的数据库模型主要是:关系型数据库和非关系型数据库。
1.关系型数据库
关系型数据库模型是将复杂的数据结构用较为简单的二元关系(二维表)来表示,如图所示。在该类型数据库中,对数据的操作基本上都建立在一个或多个表格上,我们可以采用结构化查询语言(SQL
)对数据库进行操作。关系型数据库是目前主流的数据库技术,其中具有代表性的数据库管理系统有:Oracle
、DB2
、SQL Server
、MySQL
等。
PS:关系=二维表
2.非关系型数据库NOSQL
NOSQL(Not Only SQL)
泛指非关系型数据库。关系型数据库在超大规模和高并发的web2.0
纯动态网站已经显得力不从心,暴露了很多难以克服的问题。NOSQL
数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。常见的非关系型数据库管理系统有Memcached
、MongoDB
,redis
,HBase
等。
2、常见的关系型数据库
虽然非关系型数据库的优点很多,但是由于其并不提供SQL
支持、学习和使用成本较高并且无事务处理,所以本书的重点是关系型数据库。下面我们将介绍一下常用的关系型数据库管理系统。
- Oracle
Oracle数据库是由美国的甲骨文(Oracle)公司开发的世界上第一款支持SQL
语言的关系型数据库。经过多年的完善与发展,Oracle数据库已经成为世界上最流行的数据库,也是甲骨文公司的核心产品。
Oracle数据库具有很好的开放性,能在所有的主流平台上运行,并且性能高、安全性高、风险低;但是其对硬件的要求很高、管理维护和操作比较复杂而且价格昂贵,所以一般用在满足对银行、金融、保险等行业大型数据库的需求上。
- DB2
DB2
是IBM公司著名的关系型数据库产品。DB2
无论稳定性,安全性,恢复性等等都无可挑剔,而且从小规模到大规模的应用都可以使用,但是用起来非常繁琐,比较适合大型的分布式应用系统。
- SQL Server
SQL Server
是由Microsoft开发和推广的关系型数据库,SQL Server
的功能比较全面、效率高,可以作为中型企业或单位的数据库平台。SQL Server
可以与Windows操作系统紧密继承,无论是应用程序开发速度还是系统事务处理运行速度,都能得到大幅度提升。但是,SQL Server
只能在Windows系统下运行,毫无开放性可言。
- MySQL
MySQL
是一种开放源代码的轻量级关系型数据库,MySQL
数据库使用最常用的结构化查询语言(SQL
)对数据库进行管理。由于MySQL
是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个人需要对其缺陷进行修改。
由于MySQL
数据库体积小、速度快、成本低、开放源码等优点,现已被广泛应用于互联网上的中小型网站中,并且大型网站也开始使用MySQL
数据库,如网易、新浪等。
3、Mysql登录、访问、退出操作
1.登陆命令
shell 代码:mysql -hlocalhost -uroot -p
mysql:bin目录下的文件mysql.exe。mysql是MySQL的命令行工具,是一个客户端软件,可以对任何主机的mysql服务(即后台运行的mysqld)发起连接。
-h:host主机名。后面跟要访问的数据库服务器的地址;如果是登录本机,可以省略
-u:user 用户名。后面跟登录数据的用户名,第一次安装后以root用户来登录,是MySQL的管理员用户
-p: password 密码。一般不直接输入,而是回车后以保密方式输入。
2.访问数据库
显示MySQL中的数据库列表:
shell 代码:show databases; 默认有四个自带的数据库,每个数据库中可以有多个数据库表、视图等对象。
切换当前数据库的命令:
shell 代码:use mysql;
MySQL下可以有多个数据库,如果要访问哪个数据库,需要将其置为当前数据库。该命令的作用就是将数据库mysql(默认提供的四个数据库之一的名字)置为当前数据库
显示当前数据库的所有数据库表:
shell 代码:show tables;
MySQL 层次:不同项目对应不同的数据库组成 - 每个数据库中有很多表 - 每个表中有很多数据
3.退出数据库
退出数据库可以使用quit
或者exit
命令完成,也可以用\q;
完成退出操作
三、MYSQL常用命令
查看数据
- 查看库:show databases;
- 建立数据库: create database 库名;
- 选择数据库:use 库名;
- 查看库下的所有表:show tables;
- 查看表结构 :desc表名;(describe缩写)
建立数据表:
use 库名; create table 表名 (字段名 varchar(20)字符串, 字段名 char(1));
修改数据:
- 修改表名:rename table oldname to newname;
- 往表中插入记录:insert into 表名values (‘hyq’,‘m’);
- 显示表中的记录:select * from 表名;11、将表中记录清空:delete from表名 where id=1;
- 删除数据表:drop table 表名;
- 删除数据库:drop database 库名;
更新表中数据:
update 表名 set 字段名1=‘a’, 字段名2=‘b’ where 字段名3=‘c’;
多个字段更新,用逗号隔开
自增:
bash 代码:update myTable set vipczz=vipczz+1 where vip=1;