0%

sql1

查询

基本查询

1
SELECT * FROM <表名>

*表示所有列,FROM 表示从哪个表查询

SELECT语句可以用来计算,不一定需要FROM,一般用于测试数据库连接

1
SELECT 100+200;

条件查询

1
SELECT * FROM students WHERE score>=80;
1
SELECT * FROM <表名> WHERE <条件表达式>

条件表达式

  • <条件1> AND <条件2>
  • <条件1> OR <条件2>
  • NOT <条件>

投影查询

1
2
SELECT1, 列2, 列3 FROM ...
SELECT1 别名1, 列2 别名2, 列3 别名3 FROM ...

返回表中指定的列

排序

ORDER BY 子句加入后不按照id进行排序

1
2
3
4
SELECT id, name, gender, score
FROM students
WHERE class_id = 1
ORDER BY score DESC; # ASC 升序,DESC 降序

多表查询

1
SELECT * FROM <1> <2>

选择使用投影查询比较好

修改

插入

1
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);

id是自增的,可以由数据库推算;有默认值的字段也可以不赋值

更新

1
UPDATE <表名> SET 字段1=1, 字段2=2, ... WHERE ...;

如果WHERE条件没有匹配到任何记录,UPDATE语句不会报错,也不会有任何记录被更新。

update可以没有条件,即更新所有表

1
UPDATE students SET score=60;

真实的数据库会返回更新的行数和where匹配的行数

删除

1
DELETE FROM <表名> WHERE ...;

如果WHERE条件没有匹配到任何记录,DELETE语句不会报错,也不会有任何记录被删除。

UPDATE类似,不带WHERE条件的DELETE语句会删除整个表的数据

DELETE语句会返回删除的行数以及WHERE条件匹配的行数。