sql modify 会丢失数据么_SQL数据库语言(可能会持续更新)

自己的一点笔记

From 给出将用到的条件

Where 过滤满足条件的行

Group by 将具有相同属性值的行分成组

Having 过滤满足条件的组

Order by 指定查询结果的顺序

假如要寻找所有的列,用 * 表示所有列

可用distinct 消除重复

行选择(where子句)

比较(comparison)

范围(range)

成员关系(set membership)

模式匹配(pattern match)

空(null)


= 等于 <> 不等于 != 不等于(方言)

< 小于 <=小于等于

> 大于 >=大于等于

顺序从左到右

首先记括号内的子表达式的值

not优先于and和or

and优先于or


假如要查找或 就用or

范围用 between and

不能表示的话直接用and

模式比配作为查找条件(like/not like)

Address like ‘H%’意味着第一个字符必须是H,后面的字符不限制

Address like ‘H____’意味着字符串正好四个字符,第一个是H

Address like ‘ %e’ 意味着一个字符序列,长度最小是1,最后一个字符是e

Address like ‘%Glasgow%’意味着一个包含字符串Glasgow的任意长度序列

Address like ‘H%’意味着字符串的第一个字符不能为H

如果要筛选空白的内容 用null

Select clientNo, viewDate

Form viewing

Where propertyNo = ‘PG4’ and comment is null;

反之就用 is not null

排序用order by 降序用DESC 升序用ASC

当多个原素进行排序时,需要考虑次序,排在前方的先进行排序,例如:order by type, rent DESC;

五个聚集函数

Count 返回制定列中数据的个数

Sum 返回制定列中数据的总和

Avg 返回制定列中数据的平均数

Min 返回制定列中数据的最小值

Max 返回制定列中数据的最大值

这些函数只对表中的单个列进行操作

group by子句

找出工作在每个分公司的员工人数和他们工资的总和

Select branchNo, count(staffNo) as myCount, sum(salary) as mySum

From Staff

Group by branchNo

Order by branchNo;

1.sql根据分公司编号将员工分不同的组,每一组中,所有的员工都有相同的分公司编号

2.每一组中sql计算员工的人数,并计算出salary列的汇总以便得到员工薪水的总和,sql在查询结果中为每一组生成一个单独的汇总行

3.最后查询结果按分公司的编号branchNo的升序排列

Having 可用于进行下一步的约束

Select branchNo, count(staffNo) as myCount, sum(salary) as mySum

From Staff

Group by branchNo

Having count(staffNo) > 1

Order by branchNo;

相当于加了约束条件,只找出人数超过一个人的分组

子查询

列出位于‘163 Main St’的分公司中工作的员工的情况

Select staffNo, fName, IName, position

From Staff

Where brachNo = (Select branchNo

From Branch

Where street = ‘163 Main St’);

子查询就是嵌套查询

Any和all

any和all 都适用于单个列子查询 all需要所有的条件全部满足,any只需要数个条件的某个条件满足就可以了。

多表查询

用From子句链接多个表进行查询。From子句链接多个表名,如何用,连接。通常还要用where子句来表明连接列

找前五项 limit 5

找5 - 10 limit 5 offset 5;

Sql标准提供了下列可供选择的方式来制定连接:

FROM Client c JOIN Viewing v ON c.clientNo = v.clientNo

FROM Client JOIN Viewing USING clientNo

FROM Client NATURAL JOIN Viewing

菜鸟编程JOIN 大全,点击URL查看 里面有图解。

内连接就是把两个表相同的部分联系一起

左连接就是把左边的表作为基准,然后对应右边的表,右边没有对应的就是用null填充

右连接就是把左连接反过来

交叉连接就是笛卡尔乘积方法

一张图看懂 SQL 的各种 JOIN 用法​www.runoob.com
6ac57f4cb952826b5f6ccb767a44f1b5.png

Insert 可以帮助插入行

insert into 假如要插入一行玩具总动员4 例如:INSERT INTO movies VALUES (4, "Toy Story 4", "El Directore", 2015, 90);

Update 可以帮助更新表格的内容

假如Both the title and director for Toy Story 8 is incorrect! The title should be "Toy Story 3" and it was directed by Lee Unkrich 并且ID = 11

可以用update先找到表格的名字,然后再选择要更新的内容,最后用where加上位置确定条件

例如:

Update movies

Set title = ’Toy Story 3’, director = ‘Lee Unkrich’

Where id = 11;

Delete 可以帮助删除表格

Delete from 表格名

where 删除条件

例如:

Delete from movies

Where year <= 2005;


Create table可以创建表格 例如:

CREATE TABLE movies ( id INTEGER PRIMARY KEY, title TEXT, director TEXT, yearINTEGER, length_minutes INTEGER);

对于列的编辑 参见菜鸟编程:

SQL ALTER TABLE 语句​www.runoob.com

直接删除表格 DROP TABLE 表格名

超关键字:能唯一标示关系中的每一个元组。

候选关键字:把超关键字减化,简化到再减化就不可以作为超关键字了,就是候选关键字。

主关键字:被选用与唯一识别关系中各元祖的候选关键字。

比如学号 老师 科目 成绩

学号和科目加上任何字段都是超关键字,学号和科目就是两个候选关键字,学号加上科目就是主关键字

外关键字:假如A表的主关键字被包含到了B表中,那么A表的主关键字就是B表的外关键字

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值