查询(select)语法:
**select 字段,...from 表**
--查询全部学生 select 字段 from 表select * from sutdent--查询指定字段select `studentna`,`studentname` from student--别名,给结果起一个名字 AS 可以给字段起别名,也可以给表起别名select `studentno` as 学号 , `studentname` as 名字 from student as s--函数 concat(a,b)
去重 distinct
**作用**:**去除SELECT 查询出来的结果中重复的数据,重复的数据只显示一条**
查询那些同学参加了考试,成绩select * from result --查询全部的考试成绩select `student` from result --查询有哪些同学参加了考试select distinct `student` from result --发现重复数据,去重
数据库的列 (表达式)
**语法**:**select 表达式 from 表**
select version () --查询系统版本 (函数)select 100*3-1 as 计算结果 --用来计算 (表达式)select @@auto_increment_increment --查询自增的步长 (变量)--学员考试成绩+1分查看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 | 逻辑非,真为假,假为真! |
**尽量使用英文字母**
查询考试成绩在95~100分之间--and--select `studentno`,`studentresult` from resultwhere studentresult>=95 and studentresult<=100---&&---select `studentno`,`studentresult` from resultwhere studentresult>=95 && studentresult<=100--模糊查询between...and..(区间)select `studentno`,`studentresult` from resultwhere studentresult between 95 and 100除了1000号学生之外的同学成绩-- != --select `studentno`,`studentresult` from resultwhere studentno!=1000-- not--select `studentno`,`studentresult` from resultwhere not studentno!=1000
多表联查
**左连接**:从**左表查询信息并全部展示**,即使右表里没有**右连接**:从**右表里查询信息并全部展示**,即使左表里没有**Inner join**:把**两个表相匹配**的全部展示
1、查询学生的学号、名字、年级
SELECTstudentno,studentname,gradenameFROMstudent sJOIN grade g ON s.gradeid = g.gradeid;
2、查询学生的学号、名字、年级 (左连接)
SELECTstudentno,studentname,gradenameFROM -- from后左表student sLEFT JOIN grade g ON s.gradeid = g.gradeid; -- join后右表
3、查询学生的学号、名字、年级 (右连接)
SELECTstudentno,studentname,gradenameFROM -- from后左表student sright JOIN grade g ON s.gradeid = g.gradeid; -- join后右表
