您的位置:首页 > 数据库

数据库内容简介

2012-04-03 19:02 323 查看
简介:
数据库就是存放数据的仓库,只是这个仓库是存储在计算机存储设备上的,而且是按一定的格式存储的。
数据库管理系统:
DBMS: 数据库管理系统Database Management System是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。能过户通过DBMS访问数据库中的数据,数据库管理员饿通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户不同的方法在同时或不同时刻去建立,修改和询问数据库。
按功能划分,数据库管理系统大致可分为6个部分:
模式翻译:提供数据定义语言(DDL)。用它书写的数据库模式被翻译为内部表示。数据库的逻辑结构、完整约束和物理储存结构保存在内部的数据字典中。数据库的各种数据操作(如查找、修改、插入和删除等)和数据库的维护管理都是以数据库模式为依据的。
应用程序的编译:把包含着访问数据库语句的应用程序,编译成在DBMS支持下可运行的目标程序。
交互式查询:提供易使用的交互式查询语言,如SQL.DBMS负责执行查询命令,并将查询结果显示在屏幕上。
数据的组织与存取:提供数据在外为存储设备上的物理组织与存取方法。
事务运行管理:提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查
事务的并发控制及系统恢复等功能。
数据库的维护:为数据库管理员提供软件支持,包括数据安全控制、完整性保障、数据库
备份、数据库重组以及性能监控等维护工具。
计算机数据管理技术大致经历了送你个发展阶段:
自由管理阶段:用户以文件形式将数据组织起来,并附属在各自的应用程序下。
文件管理阶段:操作系统中的文件系统给出了统一的文件结构和共同存取的方法,用户可以把数据和信息作为文件长期地保存在计算机中,并可以方便地进行查询和处理。
数据库管理阶段:为了适应大量数据的集中存储,并提供给多个用户共享的要求,是数据与程序完全独立,最大限度地减少数据的冗余度,出现了数据库管理系统。

DBMS提供五种功能:
数据定义功能。
数据管理功能。
对数据库进行保护。
数据库的建立和维护。
数据库的传输。
RDBMS(relational database management system):是基于数据模型(关系系统)的数据库管理系统,在数据库市场已经占据了主导地位。它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。
RDBMS的特点:
1、数据以表格的形式出现
2、每行为各种记录名称
3、每列各种记录名称所对应的数据域
4、许多的行和列组成一张表单
5、若干的表单组成database
ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServiceArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC.。
实现:
ODBC的运用形态通常是应用程序经过一个称之为ODBCA管理器的工具,间接用ODBC驱动程序,从数据库对于用户的应用程序而言,ODBC驱动程序是相对不可见的。用户只需要在ODBC管理器中配置相应的数据库的数据源信息,并登陆相应的ODBC驱动即可。
数据库管理的特点:
1、 相互关联的数据集合;
2、 较少的数据冗余;
3、 程序与数据相互独立;
4、 保证数据的安全的可靠;
5、 最大限度地保证数据的正确性;
6、 数据可以共享并能保证数据的一致性。
数据库系统组成:
1、 硬件
2、 软件
3、 人员
数据库关系模型是由实体和联系构成,即通常所说的E-R图。实体通常仪表的形式表现,
表每一行描述实体的一个实例,表的每一列描述实体的一个特征或属性。联系指实体间的对应关系,联系分为三种:一对一的联系,一对多的联系,多对一的联系。
关系数据库:基于关系模型的数据库,关系数据库中的数据结构是关系,关系是有行与列构成的二维表。在关系模型中,实体和实体间的关系都是用关系表示的。关系不但可以表示实体间一堆多的联系,通过建立关系间一对多的联系,通过建立关系的关联,也可以表示多对多的联系
主关键字(Primary Key)
主关键字是被挑选出来,作表的行的惟一标识的候选关键字。一个通常只有主关键字。主关键字又可以称为主键。特点:不为空,不能有相同值,一张表中只能有一个逐渐
外关键字(Foreign Key)
外关键字表示了两个关系之间的联系。以另一个关系的外关键字作主关键字的表被称为主表,具有此外关键字的表被称为主表的从表。外关键字又称作外键。外键的选择体现了表(实体)之间的联系。特点:在表之间建立约束(引用性约束)可为空,如果不空则值不能相同,一个表可有多个惟一性。
表(Table)
数据库中主要的对象。
指关系数据库系统的二维表,也即关系。
一般来说,关系数据库表的结构包含三个基本组成元素:字段名、数据类型和长度。
CREATE TABLE Employee
(
Employee_Id varchar(20),
Employee_Name varchar(50),
Employee_Depart varchar(100),
Job_Id varchar(20),
Employee_Salary decimal(18,2)
)
索引(Index)和视图(View)
索引(Index):是根据指定的数据库表列建立起来的顺序,它提供了快速访问数据的途径。
视图(View):视图看上去同表似乎一模一样,具有一组命名的、不重复的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存在。它是数据库预编译好的一段查询语句。
存储过程(Procedure)
存储过程是为完成特定的功能而汇集在一起的一组SQL程序语句,经编译后存储在数据库中的SQL程序。
CREATE PROCEDURE P_GET_EMPLOYEE_INFO_BY_ID
(
@employee_id INT
)
AS
BEGIN
SELECT * FROM Employee WHERE Employee_Id=@employee_id
END
GO
函数(Function)
与存储过程相比,函数必须具有返回值,并且使用的SQL语句也有诸多限制创建函数(返回varchar类型的值)
create function test(@Num varchar(20))--@Num 参数
returns varchar(50) --返回值类型
as
begin
declare @MSG varchar(20)
if(@Num =1)
select @MSG ='正确'
else
select @MSG ='错误'
return @MSG
end
调用函数
select dbo.test(2)--传递参数2
返回结果:错误
聚合函数
COUNT
SELECT COUNT(*) FROM Employee WHERE Job_Id = ‘0001’
SUM
AVG
MAX
MIN
简单的SELECT
简单的SELECT语句的语法如下;
SELECT [DISTINCT]<目标表达式>[,<目标表达式>]…
FROM <表或视图名>[, <表或视图名>]…
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAVING <条件表达式>]]
[ORDER BY [列名2> [ASC | DESC]]
Select * from employee where fname=‘Paolo’
使用函数:
Select convert(char(10),getdate(),121);
Select upper(lname)from employee where fname=’Paolo’;
Select dataDiff(DAY,’2008-12-12’,’2008-12-25’)
判断分支:
select case when fname='Anabela' then '1'
when fname='Ann' then '2'
else 'name'
end
from employee
order by fname

select嵌套:
Select * from employee where job_id in (select job_id from jobs where min_lvl between 0 and 10);
别名定义:
Select upper(lname) Uname from employee a where fname='Paolo';

表连接(多表查询)
select * from employee a,jobs b where a.job_id=b.job_id;
以a表为主表:select * from employee a,jobs b where a.job_id *= b.job_id;
以b表为主表:select * from employee a,jobs b where a.job_id =* b.job_id;
Oracle的写法是:
以a表为主表:select * from employee a,jobs b where a.job_id = b.job_id(+);
以b表为主表:select * from employee a,jobs b where a.job_id(+) = b.job_id;
通用的写法:
select * from employee a inner join jobs b on a.job_id = b.job_id;
select * from employee a left join jobs b on a.job_id = b.job_id;
select * from employee a right join jobs b on a.job_id = b.job_id;
简单的update语句:
UPDATE Student SET Student_Name=‘保罗’ WHERE Student_Id=‘0001’;
表联合更新:
Update B set B.字段=A.字段 from A,B where B.条件字段=A.条件字段

Insert语句:
INSERT INTO tb1 (Name) VALUE (‘Jerry Obama‘);
查看数据库表结构:
SELECT User,host,password FROM user;
创建数据库
CREATE DATABASE mysql;
CREATE DATABASE IF NOT EXISTS mysql;
CREATE DATABASE IF NOT EXISTS mysdb;
修改表内容:
UPDATE tb1 SET Age=38 WHERE Name=‘Jerry Obama‘;
查看表:
SELECT * FROM tb1;
删除表内容:
DELETE FROM tb1 WHERE Name‘Jerry Obama’;
查看表的结构:
DESC tb1;
删除表:
DROP TABLE IF EXISTS (表名);
删除数据库:
DROP DATABASE mydb;
数据库引擎:
MyISAM 默认存储引擎它基于更老的ISAM代码,有很多有用的扩展
InnDBM 支持事务
NDB 集群
Archive 集群中专用存储引擎
Federated 联合存储引擎
Memory 内存数据库 不能长久存储数据
Merge 合并 将两个MyISAM表合并成一个表中的数

本文出自 “雨季的问候” 博客,请务必保留此出处http://rain1118.blog.51cto.com/4350097/824750
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: