sql中查询语句 列名不存在 怎么办_MySQL---- 查询select简单使用(三)

查询数据 SELECT

1、检索单列

-- 查询商品名称 
select prod_name from products;

a018a367ccd38822586f218d46d006bd.png

注意:

1、 返回数据没有排序

2、SQL 语句结束必须使用分号(;)

3、在处理SQL 语句时,其中所有空格都被忽略

4、SQL 可以一行也可以多行,建议将SQL语句分为多行,这样更易阅读和调试。

5、SQL语句不区分大小写,但是建议SQL 关键字使用大写,所有列和表名使用小写,这样便于阅读调试,还有的就是MySQL4.1 及之前的版本中,标识符(如数据库名称,表名,列名),默认是区分大小写的,4.1 之后默认是不区分大小写的。

2、检索多列

在检索多列的时候,一定要在列名之间加上逗号,但是最后一个列名不要添加逗号,不然报错

select prod_id,prod_name,prod_price from products;

a596d2ea03b714c786c58f1faeedf4ae.png

数据的表示: SQL 语句一般返回原始的、无格式的数据,实际中一般是使用SQL查出原始的数据,然后使用程序进行提供格式(如给钱加个¥)

3、检索所有列

1、是将所有的字段全部列出进行查询

2、是使用通配符(*),表示所有的列

select * from products;

a4d524f8bcc4a156d0e7bee66a94acda.png

建议: (*) 能不用最好不用,因为会降低检索和应用程序的性能。当然在你对这表不熟悉,这个时候* 就很重要会把表中所有的列检出来,然后再不断优化

4、检索不同的行

如:在你进行单列查询的时候,会把单列的所有的行都返回出来,这个时候可能会有一些行是重复的,也不方便了解, 就想上述的 vend_id (供应商编号)这一列中的数据好多行是重复的,不变查看,我就想知道这批商品主要有哪些供应商,怎么搞

这个时候 DISTINCT (distinct)关键字孕育而出,意味只返回不同的值

 select distinct vend_id from products;

0359caf75b38c8c06bc3ef918d18989b.png

注意:

distinct 关键字应用于所有列而不仅是前置他的列,建议只在单列查询的时候使用

如下面:两个都用报错,只用一个没用

a3e024c3b1b7c245bd5909f95c412215.png

5、限制结果

select 语句返回所有的匹配的行,但是你要是不需要那么多,需要返回特定的行要怎么办来

这个时候 LIMIT 关键字就出来了,你要是了解的较多可能会听过 TOP 关键字返回前几行,不过这个SQLServer 支持,MySQL不支持

从简到难

--  返回前五行 
select prod_name from products limit 5;

847b144bbb47e03d72a7288811f0c5fc.png
-- 从第5行开始,检索5行  limit 5,5  第一个数表示开始位置,第二个数表示检索行数 
select prod_name from products limit 5,5;

3e48264f2c7f31a9affed7f90ab05a4a.png

注意:

1、从0 开始算数,检索出来的第一行为0而不是1(理工科就要无中生有,从零开始)

2、当需要检索的行数大于拥有的时,只返回符合的

bfa3f9d854050e808adb716416d4a0c8.png

3、mysql 5 后支持 limit 4 offset 2,与limit 2,4 一个意思,表示从行2开始取4行

8c4347b1894d1ea70817cadd9bc60b1e.png

6、完全限定

就是通过名字来引用列,通过库引用表

-- 查询bookstu 数据库中的products,products 表的prod_name 字段的所有行 
select products.prod_name from bookstu.products;

da90c780d5fa960e631c88edd86bcb2b.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值