SQL基础教程|第一章:数据库和SQL

前言:
1.本书在知识点提炼时侧重于实践效果,所以有些理论部分的知识点不会涉及或者几笔带过。
2.在语法实践时将会带入更多的例子和问题以便于理解数据库语法。
3.在所有关于SQL基础教程的文章中的语句全部都是用SQL Server来编写的。

1.1 数据库是什么
(1)数据库管理系统(Database Management System,DBMS):用来管理数据库的计算机系统。
(2)数据库(Database,DB):将大量数据保存起来并且通过计算机加工而成的可以进行高效访问的数据集合。
(3)DBMS的种类:
1.层次数据库(Hierarchical Database,HDB)
2.关系数据库(Relational Database,RDB) — 应用最为广泛,也是这本书中所介绍的
3.面向对象数据库(Object Oriented Database,OODB)
4.XML数据库(XML Database, XMLDB)
5.键值储存系统(Key-Value Store,KVS)
1.2 数据库的结构
(1)表:在关系数据库中用来管理数据的二维表
(2)字段:表的列(垂直方向)
(3)记录:表的行(水平方向)
(4)单元格:行和列交汇的方格
Add:
(5)关系数据库必须以行为单位进行数据编写,一个单元格只能输入一个数据。
1.3 SQL概要
(1) SQL语句及其种类:

  1. DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中表等对象。DDL中有一下几种指令。
    a. CREATE:创建数据库和表等对象
    b. DROP:删除数据库和表等对象
    c.ALTER:修改数据库和表等对象的结构
  2. DML(Data Manipulation Language,数据操纵语言)用来查询或者变更表中的记录。DML包括以下几种指令。
    a. SELECT:查询表中的数据
    b. INSERT:向表中插入新数据
    c. UPDATE:更新表中的数据
    d. DELETE:删除表中的数据
  3. DCL(Data Control Language,数据控制语言)用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对RDBMS的用户是否有权限操作数据库中的对象(数据库中的表等)进行设定。DCL包含以下几种指令。
    a. COMMIT:确认对数据库中的数据进行的变更
    b. ROLLBACK:取消对数据库中的数据进行的变更
    c. GRANT:赋予用户操作权限
    d. REVOKE:取消用户的操作权限

(2)SQL的基本书写规则
4. SQL语句要以分号(;)结尾
5. SQL语句不区分大小写(数据除外):最好按照以下要求书写SQL语句
关键字大写,表名的首字母大写,其余小写
6. 单词需要用半角空格或者换行来分隔

1.4 表的创建
(1)数据库的创建(CREATE DATABASE语句)
语法:CREATE DATABASE <数据库名称>;
eg:创建数据库名字为a的数据库

CREATE DATABASE a;

(2)表的创建(CREATE TABLE语句)
语法:CREATE TABLE <表名> (
<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
…… …… ……
<该表的约束1>, <该表的约束2>, ……);
eg:创建Product表,要求有字节长度为4列名商品序号(product_id),长度为100的可变长字节列名商品名称(product_name),字节长度为32的可变长字节列名商品种类(product_type)的三个列名要求都有非空约束,主键为商品序号和商品名称。

CREATE TABLE Product(
 product_id      CHAR(4)        NOT NULL,
 product_name    VARCHAR(100)   NOT NULL,
 product_type    VARCHAR(32)   NOT NULL,
 PRIMARY KEY(product_id, product_name);

(3)命名规则:只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称。
Attention:在同一个数据库中不能创建两个相同名称的表,在同一个表中也不能创建两个名称相同的列
(4)数据类型的指定:四种基本数据类型

  1. INTEGER型:整数型
  2. CHAR型:定长字符串型
  3. VARCHAR型:可变长字符串型
  4. DATE型:日期型
    (4)约束的设置:略(后面章节有详细内容)
    (5)键:在指定特定数据时使用的列的组合。主键:可以特定一行数据的列。

1.5表的删除和更新
(1)表的删除(DROP TABLE)【后面会介绍另外一个删除语法为Delete,并且介绍两者的区别】
语法:DROP TABLE <表名>;
(2)表定义的更新(ALTER TABLE语句)
添加列语法:ALTER TABLE <表名> ADD <列名>;
删除列语法:ALTER TABLE <表名> DROP <列名>;

第一章练习:
1.1 编写一条CREATE TABLE语句,用来创建一个包含表1-A中所列各项的表Addressbook(地址簿),并为regist_no(注册编号)列设置主键约束。

列的含义列的名称数据类型约束
注册编号regist__no整数型不能为NULL、作为主键
姓名name可变长字符串类型(长度为128)不能为NULL
住址address可变长字符串类型(长度为256)不能为NULL
电话号码tel_no定长字符串类型(长度为10)
邮箱地址mail_address定长字符串类型(长度为20)
CREATE TABLE Addressbook(
regist_no      Integer        NOT NULL,
name           VARCHAR(128)   NOT NULL,
address        VARCHAR(256)   NOT NULL,
tel_no         CHAR(10), 
mail_address   CHAR(20),
PRIMARY KEY (regist_no));

1.2 假设在创建练习1.1中的Addressbook表时忘记添加如下一列postal_code(邮政编码)了,请把此列添加到Addressbook表中。
列名:postal_code
数据类型:定长字符串类型(长度为8)
约束:不能为NULL

ALTER TABLE Addressbook ADD postal_code CHAR(8) NOT NULL;

1.3 编写语句来删除Addressbook表。

DROP TABLE Addressbook;

1.4 编写语句来恢复删除掉的Addressbook表。(一般来说删除表是无法恢复的,如在事务控制条件下则可以。)

TRANSCATION;
DROP TABLE Addressbook;
ROLLBACK;
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值