当前位置: 首页 > news >正文

CRUD2

 

 1. 查询基础语法

 

- 语法结构: SELECT select_expr [, select_expr ...] [FROM table_references] [WHERE where_condition] 

-  SELECT  是查询关键字,用于指定要查询的列。

-  FROM  用于指定从哪个表查询数据 。

-  WHERE  用于添加查询条件,通过运算符和列进行比较筛选数据。

- 示例

- 查询所有人的编号、姓名和语文成绩:

 

select id, name, chinese from exam;

 

 

2. 比较运算符

 

- 运算符及说明

-  >, >=, <, <= :大于、大于等于、小于、小于等于。

-  = :等于,对NULL比较不安全( NULL = NULL  结果为NULL )。

-  <=> :等于,对NULL比较安全( NULL <=> NULL  结果为TRUE ) 。

-  !=, <> :不等于。

-  BETWEEN ... AND ... :范围匹配,如  value BETWEEN a0 AND a1  表示  a0 <= value <= a1  。

-  IN (option, ...) :如果值在列表中则返回TRUE, NOT IN  则相反。

-  IS NULL :判断是否为NULL 。

-  IS NOT NULL :判断不为NULL 。

-  LIKE :模糊匹配, %  表示任意多个字符, _  表示任意一个字符 。

- 示例

- 查询英语不及格( < 60 )的同学及英语成绩:

 

select name, english from exam where english < 60;

 

 

- 查询语文成绩高于英语成绩的同学:

 

select name, chinese, english from exam where chinese > english;

 

 

- 模糊查询名字以“孙”开头的同学:

 

select * from exam where name like '孙%';

 

 

- 模糊查询名字是“孙”开头且总共两个字的同学:

 

select * from exam where name like '孙_';

 

 

3. 逻辑运算符

 

- 运算符及说明

-  AND :多个条件都为TRUE时,结果才为TRUE,类似于Java中的  &&  。

-  OR :任意一个条件为TRUE,结果就为TRUE,类似于Java中的  ||  。

-  NOT :条件为TRUE时,结果为FALSE,类似于Java中的  !  。

- 示例

- 查询语文成绩大于80分且英语成绩大于80分的同学:

 

select name, chinese, english from exam where chinese > 80 AND english > 80;

 

 

- 查询语文成绩大于80分或英语成绩大于80分的同学:

 

select name, chinese, english from exam where chinese > 80 OR english > 80;

 

 

4. NULL值的查询

 

- 查询值为NULL的数据行:

 

select * from exam where english is null;

 

 

- 查询值不为NULL的数据行:

 

select * from exam where english is not null;

 

 

- NULL与其他值运算:NULL与任何值运算结果都为NULL 。如  select 1 + null;  结果为NULL 。

 

5. 查询字段为表达式

 

- 常量表达式:在查询列表中可以使用常量,字符串常量要用单引号。如:

 

select id, name, 10, '查看详情' from exam;

 

 

- 列运算表达式

- 把所有学生的语文成绩加10分:

 

select id, name, chinese, chinese + 10 from exam;

 

 

- 计算所有学生语文、数学和英语成绩的总分:

 

select name, chinese + math + english from exam;

 

 

6. 排序(ORDER BY)

 

- 多列排序:不同的排序列用逗号隔开,后面的排序规则在前一个排序规则基础上进行。

- 查询同学各门成绩,依次按数学降序,英语升序,语文升序的方式显示:

 

select * from exam order by math desc, english asc, chinese asc;

 

 

- 按总分排序

- 查询同学及总分,由高到低排序:

 

select *, chinese + math + english as total from exam order by total desc;

 

 

- 注意:不能在  WHERE  子句中使用别名进行比较,如  select name 姓名, chinese + math + english total from exam where total < 200;  会报错 。

 

7. 结果去重查询(DISTINCT)

 

- 对指定列去重,如果多列一起去重,要求所有列的值都相同才判定为重复记录。

- 对数学成绩列去重:

 

select distinct math from exam;

 

 

- 对id和数学成绩列一起去重:

 

select distinct id, math from exam;

 

 

8. 其他操作

 

- 修改表结构(ALTER TABLE ):可进行添加列、修改列、删除列、重命名列、重命名表等操作 。语法格式如  ALTER TABLE tbl_name [alter_option [, alter_option] ...];  ,其中  alter_option  有多种取值 。

- 删除表(DROP TABLE ):语法为  drop table [if exists] 表名;  ,这是危险操作 。

- 插入数据(INSERT INTO ):语法为  insert into 表名 (列1 [, 列2...]) values (值1 [, 值...]);  ,值的顺序与列的顺序要保持一致 。

 

9. MySQL配置相关

 

- 可通过  source  命令导入SQL文件,如  mysql> source d:/database/exam.sql  。

- 可通过  show variables like '%character%';  查看字符集相关变量 。

- MySQL服务启动时会读取配置文件(如  my.ini  )中的配置 ,可以在配置文件中设置字符集等参数,如  default - character - set=utf8mb4  。

相关文章:

  • QuickAPI 核心能力解析:构建数据服务化的三位一体生态
  • express框架使用cors包解决跨域问题时,还是存在问题的原因。
  • 49、Spring Boot 详细讲义(六)(SpringBoot2.x整合Mybatis实现CURD操作和分页查询详细项目文档)
  • Muduo库代码剖析 : EventLoop
  • 【JavaScript】二十二、通过关系查找DOM节点、新增、删除
  • 批量将多个压缩包文件解压到文件夹
  • 注意力机制的改进
  • Mobaxterm 突破 14个 session 限制
  • 凸优化基础
  • 【python实用小脚本系列】用 Python 打造你的专属录音机,随时随地记录声音!
  • Qt中 Key_Return 与 Key_Enter
  • 图论--DFS搜索图/树
  • DP 16bit位宽数据扰码实现和仿真
  • 淘宝大数据接口解析:商品类目 / 价格 / 销量多维数据采集与存储方案
  • 软件测试——BUG概念
  • Uniapp权限申请优化方案
  • Browser-use 是连接你的AI代理与浏览器的最简单方式
  • 什么是跨域问题以及其解决方案
  • mac上面使用zip命令压缩一劳永逸
  • 逆周期中的“深潜者”样本,解码康佳“智造”破局密码
  • 笔墨如何“构城”?上海美院城市山水晋京展出
  • 郭继孚被撤销全国政协委员资格,此前为北京交通发展研究院长
  • 15世纪以来中国文化如何向欧洲传播?《东学西传文献集成初编》发布
  • 看展览|建造上海:1949年以来的建筑、城市与文化
  • “不意外”和“不遗余力”,直击上海商超对接外贸企业
  • 外交部回应涉长江和记出售巴拿马运河港口交易:望有关各方审慎行事,充分沟通