插入多行数据
INSERT INTO <表名>(列名)
VALUES(<列名值>), (<列名值>), (<列名值>)
……
INSERT STUDENTS (SName,SGrade,SSex)
VALUES('测试女生1',75,0),
('测试女生2',77,0),
('测试女生3',83,0),
(‘测试男生1',81,1),
('测试女生4',90,0),
(‘测试男生2',94,1),
('测试女生5',51,0),
(‘测试男生3',53,1);
INSERT INTO <表名>(列名)
SELECT <列名>
FROM <源表名>
INSERT INTO TongXunLu ('姓名','地址','电子邮件')
SELECT SName,SAddress,SEmail
FROM Students
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来
SELECT <列名>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]
from子句:指定查询数据的表
where子句:查询数据的过滤条件
group by子句:对匹配where子句的查询结果进行分组
having子句:对分组后的结果进行条件限制
order by子句:对查询结果结果进行排序,后面跟desc降序或asc升序(默认)。
limit子句:对查询的显示结果限制数目
procedure子句:查询存储过程返回的结果集数据
SQL提供的统计函数称为集函数.
主要的集函数:
记数函数: count(列名) 计算元素的个数
求和函数: sum(列名)对某一列的值求和,但属性必须是整型
计算平均值:avg(列名)对某一列的值计算平均值
求最大值: max(列名) 找出某一列的最大值
求最小值: min(列名) 找出某一列的最小值
在WHERE子句中使用谓词 :
BETWEEN AND :在两数之间
NOT BETWEEN AND :不在两数之间
IN <值表>:是否在特定的集合里(枚举)
NOT IN <值表> :与上面相反
LIKE:是否匹配于一个模式
IS NULL(为空的)或 IS NOT NULL(不为空的)REGEXP : 检查一个值是否匹配一个常规表达式。
连接查询
同时涉及多个表的查询称为连接查询
用来连接两个表的条件称为连接条件
内连接(INNER JOIN)
外连接
——左外联结 (LEFT JOIN)
——右外联结 (RIGHT JOIN)
外连接与普通连接的区别
普通连接操作只输出满足连接条件的元组
外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出:
SELECT Students.SName, Sc.CourseID, Sc.Grade
FROM Students,Sc
WHERE Students.SNo = Sc.StudentID