简介:

  数据库就是存放数据的仓库,只是这个仓库是存储在计算机存储设备上的,而且是按一定的格式存储的。

  数据库管理系统:

DBMS: 数据库管理系统Database Management System是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。能过户通过DBMS访问数据库中的数据,数据库管理员饿通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户不同的方法在同时或不同时刻去建立,修改和询问数据库。

 按功能划分,数据库管理系统大致可分为6个部分:

  模式翻译:提供数据定义语言(DDL)。用它书写的数据库模式被翻译为内部表示。数据库的逻辑结构、完整约束和物理储存结构保存在内部的数据字典中。数据库的各种数据操作(如查找、修改、插入和删除等)和数据库的维护管理都是以数据库模式为依据的。

  应用程序的编译:把包含着访问数据库语句的应用程序,编译成在DBMS支持下可运行的目标程序。

  交互式查询:提供易使用的交互式查询语言,如SQL.DBMS负责执行查询命令,并将查询结果显示在屏幕上。

  数据的组织与存取:提供数据在外为存储设备上的物理组织与存取方法。

  事务运行管理:提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查

事务的并发控制及系统恢复等功能。

  数据库的维护:为数据库管理员提供软件支持,包括数据安全控制、完整性保障、数据库

备份、数据库重组以及性能监控等维护工具。

计算机数据管理技术大致经历了送你个发展阶段:

自由管理阶段:用户以文件形式将数据组织起来,并附属在各自的应用程序下。

文件管理阶段:操作系统中的文件系统给出了统一的文件结构和共同存取的方法,用户可以把数据和信息作为文件长期地保存在计算机中,并可以方便地进行查询和处理。

数据库管理阶段:为了适应大量数据的集中存储,并提供给多个用户共享的要求,是数据与程序完全独立,最大限度地减少数据的冗余度,出现了数据库管理系统。

 

DBMS提供五种功能:

  数据定义功能。

  数据管理功能。

  对数据库进行保护。

  数据库的建立和维护。

  数据库的传输。

 RDBMSrelational 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 convertchar10),getdate(),121);

Select upperlnamefrom employee where fname=’Paolo’;

Select dataDiffDAY,’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 Userhostpassword 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 NameJerry Obama’;

   查看表的结构:

DESC tb1

  删除表:

DROP TABLE IF EXISTS (表名)

   删除数据库:

DROP DATABASE mydb

   数据库引擎:

MyISAM 默认存储引擎它基于更老的ISAM代码,有很多有用的扩展

InnDBM 支持事务

NDB 集群

Archive 集群中专用存储引擎

Federated 联合存储引擎

Memory 内存数据库 不能长久存储数据

Merge 合并 将两个MyISAM表合并成一个表中的数