SQL 小计

SQL是访问和处理关系数据库的计算机标准语言
SELECT * FROM NoteList

SQL Note

[TOC]

基本查询

格式:SELECT * FROM <表名>;

例子:

1
SELECT * FROM students;
  • SELECT [关键字] 表示 发起选择
  • FROM [关键字] 从什么地方查询
    • 表示 所有列
  • students 从一个叫“students”的表中查询

虽然SELECT可以用作计算SELECT 100+200;,但它并不是SQL的强项。但是,不带FROM子句的SELECT语句有一个有用的用途,就是用来判断当前到数据库的连接是否有效。许多检测工具会执行一条SELECT 1;来测试数据库连接

条件查询

格式:SELECT * FROM <表名> WHERE <条件表达式>;

例子:

1
2
3
4
5
6
7
SELECT * FROM students WHERE score >= 80 AND gender = 'M';

SELECT * FROM students WHERE score >= 80 OR gender = 'M';

SELECT * FROM students WHERE NOT class_id = 2;

SELECT * FROM students WHERE (score < 80 OR score > 90) AND gender = 'M';
  • WHERE [关键字] 条件关键字

如果不加括号,条件运算按照NOT、AND、OR的优先级进行,即NOT优先级最高,其次是AND,最后是OR。加上括号可以改变优先级。

投影查询

格式:SELECT 列1, 列2, 列3这种仅返回指定列的操作称为投影

例子:

1
SELECT id, score points, name FROM students WHERE gender = 'M';
  • score points, score是选择的列,points是给这个列重新取了一个别名

排序

格式:XXXX + ORDER BY + XXXX

例子:

1
2
3
SELECT id, name, gender, score FROM students ORDER BY score;

SELECT id, name, gender, score FROM students ORDER BY score DESC;
  • ORDER BY score [ASC] 以score为条件的升序排序(ASC 关键字可省略)
  • ORDER BY score DESC 以score为条件的降序排序

分页查询

分页实际上就是从结果集中“截取”出第M~N条记录。

格式:LIMIT <M> OFFSET <N>

例子:

1
2
SELECT score FROM students ORDER BY score DESC
LIMIT 5 OFFSET 0;
  • 结果集从0号记录开始,最多取5条

聚合查询

格式:SELECT COUNT(*) FROM <表>

例子:

1
SELECT COUNT(id) boys FROM students WHERE gender = 'M';
  • COUNT(id) boys : COUNT(*)表示查询所有列的行数,boys是为这个值取的别名

常见聚合函数:

  • COUNT( ) : 所有列的行数
  • SUM( ) : 计算某一列的合计值,该列必须为数值类型
  • AVG( ) : 计算某一列的平均值,该列必须为数值类型
  • MAX( ) : 计算某一列的最大值
  • MIN( ) : 计算某一列的最小值

多表查询

格式:SELECT * FROM <表1> <表2>

例子:

1
SELECT * FROM students, classes;

也可以给表设置别名:FROM <表名1> <别名1>, <表名2> <别名2>

例子:

1
SELECT s.id, c.cores FROM students s, classes c;

连接查询

确定一个主表作为结果集,然后,把其他表的行有选择性地“连接”在主表结果集上

1
2
3
4
SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
INNER JOIN classes c
ON s.class_id = c.id;
  1. 确定主表SELECT <内容> FROM <表>
  2. 再确定需要连接的表,使用INNER JOIN <表2>的语法
  3. 之后确定连接条件,使用ON <条件...>
  4. 之后还可以继续加上WHERE之类的条件子句

修改数据

  1. INSERT 插入内容
  2. UPDATE 更新内容
  3. DELETE 删除内容
INSERT

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

例子:

1
INSERT INTO students (class_id, name, score) VALUES (99, 'Bob', 95);

例子的意思是,向students表 插入(class_id, name, score)三个字段的内容,其内容为(99, 'Bob', 95)

当然,如果需要添加多个内容,则在内容那么添加多个,并有逗号隔开:

1
2
3
4
INSERT INTO students (class_id, name, score) VALUES
(99, 'Bob', 95),
(59, 'Tom', 55),
(19, 'Tim', 90);

即可。

UPDATE

格式: UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;

例子:

1
2
3
UPDATE students SET name='Bob', score=80

UPDATE students SET score=score+10 where score<60
DELETE

格式: DELETE FROM <表名> WHERE ...;

例子:

1
DELETE FROM students WHERE class_id=1

例子的意思是:删除class_id为1的学生

Beego Framework Go 笔记

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×