SQL简介

SQL是一组特殊的单词,专门用于同数据库交互。所有的主流数据库都会使用SQL,MySQL也不例外。SQL非常容易学习和使用,但要精通SQL语句,则需要深入的学习和实践。

创建数据库和表

使用SQL创建数据库的语法如下:

CREATE DATABASE databasename

SQL不区分大小写。不过建议大写SQL关键字,就像前面的示例语法那样。这样做有助于把SQL名词与数据库、表和列名区分开。

CREATE名词也用于建立表。语法如下:

CREATE TABLE tablename (column1name description,column2name description...)

在MySQL客户端内,必须用分号终止每一条SQL命令,尽管严格说来这些分号不是SQL自身的一部分。如果同时在phpMyAdmin内执行多个查询,也应该用分号隔开它们。如果只在phpMyAdmin内运行一个查询,就不需要分号。

SHOW命令可用于呈现数据库中的表,或者表中的列名称和类型。语法如下:

SHOW TABLES;
SHOW COLUMNS FROM tablename;

SHOW命令的等价命令为DESCRIBE。

插入记录

在创建数据库和表之后,使用INSERT命令插入记录,语法如下:

INSERT INTO tablename (column1, column2…) VALUES (value1, value2 …)
INSERT INTO tablename (column4, column8) VALUES (valueX, valueY)

使用这种结构,可以添加多行记录。

在SQL命令中,数值不能用引号括住,字符串、日期时间必须用引号括住,单词NULL不能用引号括住。如果在值中需要使用引号,可以使用反斜线进行转义。

偶尔会在SQL命令中看到使用反引号(`)。这个字符与波浪符(~)是同一个键,它与单引号不同。反引号用来安全地引用可能与已存在的MySQL关键词重复的表名或列名。

INSERT中一个有意思的变化是REPLACE。REPLACE语句的作用是,如果使用的表的主键或唯一索引的值已经存在,那么REPLACE会更新存在的行;如果不存重复则会同INSERT一样插入新行。

选择数据

SELECT查询使用以下语法返回与某一条件匹配的记录行:

SELECT which_columns FROM which_table

最简单的SELECT查询是:

SELECT * FROM tablename

星号意味着你想查看每一列。另外,还可以指定要返回的列,并用逗号把这些列相互隔开。

SELECT column1, column3 FROM tablename

明确要选择哪些列有几个好处。第一个好处是性能,没有理由获取将不会使用的列。第二个好处是顺序,可以用一种不同于它们在表中布局的顺序返回列。第三个好处是,指定列允许你利用函数操纵那些列中的值。

使用条件语句

可以通过向SELECT查询中添加WHERE名词来实现限制查询条件。语法如下:

SELECT which_columns FROM which_table WHERE condition(s)

可以结合使用各种运算符以及圆括号来创建更复杂的表达式,例如:

SELECT * FROM items WHERE (price BETWEEN 10.00 AND 20.00) AND (quantity > 0)
SELECT * FROM cities WHERE (zip_code = 90210) OR (zip_code = 90211)

可以使用数学加法(+)、减法(–)、乘法(*)和除法(/)运算符在查询内执行数学计算。

排序查询结果

为了以一种有意义的方式对它们进行排序,可以使用ORDER BY子句。例如:

SELECT * FROM tablename ORDER BY column

还可以指定排序方式,默认为升序(ASC),若要降序,则使用DESC,例如:

SELECT * FROM tablenameORDER BY column1, column2 DESC

限制查询结果

在SELECT查询中,WHERE指示返回哪些记录,ORDER BY决定如何对这些记录进行排序,但是LIMIT用于指定要返回多少条记录。其用法如下:

SELECT * FROM tablename LIMIT x

上面的查询将会返回前x条记录。还可以指定开始位置,如下:

SELECT * FROM tablename LIMIT x,y

上面的语句将返回从x条记录开始的y条记录。

LIMIT子句不会改进查询的执行速度,因为MySQL仍然必须把每一条记录集合到一起,然后截短列表。但在mysql客户或PHP脚本中,LIMIT子句将把要处理的数据量减至最少。

更新数据

当表中的数据需要更新时,可以使用如下语句:

UPDATE tablename SET column=value WHERE column5=value

更新(以及删除)是使用主键的最重要的原因之一。无论何时使用UPDATE,都要使用WHERE条件语句,除非你希望更改会影响每一行。

删除数据

彻底从数据库中删除记录。要执行该操作,可以使用DELETE命令。语法如下:

DELETE FROM tablename WHERE condition

使用DROP命令删除数据库和表,如:

DROP DATABASE databasename
DROP TABLE tablename

MySQL函数

即将推出……

results matching ""

    No results matching ""