一,数据库语句

数据库数据是通过DML语句管理数据库数据,包括:

  • INSERT (添加数据语句)
  • UPDATE (更新数据语句)
  • DELETE (删除数据语句)

1:INSERT (添加数据语句)

INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')

注意 :

1,字段或值之间用英文逗号隔开;

2,'字段1,字段2...'该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致;

3,可同时插入多条数据 , values 后用英文逗号隔开

2:UPDATE (更新数据语句)

UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];
#注意 :

1,column_name 为要更改的数据列;

2,value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果;

3,condition 为筛选条件 , 如不指定则修改该表的所有列数据

3:DELETE (删除数据语句)

DELETE FROM 表名 [WHERE condition];
#注意 : condition为筛选条件 , 如不指定则删除该表的所有列数据

二,DQL( Data Query Language 数据查询语言 )

查询数据库数据 , 如SELECT语句,简单的单表查询或多表的复杂查询和嵌套查询,DQL是数据库语言中最核心,最重要的语句也是使用频率最高的语句

1,指定查询字段

# 查询所有学生信息
SELECT * FROM student;
# 查询指定列(学生的学号和姓名)

SELECT studentno,studentname FROM student;

2,DISTINCT关键字的使用

作用 : 去掉SELECT查询返回的记录结果中重复的记录(返回所有列的值都相同),只返回一条

# 查看哪些同学参加了考试(学号)--去除重复项
SELECT * FROM result;
SELECT studentno FROM result;
SELECT DISTINCT studentno FROM result;
#说明:一个学生有很5课成绩,但是只有他1个学号,如果不加DISTINCT,

只执行SELECT studentno FROM result;,那么会根据他的5课成绩查出5个学号的,

如果加了DISTINCT,去掉重复项,那么就只有一个学号了

3,where条件语句

用于检索数据表中符合条件的记录,搜索条件可由一个或多个逻辑表达式组成 , 结果一般为真或假

# 查询考试成绩在95-100之间的学生学号
SELECT Studentno,StudentResult
FROM result
WHERE StudentResult>=95 AND StudentResult<=100; # AND也可以写成 &&

SELECT Studentno,StudentResult

FROM result

WHERE StudentResult>=95 && StudentResult<=100; # 除了1000号同学,要其他同学的成绩

SELECT studentno,studentresult

FROM result

WHERE studentno!=1000;
# 使用NOT

SELECT studentno,studentresult

FROM result

WHERE NOT studentno=1000;

4,模糊查询

#查询姓李的同学的学号及姓名
#like结合使用的通配符 : % (代表0到任意个字符) _ (一个字符)
SELECT studentno,studentname FROM student
WHERE studentname LIKE '李%'; #查询姓李的同学,后面只有一个字的

SELECT studentno,studentname FROM student

WHERE studentname LIKE '李_'; #查询姓李的同学,后面只有两个字的

SELECT studentno,studentname FROM student

WHERE studentname LIKE '李__'; #查询姓名中含有 文 字的

SELECT studentno,studentname FROM student

WHERE studentname LIKE '%文%'; #查询学号为1000,1001,1002的学生姓名

SELECT studentno,studentname FROM student

WHERE studentno IN (1000,1001,1002); #查询地址在北京,南京,河南洛阳的学生学号姓名

SELECT studentno,studentname,address FROM student

WHERE address IN ('北京','南京','河南洛阳'); #查询出生日期没有填写的同学

#不能直接写=NULL , 这是代表错误的 , 用 is null

SELECT studentname FROM student

WHERE BornDate IS NULL; #查询出生日期填写的同学

SELECT studentname FROM student

WHERE BornDate IS NOT NULL;
#查询没有写家庭住址的同学(空字符串不等于null)

SELECT studentname FROM student

WHERE Address='' OR Address IS NULL;

5,连接查询

连接查询: 如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询

1,内连接 inner join:查询两个表中的结果集中的交集

2,外连接 outer join:

2-1,左外连接 left join:以左表作为基准,右边表来一一匹配,匹配不上的,返回左表的记录,右表以NULL填充

2-2,右外连接 right join:以右表作为基准,左边表来一一匹配,匹配不上的,返回右表的记录,左表以NULL填充

#查询参加了考试的同学信息(学号,学生姓名,科目编号,分数)
SELECT * FROM student;
SELECT * FROM result; #查询student表的学生学号=result表的学生学号时的同学信息(学号,学生姓名,科目编号,分数)

#内连接

SELECT s.studentno,studentname,subjectno,StudentResult

FROM student s

INNER JOIN result r

ON r.studentno = s.studentno # 右连接(也可实现)

SELECT s.studentno,studentname,subjectno,StudentResult

FROM student s

RIGHT JOIN result r

ON r.studentno = s.studentno # 等值连接

SELECT s.studentno,studentname,subjectno,StudentResult

FROM student s , result r

WHERE r.studentno = s.studentno # 左连接 (查询了所有同学,不考试的也会查出来)

SELECT s.studentno,studentname,subjectno,StudentResult

FROM student s

LEFT JOIN result r

ON r.studentno = s.studentno
#查一下缺考的同学(左连接应用场景)

SELECT s.studentno,studentname,subjectno,StudentResult

FROM student s

LEFT JOIN result r

ON r.studentno = s.studentno

WHERE StudentResult IS NULL

6,排序和分页

ORDER BY 语句用于根据指定的列对结果集进行排序,默认按照ASC升序对记录进行排序。

# 查询C语言-1的考试结果(学号 学生姓名 科目名称 成绩)
# 按成绩降序排序
SELECT s.studentno,studentname,subjectname,StudentResult
FROM student s
INNER JOIN result r
ON r.studentno = s.studentno
INNER JOIN `subject` sub
ON r.subjectno = sub.subjectno
WHERE subjectname='C语言-1'
ORDER BY StudentResult DESC , studentno
# 每页显示5条数据

SELECT s.studentno,studentname,subjectname,StudentResult

FROM student s

INNER JOIN result r

ON r.studentno = s.studentno

INNER JOIN subject sub

ON r.subjectno = sub.subjectno

WHERE subjectname='C语言-1'

ORDER BY StudentResult DESC , studentno

LIMIT 0,5

MySQL(3):SELECT语法的更多相关文章

  1. mysql之select语法

    一:连接查询(外链接outer和内链接inner) 连接查询是另一种类型的多表查询.连接查询对多个表进行JOIN运算,简单地说,就是先确定一个主表作为结果集,然后,把其他表的行有选择性地“连接”在主表 ...

  2. MySQL(九)之数据表的查询详解(SELECT语法)一

    这一篇是MySQL中的重点也是相对于MySQL中比较难得地方,个人觉得要好好的去归类,并多去练一下题目.MySQL的查询也是在笔试中必有的题目.希望我的这篇博客能帮助到大家! 重感冒下的我,很难受!k ...

  3. MySQL SELECT语法(二)SELECT...INTO语法

    源自MySQL 5.7 官方手册 SELECT...INTO Syntax 一.SELECT...INTO介绍 SELECT...INTO用来将查询结果存储在变量或者写入文件中. SELECT ... ...

  4. MySQL创建索引语法

    1.介绍: 所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引.总索引长度为 ...

  5. MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认(转)

    Select…For Update语句的语法与select语句相同,只是在select语句的后面加FOR UPDATE [NOWAIT]子句. 该语句用来锁定特定的行(如果有where子句,就是满足w ...

  6. MySQL的一些语法总结

    初学MySQL,今天遇到了一个问题,然后汇总了一下MySQL的一些语法 1. date和datetime类型是不同的 date只记录日期(包括年月日),datetime记录日期和时间(包括年月日时分秒 ...

  7. sql点滴41—mysql常见sql语法

    原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename ...

  8. [mysql使用(2)] mysql的一些语法与Oracle的差别

    一.表空间 mysql的表空间有共享表空间和独占表空间,独占表空间,其实就是一张表一个表空间,其实也就是一张表一个数据文件,共享表空间似乎有点类似oracle的表空间,不同的表可以保存在同一个数据文件 ...

  9. mysql进阶(四)mysql中select

    mysql中select * for update 注:  FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效. 作用 锁定该语句所选择到的对象.防止在 ...

  10. Mysql索引详细语法

    索引相关命令 - 查看表结构 desc 表名 - 查看生成表的SQL show create table 表名 - 查看索引 show index from 表名 - 查看sql执行时间 set pr ...

随机推荐

  1. if语句和switch语句的选择与区别

    if语句和Switch语句的选择 if 结构 基本if选择结构: 处理单一或组合条件的情况 if-else选择结构:处理简单的条件分支情况 多重if选择结构:处理复杂的条件分支情况 嵌套if选择结构: ...

  2. Flask WTForm disable choice field

    Flask disable choice field ChoiceField = { render_kw={'disabled':''} } form.my_field.render_kw = {'d ...

  3. 3组-Alpha冲刺-2/6

    一.基本情况 队名:发际线和我作队 组长博客:链接 小组人数:10 二.冲刺概况汇报 黄新成(组长) 过去两天完成了哪些任务 文字描述 在校内外进行了数据采集,采集了多场景的数据,并进行了帧分割. 展 ...

  4. JDK的第三个LTS版本JDK17来了

    目录 简介 JDK17中的新特性 语言上的新特性 核心库的优化 支持新的平台 预览特性 其他改动 总结 简介 2021年9月JDK17发布了,JDK17是最新的一个LTS版本.所谓LTS版本就是可以得 ...

  5. Effective C++ 总结笔记(一)

    一.让自己习惯C++ 01.视C++为一个语言联邦 c++是多重范型编程 语言,视c++包括4种次语言: 1:C 2:Object-Oreinted C++: 3:Template C++: 4:ST ...

  6. 基于Mui与H5+开发webapp的Android原生工程打包步骤(使用新版本5+SDK与Android studio)(部分内容转自dcloud官网)

    文章背景: dcloud官网给出的打包步骤对于有一定安卓打包基础的同学来说比较容易掌握,但是对于webapp小白来讲有的地方可能没有说的太具体.下面我给大家介绍的详细一点,保证大家按照步骤就能学会打包 ...

  7. inux 下配置网卡的别名即网卡子IP的配置 转

    what 什么是ip别名?用windows的话说,就是为一个网卡配置多个ip.when 什么场合增加ip别名能派上用场?布网需要.多ip访问测试.特定软件对多ip的需要...and so on. ho ...

  8. 软虹sdk基本使用

    虹软SDK的简单使用 Java实现人脸识别,但是又不会自己实现算法,找SDK时发现了虹软.虹软SDK具有免费.识别率高等优点,然后到网上搜这个SDK的教程,没搜到,就自己探索,发现它自带的官方文档其实 ...

  9. k8s-数据持久化存储卷,nfs,pv/pvc

    目录 数据持久化-储存卷 官方文档 存储卷类型 1.emptyDir 2.hostpath 3.pv/pvc(推荐使用) nfs官方文档 安装测试nfs pv/pvc管理nfs 官方文档 pv/pvc ...

  10. Java架构师和开发者实用工具推荐

    目前,Java已经受到全球数百万开发者的肯定和追捧,成为最具代表性的编程语言之一.前段时间刚刚发布的Java8完美诠释了高效和创新的特性,也为很多开发者和企业铺平了道路.不过,作为一位优秀的Java架 ...