什么是数据库,作用是什么?
数据和数据库(DB)
利用计算机进行数据处理,首先需要将信息以数据形式存储到计算机中,因为数据是可以被计算机接收和处理的符号。根据所表示的信息特征不同,数据有不同的类别,如数字、文字、表格、图形/图像和声音等。
数据库(DataBase,DB),顾名思义,就是存放数据的仓库,其特点是数据按照数据模型组织,是高度结构化的,可供多个用户共享并且具有一定的安全性。
数据库管理系统(DBMS)
数据库管理系统即DBMS(DataBase Management System),它是位于用户应用程序和操作系统之间的数据库管理系统软件,其主要功能是组织、存储和管理数据,高效地访问和维护数据,即提供数据定义、数据操纵、数据控制和数据维护等功能。常用的数据库管理系统有Oracle、Microsoft SQL Server和MySQL等。 数据库系统即DBS(DataBase System),是指按照数据库方式存储和维护数据,并向应用程序提供数据访问接口的系统。DBS通常由数据库、计算机硬件(支持DB存储和访问)、软件(包括操作系统、DBMS及应用开发支撑软件)和数据库管理员(DataBase Administrator,DBA)四个部分组成。其中,DBA是控制数据整体结构的人,负责数据库系统的正常运行,承担创建、监控和维护整个数据库结构的责任。
什么是SQL语言?
结构化查询语言(Structured Query Language,SQL)是用于关系数据库操作的标准语言,最早由Boyce和Chambedin在1974年提出,称为SEQUEL语言。 目前,许多关系型数据库供应商都在自己的数据库中支持SQL语言,如Access、MySQL、Oracle和Microsoft SQL Server等,其中大部分数据库遵守的是SQL-89标准。
SQL语言由以下三部分组成:
- 数据定义语言(Data Description Language,DDL),用于执行数据库定义的任务,对数据库及数据库中的各种对象进行创建、删除和修改等操作。数据库对象主要包括表、默认约束、规则、视图、触发器和存储过程等。
- 数据操纵语言(Data Manipulation Language,DML),用于操纵数据库中各种对象,检索和修改数据。
- 数据控制语言(Data Control Language,DCL),用于安全管理,确定哪些用户可以查看或修改数据库中的数据。
什么是表(table)?
表是在日常工作和生活中经常使用的一种表示数据及其关系的形式
学 号 | 姓 名 | 专 业 名 | 性 别 | 出 生 时 间 |
150201 | 王 一 | 计算机 | 男 | 1996/10/01 |
150202 | 王 巍 | 计算机 | 女 | 1997/02/08 |
150302 | 林 滔 | 电子工程 | 男 | 1996/04/06 |
150303 | 江为中 | 电子工程 | 男 | 1999/12/08 |
表结构
每个数据库包含若干个表。每个表具有一定的结构,称为表的“型”。所谓表型是指组成表的各列的名称及数据类型,也就是日常表格的“栏目信息”。
记录
每个表包含若干行数据,它们是表的“值”,表中的一行称为一个记录(Record)。因此,表是记录的有限集合。
字段
每个记录由若干个数据项构成,将构成记录的每个数据项称为字段(Field)。字段包含的属性有字段名、字段数据类型、字段长度及是否为关键字等。
关键字
在学生表中,若不加以限制,则每条记录的姓名、专业、性别和出生时间这四个字段的值都有可能相同,但是学号字段的值对表中所有记录来说则一定不同,即通过“学号”字段可以将表中的不同记录区分开来。
什么是视图(view)?
视图是从一个或多个表(或视图)导出的表。视图与表不同,它是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义操作与视图相关联的基本表。视图一经定义后,就可以像表一样被查询、修改、删除和更新。使用视图具有便于数据共享、简化用户权限管理和屏蔽数据库的复杂性等优点。
常用SQL查询指令(SELECT)
完备的SELECT语句很复杂,它主要的子句如下:
SELECT [DISTINCT] [别名.]字段名或表达式 [AS 列标题]/* 指定要选择的列或行及其限定 */
//(a)
FROM table_source /* FROM子句,指定表或视图 */
[ WHERE search_condition ] /* WHERE子句,指定查询条件 */
//(b)
[ GROUP BY group_by_expression ]
/* GROUP BY子句,指定分组表达式 */
[ ORDER BY order_expression [ ASC | DESC ]]
/* ORDER BY子句,指定排序表达式和顺序 */
//(c)
(1)查询Student数据库。查询students表中各个同学的姓名和总学分。
USE Student SELECT name,totalscore FROM students
(2)查询表中所有记录。查询students表中各个同学的所有信息。
SELECT * FROM students
(3)条件查询。查询students表中总学分大于等于120的同学的情况。
SELECT * FROM students WHERE totalscore >= 120
(4)多重条件查询。查询students表中所在系为“计算机”且总学分大于等于120的同学的情况。
SELECT * FROM students WHERE department='计算机' AND totalscore >= 120
(5)使用LIKE谓词进行模式匹配。查询students表中姓“王”且单名的学生情况。
SELECT * FROM students WHERE name LIKE '王_'
常用SQL插入指令(INSERT)
INSERT可添加一条或多条记录至一个表中。
INSERT有两种语法形式。
语法1:
INSERT INTO target [IN externaldatabase] (fields_list) //(a)
{DEFAULT VALUES|VALUES(DEFAULT|expression_list)} //(b)
语法2:
INSERT INTO target [IN externaldatabase] fields_list
{SELECT…|EXECUTE…}
insert into teacher values(”,’allen’,'大连一中’,'1976-10-10′);
常用SQL删除指令(DELETE)
DELETE用于从一个或多个表中删除记录。
DELETE语句的语法格式如下:
DELETE FROM table_names
[WHERE…]
例如,用以下语句从students表中删除姓名为“罗亮”的记录:
DELETE FROM students
WHERE name = '罗亮'
常用SQL修改指令(UPDATE)
UPDATE语句用于更新表中的记录。
UPDATE语句的语法格式如下:
UPDATE table_name
SET Field_1=expression_1[,Field_2=expression_2…]
[FROM table1_name|view1_name[,table2_name|view2_name…]]
[WHERE…]
其中,Field是需要更新的字段,expression表示要更新字段的新值表达式。
例如,以下语句将计算机系学生的总分增加10:
UPDATE students
SET totalscore = totalscore +10
WHERE department = '计算机'