MySQL必知必会学习笔记(一)

一些说明:

  1. 不区分大小写,但一般关键字大写,其他小写
  2. 分成多行更容易阅读
  3. 最后一句要写;
  4. 操作前选择数据库使用语句USE crashcourse

四、SELECT语句

检索单个列

SELECT prod_name
FROM products;

检索多个列

SELECT prod_name, prod_price, vend_id
FROM products;

检索所有列

SELECT *
FROM products;

通配符(*)的优点是可以返回不知名字的列,但一般不要使用,会降低检索性能

检索有不同值的行

SELECT DISTINCT vend_id
FROM products;

SELECT DISTINCT vend_id告诉MySQL只返回不同的vend_id

限制结果

SELECT prod_name
FROM products
LIMIT 5;

返回的值不多于5行

LIMIT 5,5;

返回从第5行开始的5行,注意这里第一行为0,1为第二行

LIMIT 5 OFFSET 3;

从行3开始取5行

完全限定

SELECT products.prod_name
FROM crashcourse.products;

五、排序检索

排序数据

SELECT prod_name
FROM products
ORDER BY prod_name;

默认为正序排列,倒序排列如下

ORDER BY prod_name DESC;

按多个列排序

SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price, prod_name;

仅在prod_price相同时才按照prod_name排序

SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC, prod_name;

默认A与a相同,但数据库管理员可以改变默认排序方式

使用ORDER BYLIMIT语句可以找到最大或最小值

SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;

输出为价格最大数值

六&七、WHERE语句过滤数据

匹配检查

SELECT prod_name, prod_price
FROM products
WHERE prod_price=2.50;

ORDER BY语句要位于WHERE语句之后

SELECT prod_name, prod_price
FROM products
WHERE prod_price=2.50
ORDER BY prod_price DESC;

检测单个值

WHERE prod_name='fuses';

不匹配检查

WHERE prod_price<>10.0;

两种写法,输出价格不等于10.0的

WHERE prod_price !=10.0;

范围值检查

SELECT prod_name, prod_price
FROM products
WHERE prod_price BETWEEN 5 AND 10;

空值检查

SELECT prod_name
FROM products
WHERE prod_price IS NULL;

组合WHERE语句

AND操作符

SELECT prod_id, prod_price, prod_name
FROM products
WHERE vend_id=1003 AND prod_price<=10;

此SQL语句检索由供应商1003制造且价格小于等于10美元的所
有产品的名称和价格

OR操作符

SELECT prod_name, prod_price
FROM products
WHERE vend_id =1002 OR vend_id=1003;

计算次序问题

SELECT prod_name, prod_price
FROM products
WHERE vend_id =1002 OR vend_id=1003 AND prod_price>=10;

如果需要列出价格为10美元(含)以上且由1002或1003制
造的所有产品。上述语句是错误的,因为AND的优先级大于OR它理解为由供应商1003制造的任何价格为10美元(含)以上的产品,或者由供应商1002制造的任何产品,而不管其价格如何。 正确输入如下:

WHERE (vend_id =1002 OR vend_id=1003) AND prod_price>=10;

我们在实际操作中遇到ORANDWHERE组合语句,都要加圆括号,能消除歧义

IN操作符

SELECT prod_name, prod_price
FROM product
WHERE vend_id IN(1002,1003)
ORDER BY prod_price;

操作符IN完成与OR相同的功能

NOT操作符

SELECT prod_name, prod_price
FROM product
WHERE vend_id NOT IN(1002,1003)
ORDER BY prod_price;

操作符NOT支持对IN,BETWEENEXISTS子句取反

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值