SQL基础学习1

基本概念:

数据库(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 新表名

P.S:本文所讨论的SQL语句均为标准SQL语句,由于各个数据库的语法都不尽相同,故在细节上会有所差异。如,插入语句在MySQL中应将上述语句中的“BEGIN TRANSACTION” 改为 “START TRANSACTION”,而在DB2和Oracle中直接将“BEGIN TRANSACTION”删除即可。




你可能感兴趣的:(数据库)