SQL与MySQL概述

本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2021-04-18

一、SQL 概述

1.SQL的发展

SQL(结构化查询语言)是 1974 年由Boyce 和 Chamberlin 提出的。

  • 1986年10月,美国国家标准局颁布;
  • 1987年6月,成为国际标准;
  • 1989年4月,ISO 提出 SQL89;
  • 1992年,ANSI和ISO 共同颁布 SQL92(SQL2);
  • 1999年,颁布SQL99(SQL3)

目前没有一个数据库系统能够支持 SQL 标准的全部概念和特性,各个关系数据库管理产品在实现标准SQL时各有差异,与SQL标准的符合程度也不相同 ,但它们仍然遵循SQL标准 ,并以SQL标准为主体进行相应的扩展。

2.SQL的特点

  • SQL 不是某个特定数据库供应商专有的语言;
  • SQL 简单易学;
  • SQL 尽管看上去简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。

3.SQL的组成

SQL 集数据查询、数据定义、数据操纵和数据控制四大功能于一体,其核心主要包含以下几面:

  • 数据定义语言(Data Definition Language, DDL):

    • CREATE:用于创建数据库或数据库对象;
    • ALTER:用于对数据库或数据库对象进行修改;
    • DROP:用于删除数据库或数据库对象;
  • 数据操纵语言(Data Manipulation Language, DML)

    • SELECT:用于从表或视图中检索数据;
    • INSERT:用于将数据插入表或视图中;
    • UPDATE:用于修改表或视图中的数据;
    • DELETE:用于从表或视图中删除数据;
  • 数据控制语言(Data Control Language, DCL)

    • GRANT:用于授予权限;
    • REVOKE:用于收回权限;
  • 嵌入式和动态SQL规则:规定了SQL语句在高级程序设计语言中使用的规范方法。

  • SQL调用和会话规则

    • SQL调用包括SQL例程和调用规则,以便提高SQL的灵活性、有效性、共享性以及使 SQL 具有更多的高级语言的特征。
    • SQL会话规则,可使应用程序连接到多个SQL服务器中的某一个,并与之交互。

二、MySQL预备知识

1.MySQL使用基础

MySQL 是一个关系数据库管理系统(RDBMS),具有客户/服务器体系结构,最初由瑞典MySQL AB 公司开发。

MySQL具有体积小、速度快、开放源代码、遵循 GPL 等特点,许多中小型网站为了降低网站总体拥有成本而选择 MySQL 作为网站数据库。

使用 MySQL 数据库管理系统构建各种信息管理系统或互联网网站的应用环境主要有如下两种构架方式:

  • LAMP: Linux+Apache+MySQL+PHP/Perl/Python
  • WAMP: Windows+Apache+MySQL+PHP/Perl/Python

使用 Linux/windows 作为操作系统,使用 Apache 作为web服务器,MySQL作为数据库管理系统,使用 PHP/Perl/Python 作为服务器的脚本解释器;

2.MySQL中的SQL

MySQL中的SQL对关系数据模式的支持

基本表:是本身独立存在的表,在 MySQL 中一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一个表可以有若干索引,索引也存放在存储文件中,其中存储文件的逻辑结构组成了MySQL 的内模式,并且存储文件的物理结构对最终用户是隐蔽的;

视图:是从一个或几个基本表导出的表,不独立存储在数据库中,即数据库中只存储视图的定义而不存储视图对应的数据,因此视图是一个虚表。

2.1、常量

常量是指在程序运行过程中值不变的量,也称为字面值或标量值。可分为:

  • 字符串常量:用单引号或双引号括起来的字符序列,分为 ASCII 字符串常量和 Unicode 字符串常量;
  • 数值常量:分为整数常量和浮点数常量;
  • 十六进制常量:通常指定为一个字符串常量,每对十六进制数字被转换为一个字符,比如 'X41',也可以等价写为 '0x41'
  • 日期时间常量:用单引号将表示日期时间的字符串括起来而构成;比如 '2020-06-19'
  • 位字段值:使用 b'value'格式符号书写,其中 value 是一个 0 或 1 书写的二进制值;比如 b'01000001'
  • 布尔值:只包含两个可能的值 TRUEFALSE 。其中 FALSE的数字值是 0,TRUE 的数字值是 1;
  • NULL值:表示没有值、无数据等意义。

2.2、变量

变量用于临时存储数据,变量中的数据可以随着程序的运行而变化。

变量有 名字 和 数据类型 两个属性。名字用于标识变量,数据类型用于确定变量中存储数值的格式和可执行的运算。

在MySQL中,变量分为 用户变量 和 系统变量。使用时,用户变量前常加一个@,系统变量前加两个@@符号。

2.3、运算符

  • 算术运算符: +加、-减、*乘、 /除、%求模;

  • 位运算符:

    • & (位与,两者都为1才为1)
    • |(位或,两者都为0才为0)
    • ^(异或,两者不同才会1)
    • ~(位取反,对位取反)
    • >>(位右移,二进制向右移动,前面补0)
    • <<(位左移,二进制向左移动,后面补0)
  • 比较运算符:=><>=<=<> (不等于)、!=(不等于)、<=>(相等或都等于空);

  • 逻辑运算符:NOT!(逻辑非)、AND&&(逻辑与)、OR或||(逻辑或)、XOR(逻辑异或);

2.4、表达式

表达式是常量、变量、列名、复杂计算、运算符和函数的组合。根据表达式的值的数据类型,表达式可分为字符型表达式、数值型表达式和日期表达式;

2.5、内置函数

在编写 MySQL 数据库程序时,通常可直接调用系统提供的内置函数,来对数据库表进行相关操作。 MySQL 的函数基本分为:

  • 数学函数,如 ABS()、SQRT();
  • 聚合函数,如 COUNT();
  • 字符串函数,如 ASCII()、CHAR();
  • 日期和时间函数,如 NOW()、YEAR();
  • 加密函数,如 ENCODE()、ENCRYPT();
  • 控制流程函数,如 IF()、IFNULL();
  • 格式化函数,如 FORMAT();
  • 类型转换函数,如 CAST();
  • 系统信息函数,如 USER()、VERSION();