一、SQL 语言简介
SQL (structured Query Language) 结构化查询语言;
主要用途是构造各种数据库系统操作指令,如 SELECT、INSERT、UPDATE、DELETE;
SQL命令可以分类以下三大类别:
-
DML(Data Manipulation Language 数据处理语言): 这类命令主要包括 SELECT、INSERT、UPDATE、DELETE等用来从数据表读出数据,把数据存入数据表或是对数据表里的现有记录进行修改的命令;
-
DDL(Data Definition Language 数据定义语言): 这类命令主要包括CREATE TABLE、ALTER TABLE 等用来定义和改变数据库结构的命令;
-
DCL(Data Control Language 数据控制语言): 这类命令主要包括GRANT、REVOKE以及另外几个用来帮助人们设置和调整MySQL访问控制机制的SQL命令;
二、查询(SELECT)
- 简单查询
SELECT * FROM tablename
在表格tablename中查询所用内容
-
限制查询结果中的数据列个数
SELECT column1,column2 FROM tablename
在表格tablename中查询内容column1,column2; -
确定数据表里有多少条数据记录
SELECT COUNT(id) FROM tablename
查询表格tablename有几行数据
三、WHERE子句
WHERE子句设置查询条件,过滤掉不需要的数据行。
例如查询年龄大于20的记录: SELECT * FROM usertable WHERE age>20
1.比较运算符
= 等于
> 大于
>= 大于等于
< 小于
<= 小于等于
<> 不等于
2.逻辑运算符
AND 如果组合的条件都是TRUE,返回TRUE
OR 如果组合的条件其一是TRUE,返回TRUE
NOT 如果条件是FALSE,返回TRUE
四、限制查询结果中的数据记录个数(LIMIT)
LIMIT子句用于强制SELECT语句返回指定的记录数。
LIMIT接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
注意:初始记录行的偏移量是0而不是1。
例:
检索前5个记录行
SELECT * FROM table LIMIT 5;
检索记录行 6-15
SELECT * FROM table LIMIT 5,10;
五、对查询结果进行排序 (ORDER BY)
使用ORDER BY子句对查询返回的结果排序。
ORDER BY子句的语法格式为: ORDER BY {column_name [ASC|DESC]} [,...n]
其中ASC表示升序,为默认值,DESC为降序
例:
SELECT * FROM user ORDER BY uid ASC
SELECT * FROM user ORDER BY uid DESC
SELECT * FROM user ORDER BY regdate DESC,username ASC;
六、插入数据记录(INSERT)
例:
INSERT INTO user (username,password) VALUES ('admin','123456')
一次插入多条记录
INSERT INTO user (username, password) VALUES ('user1', '123456'), ('user2','123456')
七、修改数据记录(UPDATE)
例:
UPDATE user SET username = 'admin1', passwd ='12345678' WHERE uid = 10
八、删除数据记录(DELETE)
例:
DELETE FROM user WHERE uid = 10