从零开始学习MySQL
-SQL介绍


在之前的文章中,我们已经了解并安装了MySQL数据库。现在可以进行数据库的相关操作了。我们将使用SQL来操作数据库,SQL是一种专门用来与数据库通信的语言。
下面我们将对SQL语言进行下详细的介绍。主要了解下SQL是什么?SQL能做什么?
SQL是什么

对数据库进行查询和操作的语言叫做SQL(Structured Query Language,结构化查询语言)。
SQL语言是目前广泛应用的关系型数据库标准语言,是各种数据库交互方式的基础。市面上常见的数据库如Oracle,SQLServer,DB2等都支持SQL。





SQL
SQL是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统,,用于存取数据以及查询、更新和管理关系型数据库系统。与其他程序设计语言(如Java)相比,SQL由很少的关键字组成,每个SQL语句通过一个或多个关键字构成。
SQL的优点


1.一体化:SQL 集数据定义、数据操作和数据控制于一体,可以完成数据库中的全部工作。
2.使用方式灵活:SQL 具有两种使用方式,可以直接以命令方式交互使用;也可以嵌入C、C++、Fortran、COBOL、Java 等语言中使用。


SQL



3.非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”,存储路径的选择和操作的执行由数据库管理系统自动完成。
4.语言简洁、语法简单:该语言的语句都是由描述性很强的英语单词组成,而且这些单词的数目不多。
SQL的构成
SQL主要由以下4部分构成:


1.数据定义语言(Data Definition language,DDL)
用来创建或删除数据库以及表等对象,主要包含以下几种命令:
CREATE:创建数据库和表等对象
DROP:删除数据库和表对象
ALTER:修改数据库和表对象
2.数据库操作语言(Data Manipulation Language,DML)
用来变更表中的记录,主要包含以下几种命令:
SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据


SQL



3.数据查询语言(Data Query Language,DQL)
用来查询表中的记录,主要包含SELECT命令,用来查询表中的数据
4.数据控制语言(Data Conttol Language,DCL)
用来确认或取消对数据库中数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令:
GRANT:赋予用户操作权限
REVOKE:取消用户的曹祖权限
COMMENT:确认对数据库中的数据进行的变更
ROLLBACK:取消对数据库中的数据进行的变更
SQL的注意事项


1.SQL语句不区分大小写,SQL开发人员习惯于对SQL本身的关键字进行大写,而对表或者列的名称使用小写,这样写是为了提高代码的可阅读性和可维护性。
2.大多数数据库都支持通用的SQL语句,同时不同的数据库具有各自特有的SQL语言特性。


SQL



3.标准的SQL是指符合国际标准的SQL,而不是某个数据厂商的SQL语法,标准SQL可以在任何数据库中使用,本次的SQL学习是专门针对MySQL的,多数语法适用于其它DBMS,但不是所有SQL语法都是可移植的。
SQL的基本书写规则
在写SQL语句时,要遵守以下几个书写规则,这样可以避免很多错误,而且这些规则都比较简单:


1.SQL语句要以分号 ; 结尾
在RDBMS(关系型数据库)中,SQL是逐条执行的,一条SQL语句代表着数据库的一个操作。
例如我们通常在文章或句子的句尾加注标点表示这句话结束。中文的句子是以句号 。来结尾,英文中则是以 . 来结尾,在SQL语句中使用的是英文的分号 ; 来结尾。
2.SQL语句不分大小写
这里需要再次强调SQL不区分关键字的大小写,上面的注意事项中也标明了。例如,不管是写SELECT 还是select,在语句中的解释都是一致的。表名和列名也是如此。
注意:关键字是数据库事先定义的,由特别意义的单词。
为了便于理解与维护,建议书写过程中
关键字大写
数据库名、表名和列名等小写。


SQL



3.常数的书写方式是固定的
SQL语句常常需要直接书写字符串,日期或数字,这些被称为常数。常数的书写方式如下:
SQL语句中含有字符串的时候,需要像’abc’这样,使用英文单引号 ’ 括起来,表示这是一串字符串。
SQL 语句中含有日期的时候,同样需要使用英文单引号将其括起来。
在 SQL 语句中书写数字的时候,不需要使用任何符号标识,直接写成 1000 这样的数字即可。
注意:列名不是字符串,不能使用单引号。在MySQL 中可以用倒引号`把表名和列名括起来。
4.单词需要使用半角空格或者换行来分隔
SQL 语句的单词之间必须使用半角空格(英文空格)或换行符来进行分隔。没有分隔的语句会发生错误,无法正常执行。
例如,下列分隔和未分隔的SQL语句
CREATE TABLE Demo(正确)
CREATETABLE Demo(错误)
CREATE TABLEDemo(错误)
不能使用全角空格(中文空格)作为单词的分隔符,否则会发生错误,出现无法预期的结果。
注意:SQL 语句中的标点符号必须都是英文状态下的,即半角字。




