基本概念:
数据库(Database,DB)的定义:将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合;
数据库管理系统(Database Management System,DBMS)的定义:用来管理数据库的计算机系统;
关系数据库管理系统(Relational Database Management System,RDBMS)的定义:采用行列二维表结构来管理数据,同时使用专门的结构化查询语言(Structured Query Language,SQL)对数据进行操作;(比较具有代表性的RDBMS有:Oracle Database、SQL Server、DB2、PostgreSQL、MySQL等);
RDBMS的常见系统结构:客户端/服务器(C/S类型){服务器:用来接收其它程序 发出的请求,并对请求进行相应处理的程序(软件),或安装了此类程序的设备(如服务员);客户端:向服务器发出请求的程序,或者安装了该程序的设备(如委托人)}
表:在RBD中用来管理数据的二维表。RBD必须以行为单位进行数据读写,且在每一个单元格中只能输入一个数据。
标准SQL概要:
根据对RBDMS赋予的指令种类不同,SQL语句可以分为三类:
1.数据定义语言(Data Definition Language,DDL):用来创建或删除存储数据用的数据库及数据库中的表等对象。包含以下几个命令:CREATE(创建数据库或表等对象),DROP(删除数据库或表等对象),ALTER(修改数据库或表等对象的结构);
2.数据操作语言(Data Manipulation Language,DML):用来查询或变更表中的记录。包含以下几个命令:SELECT(查询表中的数据),INSERT(向表中插入新数据),UPDATE(变更表中的数据),DELETE(删除表中的数据);
3.数据控制语言(Data Control Language,DCL):用来确认或取消对数据库中的数据进行变更,还可以对RDMS的用户是否有权限操作数据库中的对象进行设定。包括以下几个命令:COMMIT(确认对数据库中的数据进行变更),ROLLBACK(取消对数据库中的数据进行变更),GRANT(赋予用户操作权限),REVOKE(取消用户的操作权限)。
SQL基本书写规则:
1.SQL语句以分号(;)结尾
2.SQL语句不区分大小写(推荐:关键字大写,表名首字母大写,其余(列名等)小写),但插入表中的数据的区分大小写的
3.常数的书写方式是固定的(除数字常数外,其它类型的常数(如:字符串、日期等)都要使用单引号来标识)
4.单词之间需要用半角空格或换行符来分隔(注意不能使用全角空格,不能在两个子句之间插入空行)(所谓半角空格、全角空格是指输入的格式)
表的创建:
1.数据库的创建:CREATE DATABASE 数据库名 (如:CREATE DATABASE Shop)
2.表的创建:
CREATE TABLE 表名
(列名1 数据类型 该列所需约束,
列名2 数据类型 该列所需约束,
......
该表的约束1,该表的约束2,......
)
2.1 命名规则:
只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称,且必须以英文字母开头。同一数据库中不能创建两个同名表,同一表中不能创建两个同名列。
2.2 数据类型
所有的列都必须指定数据类型,且每一列都不能存储与该列数据类型不符的数据。SQL的四种基本数据类型如下:
INTEGER型:用于存放整数型的数据,不能存储小数;
CHAR型:字符串以定长字符串的形式存储;如,CHAR(8):8表示字符串的最大长度,超过部分无法输入,不足部分用空格补足;
VARCHAR型:字符串以可变长字符串的形式存储;(与CHAR的区别在于:未到达最大长度时不会用空格补足)
DATE型:存储日期的数据类型
NUMBERIC型:NUMBERIIC(全体位数,小数位数)的形式来指定数值的大小(大多数DBMS适用)
2.3 约束设置
约束:除数据类型外,对列中存储的数据进行限制或追加条件的功能。
常见的约束设置有,在数据类型右边设定 NOT NULL 或 NULL 或 DEFAULT等;
对表的约束设置有,PRIMARY KEY(主键约束)等。
表的删除、更新与插入
表的删除:删除的表是无法恢复的
DROP TABLE 表名
表定义的更新:
表定义变更后无法恢复
--向表中添加一列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 约束
--从表中删除一列
ALTER TABLE 表名 DROP COLUMN 列名
向表中插入数据:
BEGIN TRANSACTION;
INSERT INTO 表名 VALUES (值1,值2, ...),
INSERT INTO 表名 VALUES (值1,值2,...),
...
INSERT INTO 表名 VALUES (值1,值2,...);
COMMIT;
变更表名:
ALTER TABLE 旧表名 RENAME TO 新表名