SQL基本命令

--创建数据库

CREATE DATABASE shop;--创建数据库命名为“shop”

--创建表格

CREATE TABLE Product;--创建表格命名为“product”

(id CHAR(4) NOT NULL,

name VARCHAR(100) NOT NULL,

type VARCHAR(32) NOT NULL,

sale_price INTEGER,

purchase_price INTEGER,

date DATE,

PRIMARY KEY (id)); --主键设置为id

--导入数据

BEGIN TRANSACTION;
INSERT INTO Product VALUES ('0001', 'T恤衫', '衣服', 
1000, 500, '2009-09-20');
INSERT INTO Product VALUES ('0002', '打孔器', '办公用品', 
500, 320, '2009-09-11');
INSERT INTO Product VALUES ('0003', '运动T恤', '衣服', 
4000, 2800, NULL);
INSERT INTO Product VALUES ('0004', '菜刀', '厨房用具', 
3000, 2800, '2009-09-20');
INSERT INTO Product VALUES ('0005', '高压锅', '厨房用具', 
6800, 5000, '2009-01-15');
INSERT INTO Product VALUES ('0006', '叉子', '厨房用具', 
500, NULL, '2009-09-20');
INSERT INTO Product VALUES ('0007', '擦菜板', '厨房用具', 
880, 790, '2008-04-28');
INSERT INTO Product VALUES ('0008', '圆珠笔', '办公用品', 
100, NULL,'2009-11-11');
COMMIT;

SELECT id, name, purchase_price--查询出Product表中的列
 FROM Product;
SELECT *   --//图1//
 FROM Product;--输出Product表中全部的列
SELECT id AS "商品编号",--为列设定别名
 name AS "商品名称",
 purchase_price AS "进货单价"
 FROM Product;
SELECT '商品' AS string, 38 AS number, '2009-02-24' AS date,--查询常数
 id, name
 FROM Product;    --//图2//
 SELECT DISTINCT type--使用DISTINCT删除product_type列中重复的数据
 FROM Product;
 SELECT DISTINCT purchase_price--对含有NULL数据的列使用DISTINCT关键字
 FROM Product;
 SELECT DISTINCT type, date--在多列之前使用DISTINCT,DISTINCT 关键字只能用在第一个列名之前
 FROM Product;

图1:

 图2:

 SELECT name, type--用来选取product_type列为'衣服'的记录的SELECT语句,用来选取product_type列为'衣服'的记录的SELECT语句,随意改变子句的书写顺序会造成错误
 FROM Product
 WHERE type = '衣服';
 SELECT name--不选取出作为查询条件的列
 FROM Product
 WHERE type = '衣服';
SELECT name, sale_price,--使用运算表达式
 sale_price * 2 AS "sale_price_x2"
 FROM Product;  --//图3//

 图3:

 SELECT name, type, sale_price--查询条件中添加NOT运算符
 FROM Product
 WHERE NOT sale_price >= 1000;
 SELECT name, purchase_price--在WHERE子句的查询条件中使用AND运算符
 FROM Product
 WHERE type = '厨房用具'
 AND sale_price >= 3000;
 SELECT name, purchase_price--在WHERE子句的查询条件中使用OR运算符
 FROM Product
 WHERE type = '厨房用具'
 OR sale_price >= 3000;
 SELECT name, type, date, purchase_price, sale_price
 FROM Product
 WHERE name = 'T恤衫'
 OR date < '2009-09-20'
 SELECT name, type, date--将查询条件原封不动地写入条件表达式
 FROM Product
 WHERE type = '办公用品'
 AND date = '2009-09-11'
 OR date = '2009-09-20';
 SELECT name, type, date--通过使用括号让OR运算符先于AND运算符执行(因为系统默认and语法优先于or)
 FROM Product
 WHERE type = '办公用品'
 AND ( date = '2009-09-11'
 OR date = '2009-09-20');  --//图4//

 图4:

 SELECT name, type--选取出sale_price列为500的记录
 FROM Product
 WHERE sale_price = 500;
 SELECT name, type--选取出sale_price列的值不是500的记录
 FROM Product
 WHERE sale_price <> 500;
 SELECT name, type, date--选取出登记日期在2009年9月27日之前的记录
 FROM Product
 WHERE date < '2009-09-27';
 SELECT name, purchase_price--选取NULL的记录,注意用is选取,否则会报错
 FROM Product
 WHERE purchase_price IS NULL;
 SELECT name, purchase_price--选取不为NULL的记录
 FROM Product
 WHERE purchase_price IS NOT NULL;

 //*编写一条 SQL 语句,从 Product(商品)表中选取出

 “登记日期(regist_date)在 2009 年 4 月 28 日之后”的商品。

 查询结果要包含 product_name 和 regist_date 两列。*//

  SELECT name,date
 FROM Product
 WHERE date > '2009-04-28'

 //*代码清单 2-22(2-2 节)中的 SELECT 语句能够从 Product 表中取出“销

售单价(sale_price)比进货单价(purchase_price)高出 500

日元以上”的商品。请写出两条可以得到相同结果的 SELECT 语句。执行

结果如下所示。*//

SELECT * 
 FROM Product
 WHERE sale_price - purchase_price > 500

 //*请写出一条 SELECT 语句,从 Product 表中选取出满足“销售单价打九

折之后利润高于 100 日元的办公用品和厨房用具”条件的记录。查询结果

要包括 product_name 列、product_type 列以及销售单价打九折之

后的利润(别名设定为 profit)。*//

 SELECT name, type,
 sale_price * 0.9 - purchase_price AS profit
 FROM Product
 WHERE sale_price * 0.9 - purchase_price > 100
 AND (type = '办公用品'
 OR type = '厨房用具');

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九九jiujiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值