1-1 数据库是什么?
 
一、数据库的含义
数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。
数据库DB
 
二、数据库管理系统 DBMS
用来管理数据库的计算机系统称为数据库管理系统。
 
三、为什么DBMS那么重要
(1)无法多人共享数据
(2)无法提供大量数据所需的格式
(3)实现读写自动化需要编程能力
(4)无法应对突发事件
DBMS可以克服以上不足,实现多个用户同时安全简单地操作大量数据。
 
四、DBMS的种类
(1)层次型数据库HDB
(2)关系型数据库RDB
(3)面对对象数据库OODB
(4)XML数据库XMLDB
(5)键值存储系统KVS
 
1-2 数据库的结构
 
一、RDBMS的常见系统结构
服务器:服务器是用来接收其他程序发出的请求,并对该请求进行相应处理的程序(软件),或者是安装了此类程序的设备(计算机)。
 
客户端:向服务器发出请求的程序(软件),或者是安装了该程序的设备(计算机)称为客户端。
 
二、表的结构
 
注:根据SQL语句的内容返回的数据同样必须是二维表的形式。返回结果如果不是二维表的SQL语句则无法执行。
 
表的列(垂直方向)称为字段,它代表保存在表中的数据项目。
表的行(水平方向)称为记录,它相当于一条数据。
 
注:关系数据库必须以行为单位进行数据读写。
 
1-3 SQL概要
 
一、标准SQL
国际标准化组织(ISO)为SQL制定了相应的标准,以此为基准的SQL称为标准SQL。
 
二、SQL语句及其种类
SQL用关键字、表名、列名等组合而成一条语句(SQL语句)来描述操作的内容。
 
关键字:关键字是指那些含义或使用方法已事先定义好的英语单词。
 
DDL data definition language 数据定义语言。用来创建或删除存储数据用的数据库以及数据库中的表等对象。有以下几个指令:
CREATE:创建数据库和表等对象。
DROP:删除数据库和表等对象
ALTER:修改数据库和表等对象的结构
 
DML data manipulation language 数据操纵语言。用来查询或者变更表中的记录。有以下几个指令:
SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据
 
DCL data control language 数据控制语言。用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以RDBMS的用户是否有权限操作数据库中的对象(数据库表等)的设定,有如下命令:
COMMIT:确认对数据库中的数据进行的变更。
ROLLBACK:取消对数据库中的数据进行的变更
GRANT:赋予用户操作权限
REVOKE:取消用户的操作权限
 
注:实际使用中SQL语句当中有90%属于DML。
 
三、SQL的基本书写规则
 
(1)SQL语句要以分号;结尾。
(2)SQL语句不区分大小写。SQL不区分关键字的大小写。
SQL书写规则:
关键字大写
表名的首字母大写
其余(列名等)小写
注:插入的表中的数据是区分大小写。
(3)常数的书写方式是固定的。
在SQL语句中中直接书写的字符串、日期或者数字等称为常数。
字符串、日期用单引号引起来。'abc' '2010-01-26' '10/01/26'
数字不需要加任何符号标识。
(4)单词需要用半角空格或者换行来分隔。
 
1-4 表的创建
 
一、表的内容和创建
 
二、数据库的创建(CREATE DATABASE语句)
CREATE DATABASE < 数据库名称>;
注:数据库名称、表名以及列名都要使用半角字符(英文字母、数 字、符号)
 
三、表的创建(CREATE TABLE语句)
CREATE TABLE < 表名>
(< 列名1> <数据类型 > <该列所需约束 >,
< 列名2> < 数据类型> < 该列所需约束> ,
< 列名3> < 数据类型> <该列所需约束 >,
< 列名4> < 数据类型> <该列所需约束 >,
.
.
.
< 该表的约束1 > ,<该表的约束 2,....... >);
注:约束可以在定义列的时候进行设置,也可以在语句的末尾进行设置。
 
四、命名规则
只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称。
名称必须以半角英文字母开头。
名称不能重复。
 
五、数据类型的指定
所有列都必须指定数据类型。数据类型表示数据的种类,包括数字型、字符型和日期型。
 
根据业务需要实际创建数据库时,一定要根据不同的RDBMS选用最恰当的数据类型。
 
数值型:INTEGER型、
字符型:CHAR型(定长字符串)、VARCHAR型(变长字符串)
日期型:DATE型
 
六、约束的设置
约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能。
 
 
1-5 表的删除和更新
 
一、表的删除(DROP TABLE语句)
DROP TABLE <表名 >;
注:删除的表是无法恢复的。
 
二、表定义的更新(ALTER TABLE语句)
添加列:ALTER TABLE < 表名> ADD COLUMN <列的定义>;
删除列:ALTER TABLE < 表名> DROP COLUMN <列名>;
注:表定义变更之后无法恢复。
 
三、数据的插入(INSERT INTO语句)
START TRANSACTION;
 
INSERT INTO <表名> VALUES(<值1, 值2,........>);
INSERT INTO <表名> VALUES(<值1, 值2,........>);
INSERT INTO <表名> VALUES(<值1, 值2,........>);
INSERT INTO <表名> VALUES(<值1, 值2,........>);
.
.
.
COMMIT;
 
四、修改表名
MySQL:
RENAME TABLE <旧表名> to <新表名>;

第一章 数据库和SQL的更多相关文章

  1. 《SQL 基础教程》—第一章:数据库与 SQL

    导言 这一章的内容如下: 数据库简介 SQL 概要 表的创建 表的删除与更新 数据库简介 定义: Database, 是大量数据的集合Database Management System,是用于管理数 ...

  2. 第一章 数据库概述、MySQL的安装和配置

      第一章 数据库概述.MySQL的安装和配置   1.为什么要使用数据库 最早是纸质文件来存储数据 缺点:不易保存,占用空间大 计算机出现以后,采用软件来进行保存(excel) 缺点:容易损坏 文件 ...

  3. MySQL----MySQL数据库入门----第一章 数据库入门

    第一章 数据库入门 1.1 数据库基础知识 1.1.1 数据库概述 数据不仅包括普通意义上的数字,还包括文字.图像.声音等.也就是说,凡是在计算机中用来描述事物的记录都可称作数据. 数据库的基本特点: ...

  4. 第一章、关于SQL Server数据库的备份和还原(sp_addumpdevice、backup、Restore)

    在sql server数据库中,备份和还原都只能在服务器上进行,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,当在非服务器的机器上启动sql server客户端的时候,也可以通过该客户端来 ...

  5. 第一章 什么是SQL Server Integration Services (ssis) 系统。

    note:我也是刚入门的菜鸟,让我们大家一块学习SSIS系统,工作中需要用到SSIS.您的浏览是我更新的最大动力,谢谢!  SSIS是Microsoft SQL Server Integration ...

  6. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》

    一.课程笔记 1.1  软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...

  7. Python for Infomatics 第14章 数据库和SQL应用二(译)

    14.4 创建数据库和表 相比Python的列表和字典,数据库需要更多的已定义结构. 在我们创建数据库表之前,我们必须预先告诉数据库表和列的命名,以及计划保存到列中和数据类型.当数据库软件预先知道每列 ...

  8. Python for Infomatics 第14章 数据库和SQL应用一(译)

    14.1 什么是数据库 数据库一种存储结构数据的文件.绝大多数数据库类似字典——映射键和值的关系.最大的区别是数据库是保存在硬盘或其它永久性的存储上,所以在程序结束后它仍然存在.而保存在内存中的字典容 ...

  9. SQL基础教程(第2版)第1章 数据库和SQL

    ● 数据库有很多种类,本书将介绍如何使用专门的 SQL语言来操作关系数据库.● 关系数据库通过关系数据库管理系统(RDBMS)进行管理. 根据 SQL 语句的内容返回的数据同样必须是二维表的形式,这也 ...

随机推荐

  1. 分区助手里如何从临近盘(如D盘)抽取一定的空间给已经快满了的盘(如E盘)(博主推荐)(图文详解)

    不多说,直接上干货! 分区助手是什么?(博主推荐)(图文详解) 分区助手各版本比较(图文详解) 分区助手官网使用教程(专业版.绿色版和WinPE版)(图文详解) 安装分区助手时出现“分区助手已安装到你 ...

  2. 笛卡尔积算法的sku

    1.笛卡尔积在形式上比较容易理解,但作为按钮操作DOM的时候,我的思路大体还可以,有些偏差.看到这种矩行方阵,首先联想到二维数组,事实上这种方法完全可以实现,但是在性能和编码速度上都有弊端. 2.以下 ...

  3. 解决iptables nat sctp协议无效的问题

    环境组网如下: A----->B-----C IP如下: A:1.1.1.1 B:1.1.1.2; 2.2.2.1 C:2.2.2.2 需求为,A 需要使用sctp连通C 在B机器上添加ipta ...

  4. pandas 去除NAN

    df = df.dropna(axis=0, how='any')

  5. [LeetCode]SetMatrix Zero

    题目说明 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. c ...

  6. Java 裁剪图片

    package com.test; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.Ima ...

  7. Hdfs数据备份

    Hdfs数据备份 一.概述 本文的hdfs数据备份是在两个集群之间进行的,如果使用snapshot在同一个集群上做备份,如果datanode损坏或误操作清空了数据,这样的备份就无法完全保证数据安全性. ...

  8. 百度前端技术学院-task1.8源代码

    主要是不采用bootstrap实现网格. 遇到的困难及注意点如下: 1.[class*='col-'],这个是选择col-开头的类,第一次用,以前也只是看到过: 2.媒体查询,总觉得容易理解错误.@m ...

  9. Golang cron 定时任务使用

    1.cron 表达式的基本格式 用过 linux 的应该对 cron 有所了解.linux 中可以通过 crontab -e 来配置定时任务.不过,linux 中的 cron 只能精确到分钟.而我们这 ...

  10. Node.js链式回调

    由于异步的关系,代码的书写顺序可能和执行顺序并不一样,可能想先执行A再执行B,但由于异步可能B要先于A执行.例如在OC中使用AFnetworking请求数据然后刷新页面,由于网络请求是用block实现 ...