SQL基础(五)SQL语句大全

不过有些人不想看书,就想当个伸手党,《SQL基础教程》的所有重点整理到这儿了

按我的经验来讲,这篇绝对值得点赞喜欢收藏三连。面试、工作用都给力

不会的时候control + F,搜索关键词查询,比百度管事

第一章 表的建立
先建立一个数据库 再在数据库中建立不同的表

Create database shop;Create table product not null,Product_name varchar not nll,Primary key);

  1. 数据类型

Integer-整数型数据
Char()-字符型数据 指定长度 长度不够制定值时通过半角符号补全
Varchar()-字符型数据 长度未达最大值时不补全
Date-时间格式数据

2.表的删除

Drop table product;

2.1添加列

Alter table product add column product_name varchar;

2.2删除列

Alter table product drop column product_name;

3.向表中插入数据

Insert into product values;Insert into product values;

练习题答案

Create table address_book not null,Address varchar not null,Tel_no char,Mail_address char,Primary key);Alter table address book add postal_code char not null;

第二章 查询基础
1.使用select语句来筛选出某个表中想要的列

Select <列名>,<列名> from <表名>

2.查询出所有的列

Select * from<表名>

3.为列设置别名

Select <列名> as <别名>,<列名>as<别名> from <表名>

4.删除重复行

SELECT DISTINCT product_type, sale_pricefrom product; --把product_type里相同的sale_price都删除了

5.用where来指定查询数据的条件

SELECT product_name, product_type FROM ProductWHERE product_type = ‘衣服’;

6.注释的书写方式

–只有一行可跨越多行

7.将所有的售价都提升一倍

Select product_name,sale_price*2 as sale_pricex2from product;

8.选出售价为500的产品

SELECT product_name, product_type FROM ProductWHERE sale_price = 500;

9.逻辑运算符not and or

And-取交集or-取并集 通过()来嵌套逻辑规则

SELECT product_name, product_type, regist_date FROM ProductWHERE product_type = '办公用品’AND ;

练习题答案

Select product_name,regist_date from productWHERE regist_date>‘2009-09-20’;Select product_name,sale_price,purchase_price from productWhere sale_price-purchase_price>500;Select product_name,product_type,sale_price0.9 as profile from productWhere sale_price0.9-purchase_price>100;

第二章 聚合与排序
聚合函数:对数据进行某种操作或计算时使用的函数

Count(计算表中的特定记录的行数)-sum-avg-max-min

1.计算null之外的数据的行数

Select countFrom product;Select sum as total_sale_price,sum as total_purchase_priceFrom product;

2.使用聚合函数删除重复值后计算

计算去除重复数据行后的数据行数

Select countFrom product;Select sum From product;

3.对表进行分组——将表的行按不同类型归类

按照商品种类统计数据行数

Select product_type,countFrom productGroup by product_type;

4.同时使用where和group by子句

Select purchase_price,countFrom productWhere product_type=’衣服’Group by purchase_price;–执行顺序-from-where-group by-select

5.为聚合指定条件

注意⚠️where只能指定记录(行)的条件,不能用来指定组的条件(对某些行求和 )

从按照商品种类进行分组后的结果中,取出“包含的数据行数为2 行”的组

Select product_type,countFrom productGroup by product_typeHaving count=2;–先把数据分组 再选出包含两条数据的呢个组SELECT product_type,AVG FROM ProductGROUP BY product_typeHAVING AVG >= 2500;–先把数据group以后 从中选出均价大于2500的group

注意⚠️having函数只能包含-常数 聚合函数 聚合键

6.对查询结果进行排序

子句书写顺序-select-from-where-group by-having-order by

Desc降序排列asc升序排列
指定多个排序键-先按第一个要求排 若其中有重复项再按第二个规则排

SELECT product_id,product_name,sale_price,purchase_price FROM ProductORDER BY sale_price ,product_id;

Order by子句中可以使用聚合函数
SELECT product_type,COUNT FROM ProductGROUP BY product_type ORDER BY COUNT;

–显示product_type 和所有行数两列,根据product_type分组 并按组内数量排序

练习题答案

Select product_type,sum,sum from productGroup by product_typeHaving sum>1.5*sumORDER BY regist_date desc;

第四章 数据更新

1.向表中插入一行数据

INSERT INTO ProductIns VALUES ;

插入默认值 没有默认值且无数值时为null

CREATE TABLE ProductIns NOT NULL,sale_price INTEGER DEFAULT 0, – 销售单价的默认值设定为0;PRIMARY KEY );

2.表的删除

DROP TABLE 语句可以将表完全删除

DELETE 语句会留下表,而删除表中的全部数据- DELETE FROM Product

指定删除 删除部分数据

DELETE FROM ProductWHERE sale_price >= 4000;

3.改变表中的数据

将登记日期全部更新为“2009-10-10”

UPDATE Product

SET regist_date = ‘2009-10-10’

将商品种类为厨房用具的记录的销售单价更新为原来的10 倍

UPDATE ProductSET sale_price = sale_price * 10WHERE product_type = ‘厨房用具’;

第五章 复杂查询 视图 子查询 关联子查询
–视图和表的区别:表将所有数据保存在计算机存储系统中-视图仅保存本次操作时使用的SQL语句 并不保存数据 而下次再调取的时候只需消耗一点cpu执行语句就能生成一张新的临时表

–视图的优点:极大的节省计算机容量 表中的数据更新以后 视图也会自动更新

1.创建视图

Create view productsumAsSelect product_type,countFrom productGroup by product_type;

使用视图

SELECT * from productsum;

2.视图的使用禁忌

视图不能使用order by语句

视图不能插入或更新数据-只能在表中修改数据

3.删除视图

DROP VIEW ProductSum;

4.子查询-一张一次性视图

将用来定义视图的select语句直接作用于from子句中

–从哪里查询?-从一个临时创建的视图里

Select product_type,cnt_productFrom as cnt_productFrom productGroup by product_type) as productsum;

增加子查询的嵌套层数

Select product_type,cnt_productFrom as cnt_product From product Group by product_type ) as productsum Where cnt_product=4)as productsum2;

–创建两个临时视图进行操作

5.标量子查询

–必须且只能返回1行1列的结果 返回表中某一行的某一列的值

在where中使用标量子查询-该子查询结果必须是单一的

查出销售单价高于平均销售单价的商品

–计算出每组的平均值 找出每组内售价高于平均值的商品

Select product_id,product_name,sale_priceFrom productWhere sale_price> From product);

在having子句中使用标量子查询

选出按照商品种类计算出的平均销售单价高于全部商品平均销售单价的商品种类

Select product_type,avgFrom productGroup by product_typeHaving avg>from product);

–执行顺序:将产品归类 归类好了后将产品类型和对应的平均售价输出成行-寻找:归类后的平均售价大于归类前平均售价的商品所有信息 并根据上层约束条件输出其种类信息及平均售价信息

文章转自:SQL基础(五)SQL语句大全-广富强博客

作者:广富强博客,转载请注明原文链接:https://www.guangfuqiang.com/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值