自学SQL网刷题笔记

纯小白自学SQL,以下内容是在自学SQL学习时做的笔记。自我谨记:只是看明白了,可能是假象,一定要做题练习,有思考,有输出,才是学会了。

1. select 查询

  • select 查询某些属性列(specific columns)的语法

SELECT column(列的名称),another_column,… FROM mytable(表的名称)

  • select查询所有列

SELECT * FROM mytable(表名)

要添加没有的列 “内容” as 自定义列名称

SELECT id,title,'美国'as country FROM movies;

2.条件查询(constraints)

由于现实中,单单一列的数据可能有上万条,之前的SQL语句很可能运行时会崩溃。
所以我们只需要下载我们需要的数据就好了,为了更精确的查询出特定的数据,我们用下面这个SQL语法:SELECT 查询的WHERE 子句,其中,WHERE后加一个限定条件condition
条件查询语法 – WHERE
用来筛选数字类型的属性

SELECT column,another_column,… FROM mytable WHERE condition AND/OR another_condition AND/OR

注:condition描述属性列的
关键字 AND 和 OR 可以组装多个条件,

关键字

解释

  • =,!=,<,<=,>,>=一般在比较大小时使用
  • between 一般用来确定的范围
  • in 一般用来枚举

条件查询语法 – LIKE(模糊查询) 和 %(通配符)

条件查询操作符

SELECT * FROM movies where (title like 'Cars%' or title like 'Toy Story%') and year >=2000 and director = 'John Lasseter'

3.查询结果Filtering过滤和sorting排序

DISTINCT 关键字用来指定某个或某些属性唯一返回(删除重复的行)。

选取出唯一的结果
SELECT DISTINCTcolumn,another_column,…
FROM mytable
WHERE condition(s);

GOURP BY 返回唯一的行,不过会对具有相同的属性值的行统计求和。

ORDER BY col_name 让结果按一个或多个属性列做排序

结果排序(ordered results)
SELECT column,another_column,…
FROM mytable
WHERE condition(s)
ORDER BY column ASC(升序)/DESC(降序);

LIMIT 和 OFFSET 子句通常和ORDER BY 语句一起使用
LIMIT 指定只返回多少行结果
OFFSET 指定从哪一行开始返回

limited查询
SELECT column,another_column,…
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC
LIMIT num_limit OFFSET num_offset;

一般LIMIT和OFFSET在SQL的其他部分都执行完之后,再执行

  • 按导演名字母升序,如果导演名相同按年份降序,取前10部电影给我
select * from movies 

order by director asc,year desc #前面是按照director升序排列,逗号,后表示如果前面有相同的,按照year降序排列

limit 10 offset 0
  • 列出所有在Chicago西部的城市,从西到东排序(包括所有字段),类似的,如果要求的某一条件也是表中的某一值,可以再次使用select语句调出
SELECT * FROM north_american_cities
where longitude <(select longitude from North_american_cities where city like "Chicago")
 #括号中的数据是题中的要求,用select语句从表中调取

4.用JOINs进行多表联合查询

  • 数据库范式(normalization)是数据表设计的规范,在范式规范下,数据库里每个表存储的重复数据降到最小,同时在数据库范式下,表和表之间不在有很强的数据耦合性,可以独立的增长。
  • 主键(primary key) 是唯一标识一条数据的,不会重复。
  • 借助主键(其他唯一性的属性也可以),我们可以把两个表中具有相同的主键ID的数据连接起来。用INNER JOIN连接。

用INNER JOIN连接表的语法
SELECT column,another_table_column,…

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值