前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习SQL【2】-数据库与SQL

学习SQL【2】-数据库与SQL

作者头像
爱吃西瓜的番茄酱
发布2018-04-04 11:26:29
4K0
发布2018-04-04 11:26:29
举报

一:数据库是什么?

1:定义 ● 将大量数据通过计算机加工而成的可以进行高效访问的数据集合称为数据库(DB)。 ● 用来管理数据库的计算机系统称为数据库管理系统(DBMS)。 ● 关系数据库通过关系型数据库管理系统(RDBMS)进行管理。

2:为什么DBMS那么重要? 答:DBMS能够实现多个用户同时安全简单的操作大量数据。

3:DBMS的种类 ● 层次数据库(HDB):最古老的数据库之一,现在已经很少使用了。 ● 关系数据库(RDB):关系数据库是现在应用最广泛的数据库。它采用由行和列组成的二维表来管理数据。同时,它使用SQL(结构化查询语言)对数据进行操作。

4:关系数据库管理系统(RDBMS)的种类 ● oracle :甲骨文公司的RDBMS。 ● SQL server:微软公司的RDBMS。 ● DB2:IBM公司的RDBMS。 ● PostgreSQL:开源的RDBMS。 ● MySQL:开源的RDBMS。

二:数据库的结构

1:RDBMS的常见结构 RDBMS最常见的系统结构是客户端/服务器类型(C/S)结构。

2:表的结构 ● 用来管理数据的二维表在关系数据库中简称为表。 ● 根据SQL语句的内容返回的数据同样是二维表格式。 ● 表的行称为记录,表的列称为字段。 ● 关系数据库必须以行作为单位进行数据读写。 ● 一个单元格内只能输入一个数据。 如下图:

三:SQL概要

1:标准SQL 国际标准化组织(ISO)为SQL制定了相应的标准,以此为基准的SQL称为标准SQL

虽然不同的RDBMS存在一些特使的SQL语句,但学会标准SQL就可以在各种RDBMS中书写SQL语句了。

2:SQL语句及其种类 SQL使用关键字、表名、列名等组合成一句SQL语句来描述操作的内容。

根据指令种类不同,SQL语句可分为三种:

● DDL(数据定义语言):用来创建和删除数据库或表等对象。DDL包含以下指令: ① CREATE:创建数据库或表。 ② DROP:删除数据库或表。 ③ ALTER:修改数据库或表。

● DML(数据操纵语言):用来查询或变更表中的记录。DML包含以下指令: ① SELECT:查询表中的数据。 ② INSERT:向表中插入数据。 ③ UPDATE:更新表中的数据。 ④ DELETE:删除表中的数据。

● DCL(数据控制语言):用来确认或取消对数据进行的更改。DCL包含以下几种指令: ① COMMIT:确认数据的变更。 ② ROLLBACK:取消数据的变更。 ③ GRANT:赋予用户操作权限。 ④ REVOKE:取消用户的操作权限。

3:SQL的基本书写规则 ● SQL语句要以分号(;)结尾。

● SQL不区分关键字的大小写,但是插入到表中的数据是区分大小写的。 通常情况下,约定: ① 关键字大写 ② 表名的首字母大写。 ③ 其余(列名等)小写。

●字符串和日期常数需要使用单引号(‘)括起来。 如’abc’这样的字符串,或’2017-12-01’这样的日期。

● 数据常数无需加单引号(直接书写数字即可)。 如1000这样的数字直接书写即可。

● 单词需要半角空格或换行符来分隔。 如:CREATE TABLE Product;

四:表的创建

1:数据库的创建

代码语言:javascript
复制
CREATE DATABASE <数据库名称>;

如我创建一个名为shop的数据库:

代码语言:javascript
复制
CREATE DATABASE shop;

2:表的创建 创建表的语句:

代码语言:javascript
复制
CREATE TABLE  <表名>
( <列名1> <数据类型> <约束条件>,
  <列名2> <数据类型> <约束条件>,
  <列名3> <数据类型> <约束条件>,
  <列名4> <数据类型> <约束条件>,
  ....
  <该表的的约束条件1>  <该表的的约束条件2>...);

例如我创建的Product表:

3:命名规则 ● 数据库名称、表名、列名可以使用英文字母、数字和下划线三种字符组成。 ● 名称必须以英文字母开头。 ● 名称不能重复。 如下图所示:

4:数据类型的指定 ● 所有列都必须指定数据类型。 ● 数据类型包括数字型、字符型和日期型等。

我们常用的有如下四种数据类型: ① INTEGER型:指定存储整数的列,不能存放小数。

② CHAR型:定长字符串型,所谓定长字符串,就是当列中存储的字符串长度达不到最大长度时,使用半角空格进行补齐。 例如,我们向CHAR(8)类型的列输入’abc’的时候,会以’abc ‘(后面跟5个空格)的形式保存下来。

③ VARCHAR型:可变长字符串型,顾名思义,即使字符串未达到最大长度,也不会使用空格补齐。

④ DATE型:指定存储日期的数据类型。 如下图:

5:约束的设置 约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能。 例如:

代码语言:javascript
复制
product_id    CHAR(4)       NOT NULL;
product_name  VARCHAR(100)  NOT NULL;
product_type  VARCHAR(32)   NOT NULL;

数据类型的右侧设置了NOT NULL 约束,NULL是代表空白的关键字,NOT NULL 就代表不能输入空白,也就是必须输入数据的约束。

再例如:

代码语言:javascript
复制
PRIMARY KEY (product_id)

这是用来给 product_id 列设置主键约束的,主键就是特定一行数据的列,也是唯一确定的一行数据的列。

五:表的更新和删除

1:表的删除 使用语句:

代码语言:javascript
复制
DROP TABLE <表名>;

删除了表是无法恢复的。

2:表定义的更新 添加列的语句:

代码语言:javascript
复制
ALTER TABLE <表名> ADD COLUMN <列的定义>;

删除列的语句:

代码语言:javascript
复制
ALTER TABLE <表名> DROP COLUMN <列名>;

表定义变更之后无法恢复。

3:向Product表中插入数据 语句如下:

代码语言:javascript
复制
BEGIN TRANSACTION;

INSERT INTO Product VALUES ('0001', 'T衫', '衣服', 1000, 500, '2017-09-20');
INSERT INTO Product VALUES ('0002', '打孔器', '办公用品', 500, 320, '2017-09-11');
..........
..........
..........
COMMIT;

注释:在MySQL中,需要把第一行的 BEGIN TRANSACTION; 改写为:

代码语言:javascript
复制
START TRANSACTION;

向Product插入数据后,结果如下图所示:

下一节我们再学习SQL的查询语句。

每天学习一点点,每天进步一点点。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档