查询(select)语法:

**select 字段,...from 表**

  1. --查询全部学生 select 字段 from
  2. select * from sutdent
  3. --查询指定字段
  4. select `studentna`,`studentname` from student
  5. --别名,给结果起一个名字 AS 可以给字段起别名,也可以给表起别名
  6. select `studentno` as 学号 , `studentname` as 名字 from student as s
  7. --函数 concata,b

去重 distinct

**作用****去除SELECT 查询出来的结果中重复的数据,重复的数据只显示一条**

  1. 查询那些同学参加了考试,成绩
  2. select * from result --查询全部的考试成绩
  3. select `student` from result --查询有哪些同学参加了考试
  4. select distinct `student` from result --发现重复数据,去重

数据库的列 (表达式)

**语法****select 表达式 from 表**

  1. select version () --查询系统版本 (函数)
  2. select 100*3-1 as 计算结果 --用来计算 (表达式)
  3. select @@auto_increment_increment --查询自增的步长 (变量)
  4. --学员考试成绩+1分查看
  5. select `studentno`+,`studentresult`+1 as "提分后" from result

数据库中的表达式:文本值,列,null,函数,计算方式,系统变量....


where条件子句

**作用**:检索数据中**符合条** 的值
搜索的条件由一个或多个表达式组成!结果 布尔值

运算符 语法 描述
and && a and b a&&b 逻辑与,两个都为真,结果为真
or | | a or b a | | b 逻辑或,其中一个为真,则结果为真
not ! not a ! a 逻辑非,真为假,假为真!

**尽量使用英文字母**

  1. 查询考试成绩在95~100分之间
  2. --and--
  3. select `studentno`,`studentresult` from result
  4. where studentresult>=95 and studentresult<=100
  5. ---&&---
  6. select `studentno`,`studentresult` from result
  7. where studentresult>=95 && studentresult<=100
  8. --模糊查询between...and..(区间)
  9. select `studentno`,`studentresult` from result
  10. where studentresult between 95 and 100
  11. 除了1000号学生之外的同学成绩
  12. -- != --
  13. select `studentno`,`studentresult` from result
  14. where studentno!=1000
  15. -- not--
  16. select `studentno`,`studentresult` from result
  17. where not studentno!=1000

多表联查

**左连接**:从**左表查询信息并全部展示**,即使右表里没有
**右连接**:从**右表里查询信息并全部展示**,即使左表里没有
**Inner join**:把**两个表相匹配**的全部展示

1、查询学生的学号、名字、年级

  1. SELECT
  2. studentno,
  3. studentname,
  4. gradename
  5. FROM
  6. student s
  7. JOIN grade g ON s.gradeid = g.gradeid;


2、查询学生的学号、名字、年级 (左连接)

  1. SELECT
  2. studentno,
  3. studentname,
  4. gradename
  5. FROM -- from后左表
  6. student s
  7. LEFT JOIN grade g ON s.gradeid = g.gradeid; -- join后右表

3、查询学生的学号、名字、年级 (右连接)

  1. SELECT
  2. studentno,
  3. studentname,
  4. gradename
  5. FROM -- from后左表
  6. student s
  7. right JOIN grade g ON s.gradeid = g.gradeid; -- join后右表