MySQL: 表内容的新增和查询(基础)

目录

1. 准备工作

2. 新增(Create)

2.1 全列插入(以插入一组数据为例)

2.2 指定列插入(以插入一组数据为例)

2.3 插入多组数据

3. 查询(Retrieve)

3.1 查找所有列

3.2 查找指定列

3.3 查询字段为表达式

3.4 给当前列起一个别名(as)

3.5 对查询结果去重(distinct)

3.6 排序(order by)

3.7 条件查询(where)

3.8 分页查询(limit)


1. 准备工作

首先准备一个表 grade,如下:

关于如何创建表在上一篇博客中已经写到了(博客链接),就不再展示了.下面就通过一些例子来总结如何对于表进行 新增和查询~

2. 新增(Create)

2.1 全列插入(以插入一组数据为例)

insert into grade values(1,'direnjie',95,96,45);

注意: 插入的时候,可以显示指定某一列不填内容(使用 null 来占位),在建表的时候必须指定这一列允许为空.

2.2 指定列插入(以插入一组数据为例)

在 values 之前,通过 () 来指定插入哪几列.

insert into grade (id,name,chinese,math) values (2,'liyuanfang',67,87);

2.3 插入多组数据

insert into grade values
	(3,'makeboluo',34,45,98),
	(4,'xiaoqiao',76,63,55),
	(5,'nakelulu',23,63,44),
	(6,'caocao',98,56,37),
	(7,'sunwukong',56,78,69),
	(8,'sunshangxiang',78,76,77),
	(9,'sunbing',85,89,66);

3. 查询(Retrieve)

3.1 查找所有列

select* from grade;

3.2 查找指定列

select name,chinese from grade;

3.3 查询字段为表达式

也就是针对查找结果进行加工.

select name,chinese+10 from grade;

在进行完这样的操作之后,我们的原表有没有发生变化呢?

答案是没有,因为 select 语句的操作相当于得到了一个临时表,看起来是语文成绩加10了,实际上对于磁盘上原始的数据没有影响.

3.4 给当前列起一个别名(as)

使用 as , as 也可以省略.

select name,chinese+math+english as total from grade;

3.5 对查询结果去重(distinct)

a) 针对一列进行去重

select distinct math from grade;

b) 可以写成下面这样吗?

可以写成这样吗???
select name,distinct math from grade;

答案是: 不可以,按name 查有9行,按math去重后查,只有 8行,很难对应起来.

c) 可以同时指定多列进行去重( distinct 在前面,后面所跟的列均需要去重)

3.6 排序(order by)

升序为 asc,降序为 desc

a) 默认情况下为升序

b) 按照降序排列

c) 如果存在null,如何排序呢?

将null 作为最小值

d) order by 还可以对表达式进行排序

3.7 条件查询(where)

查找出符合条件的记录.

注意: where 条件可以使用表达式,但是不能使用别名.

比较运算符:

逻辑运算符:

3.7.1 基本查询:

  • a) 查找所有英语成绩 < 60 的同学的姓名

为了方便验证,将英语成绩也输出了~~下面的例子也是如此.

  • b) 查找语文成绩 > 英语成绩 的同学的姓名

  • c) 查找总成绩 < 200 的同学的姓名

d) 注意= 和<=>的区别,=不包含null 的比较, <=>包含对 null 的比较相等

3.7.2 and 与 or:

  • a) 查找语文成绩 >80 或者 英语成绩 > 80 的同学(or)

3.7.3 范围查询:

  • a) 查找语文成绩在 [80,90]的同学(between and)

上面两种方法均可~

  • b) 查找语文成绩为 34或者78或者95的同学(in)

3.7.4 模糊查询:

% 表示匹配任意字符, '%sun'表示匹配以 sun 结尾的结果; 'sun%' 表示匹配以sun开头的结果; '%sun%' 表示匹配包含 sun 的结果.针对数字也能模糊匹配.

_只能匹配一个字符

  • a)查找姓 sun 的同学的信息

3.8 分页查询(limit)

进行查找的时候,有的时候数据量比较大,如果直接一下子全部查出来,就可能会卡死了,使用limit关键字来分页.

a) 从0 开始,筛选 n 条结果

 select name,chinese from grade limit n;

b) 从 s 开始,筛选 n条结果

select name,chinese from grade limit n offset s;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值