sql必知必会刷题总结
dml
show databases;
create database user;
show tables;
增删查改
update user set state = "off" where id =13;
insert into user(name,password,state) values ('xiaoliu','123456','off');
delete from user where id =13;
从 Customers 表中检索所有的 ID
检索顾客名称并且排序
【问题】从 Customers 中检索所有的顾客名称(cust_name),并按从 Z 到 A 的顺序显示结果。
【示例结果】返回客户姓名cust_name
select cust_name from Customers order by cust_name desc;
排序使用order by 列命 desc;#升序使用asc
对顾客ID和日期排序
【问题】编写 SQL 语句,从 Orders 表中检索顾客 ID(cust_id)和订单号(order_num),并先按顾客 ID 对结果进行排序,再按订单日期倒序排列。
select cust_id,order_num from Orders order by cust_id,order_date desc;
语句执行顺序从from开始,所以是先对原始表格按时间排序,生成虚拟表,最后再select
检索并列出已订购产品的清单
【问题】编写SQL 语句,查找所有订购了数量至少100 个的 BR01、BR02 或BR03 的订单。你需要返回 OrderItems 表的订单号(order_num)、产品 ID(prod_id)和数量(quantity),并按产品 ID 和数量进行过滤。
【示例答案】返回商品id prod_id、订单order_num、数量quantity。
select order_num,prod_id,quantity
from OrderItems
where prod_id in ('BR01','BR02','BR03') and quantity>=100;
where需要判断一个列表时,通过in()实现
检索产品名称和描述(一)
【问题】编写 SQL 语句,从 Products 表中检索产品名称(prod_name)和描述(prod_desc),仅返回描述中包含 toy 一词的产品名称
select prod_name,prod_desc
from Products
where prod_desc like '%toy%';
模糊查找,前后加%百分号
不包含,可以用not like
有先后顺序可以用三个百分号'%toy%carrots%'
顾客登录名
问题】编写 SQL 语句,返回顾客 ID(cust_id)、顾客名称(cust_name)和登录名(user_login),其中登录名全部为大写字母,并由顾客联系人的前两个字符(cust_contact)和其所在城市的前三个字符(cust_city)组成。提示:需要使用函数、拼接和别名。
【示例结果】
返回顾客id cust_id,顾客名称cust_name,顾客登录名 user_login
select
cust_id,
cust_name,
upper(concat(substring(cust_contact,1,2),substring(cust_city,1,3))) user_login
from Customers;
函数直接用在select后面
大写可以用upper()函数,拼接可以用concat()函数