查询数据库信息:
- 查询 MySQL数据库 的版本号
select version(); - 查看当前使用的数据库
elect database();
查询表结构
- 查询表结构(desc 是 describe 的缩写)
desc(或describe) 表名;
简单查询
- 查询指定字段的数据( 可以是一个字段,也可以是多个字段,字段之间逗号隔开 )
select 字段1 , 字段2 , 字段3… from 表名; - 查询所有字段
select * from 表名;
as 关键字
这就要提一提这个 as 关键字,如果一个字段名过长,或者不能很好的表达该字段的含义的时候,我们可以使用 as 关键字用来给字段取别名
例:查询字段的同时,给字段取别名(注意只是改变显示结果,表中的不会被改变)
select 字段1 , 字段2 as 字段3 from 表名; (这是字段2被取了别名为字段3,字段1没有变)
其中这个 as 关键字可省略(即只有一个空格)
select 字段1 , 字段2 字段3 from 表名;(与上面的功能一样)
那如果名中有空格怎么办(别名中如果有空格相同处理)?
我们用引号将名字包起来,单引号为使用标准,双引号在部分数据库中不可( MySQL 中可用双引号)
数学表达式
字段可以使用数学表达式( +, - ,* , / 等)
注意:只要参与运算中有 NULL ,则结果一定为 NULL
例:select name , age + 1 from table_1;
条件查询(即查询符合条件的数据)
select 字段1 , 字段2 , from 表名 where 条件;
例:select name , age from table_1 where age >= 18
运算符有:< ,<= ,> ,>= ,and ,or ,<> ,!= ,is null ,in ,not ,like ,= ,between…and…
( <,<=,>,>= ,这四个就不说了,就是你们认为的意思)
- <> (或 !=):不等于
- is null :为 null(is not null 则不为 null )
- in :包含,相当于多个 or ( not in 则不在范围内 )
- not :取非,主要用于 is 和 in 中
- = :等于
- and :且
- or :或
- between…and… :两个值之间,相当于 >= and <=
- like :称为模糊查询,支持 % 和 _ 匹配
% 匹配任意个字符(当然也可以为 0 个字符)
_ 匹配任意一个字符
( 如果查找的字符中有 _ 或 %,可用 \ 转义符号)
运算符之间有优先级,例 and 的优先级要大于 or ,可用 ( ) 来调整执行顺序
排序
order by 字段名 (默认为升序)
指定降序:order by 字段名 desc;
指定升序:order by 字段名 asc;
按多个字段排序:order by 字段1 升或降 , 字段2 升或降 , … ( 先用字段1排,若相同,则按字段2排 )
也可按照字段的位置排:order by 3 ( 用查询结果的第二列排,但很少这么写,字段的顺序可能会变 )
重点:
我们要记住重要的一点,select 永远不会进行修改表内数据的操作,只是查询时显示的不同罢了