SQL概念

对于MySQL数据库来说,它所使用的数据库语言是数据库的标准规范语言。除了MySQL其他的关系型数据库语言如oreclo、sql_server、DB2,所使用的也都是标准的关系型数据库语言SQL语言。MySQL中的SQL就是从此处而来。

SQL的含义为结构化的查询语言,这种语言转适用于对关系型数据库进行各种增删查改的操作,这是一种国际标准的SQL语言,适用于各种关系型数据库。所以MySQL的语言是可以在其他的SQL数据库中通用的。

MySQL服务器端

MySQL包括其他数据库基本上都是基于C/S架构,有专门的服务器端软件按和专门的客户端软件,MySQL的服务器端软件会监听在tcp的3306端口

MySQL客户端

MySQL客户端软件有图形界面的也有命令行模式,在MySQL中客户端工具是在服务端安装完毕后自带了一个命令行工具,名字叫mysql。通过mysql这个小软件就可以连接数据库进行操作,当然也有第三方图形化的软件。对于这种连接方式对用户的要求是非常高的,要求用户必须是专业的数据库的工程师才能知道去输入哪些命令去连接和管理。

事实上大部分普通人根本不会些SQL语句,但是他就是想对数据库中的内容做相应的操作。比如说在淘宝上下订单买了一个商品,这时候在后台数据库应为下了一个订单就会增加一个订单记录,记录下订单的时间、订单号、用户信息等等。那么如果要对订单进行操作,作为一个普通的用户来说根本不知道什么叫做SQL语句。所以我们需要通过一个友好的界面,比如在淘宝上只需要点击鼠标,但是在点鼠标的背后必须由工程师,把点鼠标的行为转换成SQL语句最终来操作数据库。所以这个过程时候开发人员来负责的,开发人员编写程序,通过对应的数据库的开发接口,连接到后端的数据库进行操作。比如说做各种开发需要连接到后台服务器,就需要用到连接数据库api接口ODBC或JDBC

MySQL的基本概念

约束

约束(constraint),表中的数据要遵守的限制,其约束有以下几种:

约束方式

说明

主键(PK)

一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能有一个

惟一键(UK)

一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个

外键(FK)

一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据

检查

限制一个字段的有效范围

索引

将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储

关系运算

选择:挑选出符合条件的行

投影:挑选出需要的字段

连接:表间字段的关联

数据模型

数据抽象

物理层:从数据存储格式的角度出发,即RDBMS在磁盘上如何组织文件,如何存储数据。

逻辑层:从DBA角度出发,描述存储什么数据,以及数据间存在什么样的关系。

视图层:从用户角度出发,描述DB中的部分数据。比如在网站上购物时你只能看到出售的价格,但看不到进货价格。

关系模型的分类

  • 关系模型

  • 基于对象的关系模型

  • 半结构化的关系模型:XML数据

SQL语言规范

SQL是一种结构化的查询语言,需要遵守以下规范:

  • 它的命令是不区分大小写的。

  • SQL语句可以单行或多行书写,以“;”结尾。

  • 关键字不能够跨行或者简写。用空格缩进可以提高语句的可读性。

  • 子句通常位于独立行,便于编辑,提高可读性。

数据库对象

数据库的对象有数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等等。这些对象在命名时需要遵守其命名的规则:

  1. 必须以字母开头

  2. 可包括数字和三个特殊字符(#_$)

  3. 不要使用MySQL的保留字段

  4. 同一databases(Schema)下的对象不能同名

QL语句分类S

SQL语句有各种各样的指令,这种语句大致上分成4个类型。这4种类型不通的数据库厂商其分类也不同。

DDL:Data Defination Language 数据定义语言

定义如何来创建一个资源,比如创建一个数据库,创建一个表,也包括删除和修改

相关指令:

CREATE、DROP、ALTER

DML:Data Manipulation Language 数据操纵语言

数据库操纵语言主要用来操作数据库内的数据,这种数据的操作主要是指对数据的增、删、改。

相关指令:

INSERT、DELETE、UPDATE

DCL:Data Control Language 数据控制语言

数据控制语言主要指的是对数据库的各种权限控制,比如说授权、删除权限、提交、撤销

相关指令:

GRANT、REVOKE、COMMIT、ROLLBACK

DQL:Data Query Language 数据查询语言

数据库查询语言是对数据库内的相关数据进行查询的指令,是运维人员在工作中对数据的常用操作

相关指令

SELECT

SQL语句构成

SQL语句是由关键字(keyword)加上对象的名称组合而成的子句(clause),多个子句(clause)再构成一个完整的语句

示例:

SELECT * FROM products WHERE price>400;  
#上面这是一个完整的查询语句,他是由以下几个字句组成
SELECT *                    #SELECT子句
FROM products               #FROM子句
WHERE price>400             #WHERE子句
#一组SQL语句由三个子句构成,SELECT、FROM和WHERE是关键字