SQL常用操作

数据查询

查询数据库表的内容(所有行和列)

SELECT * FROM <表名>;
  • 示例

    image

计算

SELECT <数学多项式>;
  • 示例

    image

条件查询

SELECT * FROM <表名> WHERE <条件表达式>;
  • 示例

    image

  • 注意:对于条件表达式,可以用逻辑运算符ANDORNOT)将多个条件同时进行匹配;

image

image

image

  • 对于三个及以上的条件,可以用小括号()进行条件运算;

image

  • 常用条件表达式
条件 表达式举例1 表达式举例2 说明
使用=判断相等 score = 90 name = ‘cunyu’ 字符串需要用单引号括起来
使用>判断大于 score > 90 name > ‘cunyu’ 字符串比较根据ASCII码,中文字符比较根据数据库设置
使用>=判断大于或相等 score >= 90 name >= ‘cunyu’
使用<判断小于 score < 90 name <= ‘cunyu’
使用<=判断小于或相等 score <= 90 name <= ‘cunyu’
使用<>判断不相等 score <> 90 name <> ‘cunyu’
使用LIKE判断相似 name LIKE ‘ab%’ name LIKE ‘%bc%’ %表示任意字符,例如’ab%’将匹配’ab’,’abc’,’abcd’

投影查询

  • 基本的投影查询
SELECT1,2,3 FROM ...;

image

  • 对列名重命名的投影查询
SELECT1 别名1,2 别名2,3 别名3 FROM ...;

image

  • 注意: 别名是存在于内存中的,而WHERE仅适用于硬盘,但是HAVING既可以针对硬盘,也可以针对内存条件进行查询;

分页查询

  • 经排序后获取结果中第M条开始后N条记录;
-- MySQL中两句等效
SELECT <列名> FROM <表名> ORDER BY <列名> LIMIT <M> OFFSET <N>;
SELECT <列名> FROM <表名> ORDER BY <列名> LIMIT <N> , <M>;

image

聚合查询

  • 常用聚合函数
函数 说明
SUM 计算某一列的合计值,该列必须为数值类型
AVG 计算某一列的平均值,该列必须为数值类型
MAX 计算某一列的最大值
MIN 计算某一列的最小值
COUNT 统计某一列的个数

image

image

多表查询(笛卡尔查询)

SELECT * FROM <1> <2>

image

  • 注意:多表查询时,使用表名.列名的方式,以防止结果集列名重复问题;

连接查询

  • 定义:另一种类型的多表查询,它对多个表进行JOIN运算,即先确定一个主表作为结果集,然后将其他表的行有选择地“连接”到主表结果集中;

  • 内连接,以下是查询的写法:

SELECT ... FROM <1> INNER JOIN <2> ON <条件...>;
  1. 先确定主表,继续使用FROM <表1>的语法;
  2. 再确定需要连接的表,使用INNER JOIN <表2>的语法;
  3. 然后确定连接条件,使用ON <条件……>,这里的条件是s.class_id = c.id,表示students表的class_id列与classes表的id列相同的行需要连接;
  4. 可选:加上WHERE子句、ORDER BY等子句;

image

  • 外连接
    • RIGHT OUTER JOIN:返回右表均存在的行;
    • LEFT OUTER JOIN:返回左表均存在的行;
    • FULL OUTER JOIN:将两张表中所有记录均选出来,且自动将对方不存在的列填充为NULL

排序

  • 正序(默认规则下为正序,以下两条语句功能相同)
SELECT <列名> FROM <表名> ORDER BY <列名> ASC;
SELECT <列名> FROM <表名> ORDER BY <列名>;

image

image

  • 逆序
SELECT <列名> FROM <表名> ORDER BY <列名> DESC;

image


数据修改

INSERT

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

image

image

UPDATE

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

image

image

  • 注意:不带WHEREUPDATE将会更新整个表的数据;

DELETE

DELETE FROM <表名> WHERE ...;

image

  • 注意:不带WHEREDELETE将会删除整个表的数据;
发布了138 篇原创文章 · 获赞 72 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/github_39655029/article/details/105421000