聚合函数
-SUM([DISTINCT] FIELDNAME) 求指定列之和,[DISTINCT]选项表示剔除重复记录
例如:SELECT SUM(age) FROM TABLE1;
SELECT SUM(DISTINCT age) FROM table1;
-MAX([DISTINCT] FIELDNAME) 求指定列最大值
例如:SELECT MAX(age) FROM TABLE1;
SELECT * FROM table1 WHERE age = (SELECT MAX(age) FROM table1);
-MIN([DISTINCT] FIELDNAME) 求指定列最小值
-COUNT([DISTINCT] FIELDNAME) 求指定列记录总数
-AVG([DISTINCT] FIELDNAME) 求指定列平均值
GROUP BY 子句
--将查询结果根据指定字段分组(聚合函数往往是与group by子句配合使用的,一般用于计算每个组中聚合函数的值):
--GROUP BY fieldname [DESC]
例如:SELECT COUNT(*) FROM table1 GROUP BY class;以class分组,以组来计算聚合函数count,得出每个班的个数
ORDER BY子句
--将查询结果根据指定字段排序
--ORDER BY fieldname [DESC]
例如:SELECT * FROM table1 ORDER BY age DESC;(降序排列)
SELECT * FROM table1 ORDER BY age,class DESC;先按age升序排列,再按class降序排列,DESC只针对最后一个字段。
SELECT语句,查询多个表的WHERE子句例子
SELECT * FROM table1,table2 WHERE table1.AGE=table2.AGE;
SELECT * FROM table1,table2 WHERE (table1.NAME=table2.NAME) AND table1.AGE=20;
SELECT name FROM table1 WHERE age=(SELECT MAX(table1.age) FROM table1,table3 WHERE table1.class=table3.class AND table3.teacher='巴依老爷');
CREATE INDEX 语句用于在表中创建索引。
--在不读取整个表的情况下,索引使数据库应用程序可以更快的查找数据
索引
--你可以在表中创建索引,以便更加快速高效的查询数据
--用户无法看到索引,他们只能被用来加速搜索/查询
注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新,因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
CRETAE INDEX语法
--在表上创建一个简单的索引,允许使用重复的值;
CREATE INDEX index_name ON table_name (column_name)--注释:"column_name"规定需要索引的列。
CREATE UNIQUE INDEX 语法
--在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值(即不能有重复数据)。
CREATE UNIQUE INDEX index_name ON table_name (column_name)
在select语句中where查询用到哪个字段,这个字段必须建立索引
CREATE INDEX table1_age ON table1 (age); --为列age创建一个索引
索引的查询效率高于没有索引的查询,唯一索引的查询效率高于普通索引的查询效率
多表查询的原则:多表之间一定有一个字段是关联的,表与表之间的关系是通过关联的字段建立起来的。
[表中的列被称为字段(field),表中的行被称为记录(record)]
修改数据语句
UPDATE TABLENAME SET CAL1=VAL1,CAL2=VAL2,...WHERE CONDITIONAL
SET子句指定要修改的字段和所赋的值,WHERE子句指定要修改的行,如果没有WHERE子句,代表修改所有行。
例子:UPDATE table1 SET sex='女',age=66 WHERE name='夏明7';
删除数据语句
DELETE FROM TABLENAME WHERE CONDITIONAL
WHERE子句指定要删除的行,如果没有WHERE子句,代表删除所有行。
DELETE FROM table1 WHERE name='夏明8';