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
    评论
好的,我来为您解答MySQLSQL语句练习题(一)。 1. 创建一个名为“test”的数据库。 ``` CREATE DATABASE test; ``` 2. 在“test”数据库创建一个名为“student”的数据表,包含以下字段:学号(id,整型,主键),姓名(name,字符串类型,不超过20个字符),年龄(age,整型),性别(gender,字符串类型,不超过10个字符),成绩(score,整型)。 ``` USE test; CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(20), age INT, gender VARCHAR(10), score INT ); ``` 3. 插入以下数据到“student”数据表: ``` INSERT INTO student VALUES (1, 'Tom', 18, 'male', 80), (2, 'Jerry', 19, 'male', 85), (3, 'Lily', 18, 'female', 90), (4, 'Lucy', 20, 'female', 95); ``` 4. 查询“student”数据表所有学生的姓名和年龄。 ``` SELECT name, age FROM student; ``` 5. 查询“student”数据表所有学生的学号、姓名和成绩,并按成绩从高到低排序。 ``` SELECT id, name, score FROM student ORDER BY score DESC; ``` 6. 查询“student”数据表所有学生的平均年龄。 ``` SELECT AVG(age) FROM student; ``` 7. 查询“student”数据表成绩大于等于90分的学生姓名和成绩。 ``` SELECT name, score FROM student WHERE score >= 90; ``` 8. 将“student”数据表学号为3的学生的成绩更新为100分。 ``` UPDATE student SET score = 100 WHERE id = 3; ``` 9. 删除“student”数据表年龄小于19岁的学生。 ``` DELETE FROM student WHERE age < 19; ``` 以上是MySQLSQL语句练习题(一)的解答,希望能对您有所帮助。如果您有任何疑问或需要进一步的帮助,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值