关于SQL学习笔记整理

逻辑结构

数据视图、数据模型

 数据抽象共有三个层次:物理层、逻辑层和视图层.
 数据模型通常由数据结构、数据操作和完整性约束三部分组成.

数据库模式

  • 物理模式(内模式):在物理层描述数据库中全体存储结构和存取方法;
  • 逻辑模式(概念模式):在逻辑层描述数据库中全体数据的逻辑结构和特征;
  • 子模式(外模式):描述数据库用户能够看见和使用的局部数据的逻辑结构和特征.

 通常一个数据库只有一个物理模式和一个逻辑模式,但是子模式有若干个.

关系模型

 关系模型由关系数据结构关系操作集合关系完整性约束三部分构成.

 关系操作的特点是集合操作方式,即操作的对象和结果都是集合.关系操作可以使用两种方式定义:基于代数的定义为关系代数;基于逻辑的定义为关系演算.由于使用变量的不同,关系演算又分为元组关系演算域关系演算.

 关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义完整性.其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件.实体完整性规则是:关系的主码不能取空值.参照完整性规则是:外码必须是另一个表中主码的有效值,或者是”空值”.

视图和表

 数据库汇总的数据都会存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结构集.视图只能进行select操作.

视图
存在形式 物理存在 虚拟内存表
存在模式 内模式 外模式
属性 内容 窗口
编译sql语句
实际物理内容
存在模式 全局模式 局部模式

事务

 事务是一系列的数据库才做,是数据库应用程序的基本单元,是反应现实世界需要以完整单位提交的一项工作.事务是用户定义的一个数据库操作序列.
 事务的四个特征:原子性、一致性、隔离性和持久性.
 事务处理包括数据库恢复和并发控制.数据库恢复有两个目的:保证事务的原子性和使数据库能恢复到正确状态.


基础语法

三大数据类型

数字类型

  • 整数: tinyint、smallint、mediumint、int、bigint
  • 浮点数: float、double、real、decimal

日期和时间

  date、time、datetime、timestamp、year

字符串类型

  • 字符串: char、varchar
  • 文本: tinytext、text、mediumtext、longtext
  • 二进制: tinyblob、blob、mediumblob、longblob

SQL

  • SQL指结构化查询语言
  • SQL使我们有能力访问数据库
  • SQL是一种ANSI的标准计算机语言

SQL语法

注:SQL对大小写不敏感!!!

DML(数据操作语言)

  查询和更新指令

  • SELECT-从数据库表中获取数据
  • UPDATE-更新数据库表中的数据
  • DELETE-从数据库表中删除数据
  • INSERT INTO-从数据库表中插入数据

DDL(数据定义语言)

  创建和删除指令

  • CREATE DATABASE-创建新数据库
  • ALTER DATABASE-修改数据库
  • CREATE TABLE-创建新表
  • ALTER TABLE-变更(改变)数据库表
  • DROP TABLE-删除表
  • CREATE INDEX-创建索引(搜索键)
  • DROP INDEX-删除索引

SQL语句


SELECT语句

  用于从表中选取数据.星号(*)是选取所有列的快捷方式.

    SELECT 列名称 FROM 表名称
    SELECT * FROM 表名称

Text: Persons表

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 arter Thomas Changan Street Beijing
    SELECT LastName,FirstName FROM Persons
LastName FirstName
Adams John
Bush George
arter Thomas

DISTINCT语句

  用于列出不同的值.

    SELECT DISTINCT 列名称 FROM 表名称

Text: Orders表

Company OrderNumber
IBM 2589
Window 1265
Apple 7841
Window 4765
    SELECT Company FROM Orders
Company
IBM
Window
Apple
Window
    SELECT DISTINCT Company FROM Orders
Company
IBM
Window
Apple

WHERE语句

 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句.

    SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
操作符 描述
= 等于
<> 不等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEB 在某个范围内
LIKE 搜索某种模式

Text: Persons表

LastName FirstName Address City Year
Adams John Oxford Street London 1970
Bush George Fifth Avenue New York 1975
Arter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985
    SELECT * FROM Persons WHERE City='Beijing'
LastName FirstName Address City Year
Arter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985

LIKE操作符

 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式.

    SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE pattern

Persons表

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Arter Thomas Changan Street Beijing

Text1: (以…开头)

    SELECT * FROM Persons
    WHERE City LIKE 'N%'
Id LastName FirstName Address City
2 Bush George Fifth Avenue New York

提示:‘%’ 可用于定义通配符(模式中缺少的字母).
Text2:(以…结尾)

    SELECT * FROM Persons
    WHERE City LIKE '%g'
Id LastName FirstName Address City
3 Arter Thomas Changan Street Beijing

Text3:(包含…)

    SELECT * FROM Persons
    WHERE City LIKE '%lon%'
Id LastName FirstName Address City
1 Adams John Oxford Street London

Text4:

    SELECT * FROM Persons
    WHERE City NOT LIKE '%lon%'
Id LastName FirstName Address City
2 Bush George Fifth Avenue New York
3 arter Thomas Changan Street Beijing

BETWEEN操作符

 在WHERE子句中使用,作用是选取介于两个值之间的数据范围.

    SELECT column_name(s)
    FROM table_name
    WHERE column_name
    BETWEEN value1 AND value2

Person表

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
4 Gates Bill Xuanwumen 10 Beijing

Text1:

    SELECT * FROM Persons
    WHERE LastName
    BETWEEN 'Adams' AND 'Carter'
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

StringBuilder

 StringBuilder是一个可变的字符序列.
 StringBuilder使用

    StringBuilder strSql = new StringBuilder();

常用方法(Append)

 Append方法:将文本或对象的字符串表示形式添加到由当前StringBuilder对象表示的字符串的结尾处.



笔记      Learning Notes Informal Essay SQL Notes

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!