MySQL对数据表的查询语句

例题:

先来一个样例表:

create table tb_users(
    id bigint primary key auto_increment,
    username varchar(20) not null,
    password varchar(24) not null,
    birth date,
    sex boolean default 1,
    score numberic(8,2)
)engine=innodb default charset utf8;

基本语法:

select:查询主体
from:表名称或者视图名称,表名称或者视图名称----- 在MySQL中允许查询语句中没有from
where:查询的条件语句
group by:分组

having: 分组条件
order by:排序条件 asc--从小到大排序 / desc--从大到小排序
limit:进行分页

1:普通查询:

查看表中所有数据   select * from tb_users   这里的星号*是个通配符,表示获取所有列的值

在查询语句中使用星号*代表获取表中的所有列,如果只获取其中一部分列,例如只查询用户的

称和口令,可以写成   select username,password from tb_users

此时可以看出我们也可以不使用星号,下面分析星号的优劣:

劣势:

使用星号会增加查询分析器的解析成本
如果使用MyBatis之类的持久层框架时,增删字段容易操作配置不一致问题
查询无用的字段会增加网络消耗,尤其是针对text/blob之类的大对象字段
使用星号可能会失去优化器中覆盖索引策略优化

 优势:

一定程度上减少了编码量
不需要指导表中的字段名称,可以避免书写具体字段名称的繁琐和笔误
增加新字段时,不需要修改select代码,在一定程度上提高了代码的复用率

 2:带条件查询:

例如查看表中年龄大于18岁的所有用户信息 :

select * from tb_users where year(now())-year(birth)>18

例如查看表中id值大于等于5的所有用户信息

select * from tb_users where id>=5;

注意等值判断使用=,不是==,例如获取编号为16的用户信息select * from tb_users where
id=5; 是单等号,不是双等号

等于判断 =、不等于判断 !=、大于 >、小于 <,大于等于 >=、小于等于 <=

3、非空或者空值判断 :

注意不能使用 =null 或者 !=null 的写法,应该使用 is null 或者 is not null
例如查询性别未知的用户信息   select * from tb_users where sex is null

4、字符串比较:

使用等号   select * from tb_users where username='giao' and password='123456'

模糊查询 like/not like 统配符_%

统配符_表示一个任意字符

统配符%表示任意个任意字符

例如查询所有姓张的用户信息   select * from tb_users where username like '张%';

统配符_和%可以是在字符串的任意位置

y_表示包含两个字符长的字符串,必须y开头。例如y1匹配,y12不匹配,y也不匹配

y%表示以y开头,后面跟任意个任意字符的字符串。例如ay不匹配,y匹配,y123也匹配

_y表示包含两个字符长的字符串,必须y结尾,例如1y匹配,12y不匹配,y也不匹配

%y表示以y结尾,前面有任意个任意字符的字符串。例如ay匹配,y匹配,12y1不匹配

_y_ 表示三个字符长的字符串,中间字符必须为y

%y%表示包含字符y的字符串,可以在开头,可以在尾巴,也可以中间

5、选择表中的若干元组:

元组就是事物特征的组合,可以用于描述一个具体的事物

关系就是一个带有表头的二维表格,表中的每行数据就是一个元组,元组的集合就是关系,每个列
就是一个属性。在二维表中元组也可以称为行,属性为列

字段:某个事物的一个特征,也可以称为属性或者列
表:记录属性的组合,表示同一类事物的组合
主键:能够唯一标识一行数据的列组合。一个表只能有一个主键,但是主键可以是由多个列构成
域:属性的取值范围
关系模式:就是关系的描述,表示方法  关系名(属性列表,...),例如学生(学号,姓名,性别,年龄)
关系的约束:实体完整性、参照完整性、用户自定义完整性

写法:

select * from tb_users where (id,name) > (1,'aaa');

select * from tb_users where id>1 and name>'aaa'

在使用条件计算时可以使用 and--与,or--或,not--非 运算 


版权声明:本文为m0_64838208原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>