数据查询
SELECT查询语句
SELECT语句是常用的SQL查询命令,其语法结构如下:
SELECT 字段 FROM 表名称
SELECT之后为要查找的数据表的字段名,FROM子句指定要选择的数据表。SELECT命令用于根据某种规则从表中获取数据,如果查询多个字段,使用逗号将各个字段分隔开。
WHERE子句
WHERE子句用来向SELECT语句中添加某种特定条件,以选出满足某种要求的数据。其语法结构如下:
SELECT 字段 FROM 表名称 WHERE 列 运算符 值
WHERE后面为要满足的条件,如表18-2列出的是可在WHERE子句中使用的运算符。
And & Or条件查询
AND和OR都可以放在WHERE子句后进一步限定选择的条件。操作符AND在结合两个布尔表达式时,只有在两个表达式都为True时才返回True。操作符OR在结合两个布尔表达式时,只要其中一个条件为True时,便返回True。其具体用法通过下面的实例来讲解。
模糊查询
LIKE用来进行模糊查询,一般与通配符“%”和下画线“_”搭配使用,通配符“%”匹配一个或多个字符,下画线“_”只匹配一个字符。下面通过实例来讲解LIKE的用法。
联合多列
CONCAT命令可以将多个字段联合起来输出,这样便于观察。其语法结构为:
SELECT 字段CONCAT(字段,字段) as 字段 FROM 表名称
CONCAT后面的括号内的字段是要联合输出的字段。其具体用法通过下面的实例来讲解。
LIMIT 限定行数
利用LIMIT子句可以控制查询结果的输出记录条数,也可以从中挑选记录,其用法通过下面的实例来讲解。
找出某列最大值
如果查找某列的最大值,可以直接使用max()函数来完成,例如查找Persons表中年龄最大的。
计算行数
COUNT()函数用来计数非NULL结果的数目。例如计算Persons表中的行数。
进行表达式计算
可以利用MySQL计算表达式的值,也能对表中的记录进行表达式计算。下面通过实例来讲解表达式计算的过程。
分组查询
通过group by子句可以将数据划分到不同的组中,根据所给的列名返回分组的查询结果,可用于查询具有相同值的列。
数据的其他操作
排序
排序即根据某个或某些字段的值,按照从大到小或从小到大的排序的顺序进行排列。通过SQL命令ORDER BY子句可以进行数据的排序,其结构形式为:
SELECT 字段 FROM 表名称ORDERBY {字段 [ ASC | DESC ] }
ORDER BY后跟的字段名即为自定的排序根据,其结果可以按照ASC(递增方式排序,从最低值到最高值)或者DESC(递减方式排序,从最高值到最低值)的方式进行排序。默认方式为ASC。
插入数据
向表中插入新行可使用INSERTINTO语句,其语法结构为:
INSERT INTO 表名称 VALUES (值1, 值2,....)
关键字VALUES之后为插入的字段值,其值要和字段一一对应,字段值之间用逗号分隔开。要插入某一列或几列时可使用如下结构:
INSERT INTO 表名称 (列1, 列2,...)VALUES (值1, 值2,....)
更新数据
更新数据是指对数据表里旧的数据做修改。修改表里的数据使用UPDATE语句,其语法结构如下:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 运算符 某值
关键字UPDATE之后为要修改的表的表名,而关键字SET之后是要修改的字段和相应的新值。WHERE子句进一步指明要修改的数据。
删除数据
DELETE语句用于删除表中的行,其结构形式为:
DELETE FROM 表名称 WHERE 列名称 = 值
RFOM子句指定要删除数据的表,WHERE子句指定要删除的数据。DELETE语句返回被删除记录的数量。
批量录入数据
若要将大量数据插入到数据库中,使用INSERTINTO语句显得十分低效。更好的方法是使用LOAD DATE语句批量增加记录,其语法结构为:
LOAD DATA [LOCAL] INFILE'file_name.txt' [REPLACE | IGNORE] INTOTABLE tbl_name
file_name.txt为当前目录中的数据文件的名称,tbl_name是要被载入的数据表。LOADDATA语句可以将一个文本文件中的数据高速读入一个表中。如果指定LOCAL关键词,将从客户机读文件。如果LOCAL没指定,则文件必须位于本服务器上。