sql基础教程1

1 数据库和sql

1-1 数据库是什么

数据库(DB)是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。用来管理数据库的计算机系统称为数据库管理系统(DBMS)。

DBMS的重要性:
多人共享数据;
提供操作大量数据所需的格式;
实现读写自动化不需要太多的编程能力;
可应对突发事故;
因此通过使用DBMS,多个用户便可安全、简单地操作大量数据。

DBMS的种类:
层次数据库(Hierarchical Database,HDB):树形结构
关系数据库(Relational Database,RDB):二维表
关系数据库通过关系数据库管理系统(RDBMS)进行管理。

比较具有代表性的 RDBMS (关系数据库管理系统)有如下 5 种:
Oracle Database:甲骨文公司的RDBMS
SQL Server:微软公司的RDBMS
DB2:IBM公司的RDBMS
PostgreSQL:开源的RDBMS
MySQL:开源的RDBMS

面向对象数据库(Object Oriented Database,OODB)
XML 数据库(XML Database,XMLDB):一种使用HTML那样的标签来表现数据结构的语言。
键值存储系统(Key-Value Store,KVS)

1-2 数据库的结构

RDBMS 通常使用客户端 / 服务器这样的系统结构。
通过从客户端向服务器端发送SQL语句来实现数据库的读写操作。
数据库表由表示数据项目的列(字段)和表示一条数据的行(记录)所组成,以记录为单位进行数据读写。

1-3 sql概要

SQL 是为操作数据库而开发的语言。
虽然SQL也有标准,但实际上根据RDBMS的不同SQL也不尽相同。
SQL 通过一条语句来描述想要进行的操作,发送给 RDBMS。
原则上SQL语句都会使用分号结尾。
SQL 根据操作目的可以分为 DDL、DML 和 DCL。

DDL(Data Definition Language,数据定义语言)用来创建或者删除存储 数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。
CREATE:创建数据库和表等对象
DROP: 删除数据库和表等对象
ALTER: 修改数据库和表等对象的结构

DML(Data Manipulation Language,数据操纵语言)用来查询或者变更 表中的记录。DML 包含以下几种指令。
SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据

DCL(Data Control Language,数据控制语言)用来确认或者取消对数据 库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限 操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。
COMMIT: 确认对数据库中的数据进行的变更
ROLLBACK :取消对数据库中的数据进行的变更
GRANT: 赋予用户操作权限
REVOKE: 取消用户的操作权限

字符串和日期常数需要使用单引号(’)括起来。日期以’年-月-日’的格式。

1-4 表的创建

表通过CREATE TABLE语句创建而成。
表和列的命名要使用有意义的文字。
指定列的数据类型(整数型、字符型和日期型等)。
可以在表中设置约束(主键约束和NOT NULL约束等)。
只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称 。名称必须以半角英文字母开头,同时名称不能重复。
数据类型表示数据的种类,包括数字型( INTEGER 型)、字符型(VARCHAR型)和日期型(DATE型)等。
约束一般为空值约束(NOT NULL或者NULL)和主键约束(PRIMARY KEY (列名))。

1-5 表的删除和更新

使用DROP TABLE语句来删除表。
使用ALTER TABLE语句向表中添加列或者从表中删除列。
DROP ALTER语句执行之后无法恢复,执行前请务必仔细确认。

本章代码

创建数据库:CREATE DATABASE <数据库名称>;
创建表:CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
<列名3> <数据类型> <该列所需约束>,
<列名4> <数据类型> <该列所需约束>,

<该表的约束1>, <该表的约束2>,…);
删除表:DROP TABLE <表名>;
更新表
添加列:ALTER TABLE <表名> ADD COLUMN <列的定义>;
删除列:ALTER TABLE <表名> DROP COLUMN <列名>;

 特定的 SQL
	Oracle 和 SQL Server 中不用写 COLUMN。
	ALTER TABLE <表名> ADD /DROP <列名>;
	另外,在 Oracle 中同时添加多列的时候,可以像下面这样使用括号。
	ALTER TABLE <表名> ADD/ DROP (<列名>,<列名>,......);

向表中插入数据
BEGIN TRANSACTION;
INSERT INTO <表名> VALUES (‘0004’, ‘菜刀’, 3000, 2800, ‘2009-09-20’);
COMMIT;

MySQL中:
START TRANSACTION;
INSERT INTO <表名> VALUES ('0004', '菜刀', 3000, 2800, '2009-09-20');
COMMIT;  

 Oracle 和 DB2 中:
 INSERT INTO <表名> VALUES ('0004', '菜刀', 3000, 2800, '2009-09-20');
COMMIT; 

变更表名:
Oracle PostgreSQL
ALTER TABLE Poduct RENAME TO Product;
DB2
RENAME TABLE Poduct TO Product;
SQL Server
sp_rename ‘Poduct’, ‘Product’;
MySQL
RENAME TABLE Poduct to Product;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值