1.插入操作 插入新的行 第二个是在列中插入新的数据
INSERT INTO 表名称 VALUES (值1, 值2,....);
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
在指定列中插入数据 persons表名 括号里字段名 下插入字段
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees');
2.查询
SELECT 列名称 FROM 表名称;
SELECT LastName,FirstName FROM Persons;
2.1去重操作
SELECT DISTINCT 列名称 FROM 表名称;
SELECT DISTINCT LASTNAME FROM Persons;
从last列中选不重复值
2.2 order by
SELECT * FROM Persons ORDER BY LASTNAME;
以字母顺序排序 abcd
SELECT * FROM Persons ORDER BY ID_P DESC;
以id降序查找
3.更新
1.
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
UPDATE Persons SET FirstName = 'Fred' WHERE LastName = 'Wilson';
更新若干列
UPDATE Persons SET ID_P = 6,city= 'London' WHERE LastName = 'Wilson';
4.删除
1.
DELETE FROM 表名称 WHERE 列名称 = 值;
DELETE FROM Persons WHERE LastName = 'Wilson';
DELETE FROM table_name;
删除所有行 列名还在
DROP TABLE 表名称;
drop table persons;
5.模糊查询 like
SELECT * FROM Persons WHERE City LIKE 'N%';
我们希望从上面的 “Persons” 表中选取居住在以 “N” 开头的城市里的人:
SELECT * FROM Persons WHERE City LIKE '%g';
从 “Persons” 表中选取居住在以 “g” 结尾的城市里的人: 百分号代表不知道几个可以是多个
SELECT * FROM Persons WHERE City LIKE '%on%';
SELECT * FROM Persons WHERE City NOT LIKE '%on%';
6. IN – 锁定多个值
SELECT * FROM Persons WHERE LastName IN ('Adams','Carter');
从 Persons 表中选取姓氏为 Adams 和 Carter 的人:
7.BETWEEN – 选取区间数据
SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter';
、查询以字母顺序显示介于 “Adams”(包括)和 “Carter”(不包括)之间的人: 在这两个之间的数据
8.as别名
SELECT LastName "Family", FirstName "Name" FROM Persons;
as省略了列名加上"" 将lastname列改成叫 family
9.多表关联(重点)
select 列名
from 表A
INNER|LEFT|RIGHT|FULL JOIN 表B (内连接 左右链接 自链接)
ON 表A主键列 = 表B外键列;
SELECT p.LastName, p.FirstName, o.OrderNo
FROM Persons p
INNER JOIN Orders o
ON p.Id_P = o.Id_P
ORDER BY p.LastName DESC;
内连接 包含的行两者都有的查询出来
a表中字段是b主键 这个字段是a的外键
select * from persons p,orders o where p.id_p=o.id_p;
通过pid链接 o和p表
- JOIN: 如果表中有至少一个匹配,则返回行
- INNER JOIN: 内部连接,返回两表中匹配的行 两表都有的
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
10.NOT NULL – 非空
select * from persons where FirstName is not null;
11.常用函数avg平均值
select * from orders where orderno < (select avg(orderno) from orders);
搜订单小于平均值的
12.汇总行数 COUNT
- COUNT(*) :返回表中的记录数。
- COUNT(DISTINCT 列名) :返回指定列的不同值的数目。
- COUNT(列名) :返回指定列的值的数目(NULL 不计入)。
SELECT COUNT(*) FROM 表名;
SELECT COUNT(DISTINCT 列名) FROM 表名;
SELECT COUNT(列名) FROM 表名;
13 MAX – 最大值 MIN – 最小值
select max(orderno) from orders;
MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
14.SUM – 求和
select sum(orderno) from orders;