create table user(
id int primary key auto_increment,
username varchar(255) default null,
password varchar(255) default null
)engine=innodb default charset=utf8;
数据
插入数据
INSERT INTO 表名(列名1,列名2,...) VALUES(列值1,列值2,...);
>在表名后给出要插入的列名,其他没有指定的列等向与插入nu11值。所以插入记录总是插入一行,不可能是半行。
>在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应
INSERT INTO 表名 VALUES(列值1,列值2,...);
>没有给出要插入的列,那么表示插入所有列。
>值的个数必须是该表列的个数。
>值的顺序,必须与表创建时给出的列的顺序相同。
修改数据
UPDATE 表名 SET 列名1=列值1,列名2=列值2,... [WHERE 条件]
删除数据
DELETE FROM 表名 [WHERE 条件]
TRUNCATE TABLE 表名: TRUNCATE是DDL语句,它是先删除DROP该表,再CREATE该表。而且无法回滚!!
查询
查询列
所有列
SELECT * FROM 表名;
指定列
SELECT 列1 [,列2,...] FROM 表名;
去除重复行
SELECT DISTINCT * 列1 [,列2,...] FROM 表名;
列运算
1.数量类型的列可以做加、减、乘、除运算
SELECT 列名*1.5 FROM 表名;
2.字符串类型可以做连续运算
SELECT CONCAT('$', 列名) FROM 表名;
3.转换NULL值
有时需要把NULL转换成其他值
IFNULL(列名, 0) :如果列中存在NULL值,那么当成0来运算
4.给列起别名
SELECT 列名 AS 别名 FROM 表名;
AS可以省略
排序
1.升序
SELECT * FROM 表名 WHERE 1 ORDER BY 列名 ASC;
按列排序,升序, ASC可以省略
2.降序
SELECT * FROM 表名 WHERE 1 ORDER BY 列名 DESC;
3.使用多条件作为排序条件
SELECT * FROM 表名 WHERE 1 ORDER BY sal ASC, comm DESC;
聚合函数
COUNT
SELECT COUNT(*) FROM 表名;
计算表中所有列都不为NULL的记录的行数
MAX
SELECT MAX(列) FROM 表名;
查询最大值
MIN
SELECT MIN(列) FROM 表名;
查询最小值
SUM
SELECT SUM(列) FROM 表名;
求列的和
AVG
SELECT AVG(列) FROM 表名;
求平均值
分组查询
分组查询是把记录使用某一列进行分组, 然后查询组信息。
SELECT a1(列名), COUNT(*) 人数 FROM 表名 GROUP BY a1;
LIMIT(方言)
SELECT * FROM 表名 LIMIT 4, 3;
4表示从第5行开始,3表示一共查询3行。
1.一页的记录数:10行
2.查询第3页
SELECT * FROM 表名 LIMIT 20, 10;
(当前页-1) * 每页记录数