ITPub博客

首页 > 数据库 > > SQL学习笔记

SQL学习笔记

作者:浪花小雨滴 时间:2020-05-14 15:15:59 0 删除 编辑

本文基于Mosh Hamedani 的SQL教学视频,传送门av71348135,视频中用到的sql执行文件在这里cfk3 。那么,我们就开始吧。(持续更新中)

1.The SELECT Statement

目标:查找sql_store数据库的顾客表,要求按顾客名的字典序输出顾客编号为1的顾客记录

USE sql_store;
SELECT *
FROM customers
WHERE customer_id=1
ORDER BY first_name

注意:代码第1行末尾的分号不能丢,否则无法执行,还要留意SELECT,WHERE,ORDER BY的先后顺序。

2.The SELECT Clause

目标:查找顾客表,要求输出顾客的姓、名、积分、折现系数,其中折现系数=(积分+10)*100

SELECT
    first_name,
    last_name,
    points,
    (points+10)*100 AS 'discount factor' 
    --DISTINCT state
FROM customers

注意:查找的各列之间用逗号隔开,新建的列要及时用AS命名,英文字母串要加单引号。代码第6行以--开头,这是SQL中注释的标准写法。取消注释后,第6行代码的意思是输出顾客表中不同州的名称。

3.The WHERE Clause

目标:查找订单表,要求输出2019年的所有订单记录

SELECT*
FROM orders
WHERE order_date>='2019-01-01'

注意:日期的格式要规范,即按照year-month-date的格式书写,且加单引号。常用的比较符号有=, >, <, >=, <=, != 和<>,最后两个符号表示的都是不等于。

4.The AND, OR, and NOT Operators

目标:查找顾客表,要求输出出生在1990年1月1日后,或者积分大于1000的顾客记录

SELECT*
FROM customers
WHERE birth_date>'1990-01-01' OR points>1000
--WHERE NOT(birth_date<='1990-01-01'AND points<=1000)

注意:为了保证逻辑正确,要适当添加括号,第4行在逻辑上与第3行是等同的。

5.The IN Operator

目标:查找顾客表,要求输出位于弗吉尼亚州、佛罗里达州或者佐治亚州的顾客记录

SELECT*
FROM customers
WHERE state IN('VA','FL','GA')

6.The BETWEEN Operator

目标:查找顾客表,要求输出在1990年1月1日和2000年1月1日之间出生的顾客记录(包含端点)

SELECT*
FROM customers
WHERE birth_date BETWEEN '1990-01-01' AND '2000-01-01'
--WHERE birth_date >='1990-01-01' AND birth_date<='2000-01-01'

注意:在MYSQL的语法中,BETWEEN AND语句是包含端点的,不包含端点的情形可按照第4行注释来改写。

7.The LIKE Operator

目标:查找顾客表,要求输出地址包含TRAIL或AVENUE的顾客记录

SELECT*
FROM customers
WHERE address LIKE '%TRAIL%' OR
       address LIKE '%AVENUE%'
--% any number of characters
--_single character

注意:占位符%可表示任意长度的字母,而_表示一个字母。

8.The REGEXP Operator

目标:查找顾客表,要求输出 1.姓ELKA或AMBUR的顾客 2.名以EY或ON结尾的顾客 3.名以MY开头并且包含SE的顾客 4.名中包含B,且B之后是R或U(多行输出写在注释里)

SELECT*
FROM customers
WHERE first_name REGEXP 'elka|ambur'
--WHERE last_name REGEXP 'ey$|on$'
--WHERE last_name REGEXP '^my|se'
--WHERE last_name REGEXP 'b[ru]'
--^  beginning
--$  end
--|  logical or
--[abcd]
--[a-h]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3118635/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39921