MySQL 基础语法(3)

  1. 本文内容主要是表数据查询的基本语法
    库结构基础语法
    表结构基础语法

SELECT 语句

  1. 全列查询
SELECT * FROM 表名;

生产情况下几乎不能用,会导致MySQL服务器崩溃

  1. 指定列查询
SELECT cloum1, cloum2, .... clounmn from 表名 ;
  1. 查询字段为表达式
SELECT cloum1+10, cloum2/2, cloum*2, .... from 表明 ; 

前提是表达式合法

4.为查询结果指定别名

SELECT column_name AS alias_name FROM table_name;

column_name 可以为一个表达式
例如:

SELECT column_name1 + column_name2 AS alias_name FROM table_name;
  1. 查询结果去重
SELECT DISTINCT cloumn from 表名

WHERE 语句

假设一个名为users的表,这个表有 age、gender、name列属性:

  1. 比较运算符:

等于(=):用于比较两个值是否相等,例如:SELECT * FROM users WHERE username = 'john';
不等于(<>或!=):用于比较两个值是否不相等,例如:SELECT * FROM users WHERE age <> 18;
大于(>):用于比较左侧值是否大于右侧值,例如:SELECT * FROM users WHERE age > 18;
大于等于(>=):用于比较左侧值是否大于或等于右侧值,例如:SELECT * FROM users WHERE age >= 18;
小于(<):用于比较左侧值是否小于右侧值,例如:SELECT * FROM users WHERE age < 18;
小于等于(<=):用于比较左侧值是否小于或等于右侧值,例如:SELECT * FROM users WHERE age <= 18;
BETWEEN:用于比较一个值是否在两个值之间,例如:SELECT * FROM users WHERE age BETWEEN 18 AND 25;
IN:用于比较一个值是否在一组值之中,例如:SELECT * FROM users WHERE age IN (18, 20, 22);
LIKE:用于比较一个值是否匹配一个模式,例如:SELECT * FROM users WHERE name LIKE 'J%';

  1. 逻辑运算符:

AND:用于同时满足多个条件,例如:SELECT * FROM users WHERE age > 18 AND gender = 'male';
OR:用于满足多个条件中的任意一个,例如:SELECT * FROM users WHERE age > 18 OR gender = 'male';
NOT:用于否定一个条件,例如:SELECT * FROM users WHERE NOT age > 18;

ORDER BY

  1. 对查询结果按照指定列进行排序
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC];

ASC表示升序排序,DESC表示降序排序。如果不指定排序方式,默认为升序排序。

LIMIT 语句

从 s 开始,筛选 n 条结果

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死

UPDATAE 语句

# 基础
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
# 完整
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]

例子:将employees表中age大于等于30的记录的salary列增加10%

UPDATE employees SET salary = salary * 1.1 WHERE age >= 30;

DELETE 语句

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

# 删除整表  一般生产环境没机会使用
DELETE FROM table_name ;

TRUNCATE

TRUNCATE TABLE table_name;

1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事
物,所以无法回滚
3. 会重置 AUTO_INCREMENT

插入查询结果

INSERT INTO table_name (column1, column2, ...) SELECT column1, column2, ... FROM table_name WHERE condition;

其中,table_name是要插入数据的表名,column1、column2等是要插入数据的列名,SELECT子句用于查询要插入的数据,WHERE子句用于筛选要插入的数据。

聚合函数

假设有一个名为employees的表, 有salary、age列属性。

COUNT:用于计算指定列中的行数(不包括NULL值),例如:SELECT COUNT(*) FROM employees;
SUM:用于计算指定列中的数值总和,例如:SELECT SUM(salary) FROM employees;
AVG:用于计算指定列中的数值平均值,例如:SELECT AVG(age) FROM employees;
MAX:用于计算指定列中的最大值,例如:SELECT MAX(salary) FROM employees;
MIN:用于计算指定列中的最小值,例如:SELECT MIN(age) FROM employees;

相关推荐

  1. MySQL 基础语法3

    2024-04-23 21:54:02       13 阅读
  2. MYSQL基础语法

    2024-04-23 21:54:02       23 阅读
  3. MySQL基础语法

    2024-04-23 21:54:02       43 阅读
  4. mySql 基础语法

    2024-04-23 21:54:02       10 阅读
  5. MySQL基本概念和基础语法

    2024-04-23 21:54:02       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 21:54:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 21:54:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 21:54:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 21:54:02       20 阅读

热门阅读

  1. Shell中grep用法总结

    2024-04-23 21:54:02       12 阅读
  2. 管理科学-运输问题(伏格尔法)

    2024-04-23 21:54:02       14 阅读
  3. MySQL常见问题汇总

    2024-04-23 21:54:02       14 阅读
  4. webview透明

    2024-04-23 21:54:02       10 阅读
  5. Linux为根目录扩容

    2024-04-23 21:54:02       12 阅读
  6. 【K8S系列】深入解析K8S中PV 和PVC

    2024-04-23 21:54:02       13 阅读
  7. 关于ABB怎么回原点最简单的方法

    2024-04-23 21:54:02       19 阅读
  8. Python的pytest框架(4)--参数化测试

    2024-04-23 21:54:02       16 阅读
  9. idea 切换分支后 Project目录树小消失

    2024-04-23 21:54:02       13 阅读
  10. K8S 哲学 - yaml文件

    2024-04-23 21:54:02       11 阅读
  11. 自编码器实现

    2024-04-23 21:54:02       12 阅读