USE DATABASES; 选择数据库操作, DATABASES为你要使用的数据库名称。
SHOW DATABASES; 返回可用数据库的一个列表。
SHOW TABLES; 返回当前选择的数据库内可用表的列表。
SHOW COLUMNS FROM 表名; 返回表中的列信息,包含字段名、数据类型、是否允许Null、键信息、默认值等其他信息。
自动增量:某些表列需要唯一值,可设为自动增量,MySQL可自动为每行分配一个可用编号。
DESCRIBE 表名; 这语句是SHOW COLUMNS FROM 表名; 的快捷方式。
SHOW STATUS; 显示服务器状态信息
SHOW CREATE 数据库名; 显示创建特定的数据库
SHOW CREATE 表名; 显示创建特定的表
SHOW GRANTS; 显示授予用户的安全权限
SHOW ERRORS;显示服务器错误消息
SHOW WARNINGSS;显示服务器警告消息
SELECT 列名 FROM 表名; 从表中检索某一列数据,返回的是无排序无过滤的结果,显示所有行
SQL语句以分号结束;SQL语句不区分大小写,但是为了便于阅读和调试,SQL语句的关键字使用大写,列名、表名使用小写。
在处理SQL语句时,所有空格都被忽略,因此一个语句可以在一行给出,也可以分多行给出。
SELECT 列名1,列名2,列名3 FROM 表名; 检索多个列,用逗号隔开
SELECT * FROM 表名; 返回表中的所有列
SELECT DISTINCT 列名 FROM 表名; 返回列中不同(唯一)的行,DISTINCT放在列名前面。不能部分使用DISTINCT,即SELECT DISTINCT 列名1,列名2 FROM 表名;则DISTINCT关键字应用于所有列,而不仅是前置它的列。
SELECT 列名 FROM 表名 LIMIT n; 指定检索返回数不超过n行
SELECT 列名 FROM 表名 LIMIT n1,n2; 指定检索开始行和最大行数,注意,检索出来的行0而不是行1,因此,LIMIT 1,1将检索出第二行而不是第一行。
SELECT 表名.列名 FROM 表名;使用完全限定的列名,表名也可以完全限定为(数据库名.表名)
SELECT 列名1 FROM 表名 ORDER BY 列名2 ; 按一个列排序:列名2可以为列名1,也可以是表中的除选择列1的其他列,返回列1所有行,以列2排序
SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 列名3,列名4 ; 按多个列排序返回列1,列2,列3所有行,以列3排序,列3有相等的,以列4排序。列3列4为表中任意两列,根据需要选择。
SELECT 列名1 FROM 表名 ORDER BY 列名2 DESC,列名3; 指定排序方向:默认升序排列,加关键字DESC后按降序排列,DESC只应用到位于其前面的列名,对列名3不指定。如果要在多个列上降序排序,则必须对多个列指定DESC关键字。
在同时使用ORDER BY 和WHERE 子句时,ORDER BY 放在WHERE 后面。
WHERE 操作符:=(等于) ,<>(不等于) , !=(不等于) ,< (小于), >(大于),<=(小于等于),>=(大于等于),BETWEEN(在指定的两个值之间)
SELECT 列名1 FROM 表名 WHERE子句; 如果子句要使用的条件包含字符串,则需要单引号限定
SELECT 列名1 FROM 表名 WHERE 列名BETWEEN n1 AND n2; 范围值检查
SELECT 列名1 FROM 表名 WHERE 列名 IS NULL; 空值检查
组合WHERE子句
SELECT 列名1,列名2 FROM 表名 WHERE 子句1 AND 子句2
式子中AND是关键字,这如果两个子句条件表示的是或的含义则用OR操作符。可以AND ,OR 多个条件并列。
AND在计算次序中优先级更高,有可能会错误组合。用圆括号解决
如:SELECT name,price FROM product WHERE (id=1 OR id =2) AND price>=10;
SELECT name,price FROM product WHERE id=1 OR id =2 AND price>=10;这语句是检索id=2并且price>=10的产品或者id=1的产品。
IN操作符
如:SELECT name,price FROM product WHERE id IN (1002,1003) ORDER BY name;
=SELECT name,price FROM product WHERE (id=1002 OR id=1003) ORDER BY name;
NOT操作符
如:SELECT name,price FROM product WHERE id NOT IN (1002,1003) ORDER BY name;