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函数
即将推出……