基本的SQL语句整理

写给读者

最近在复习回顾SQL语句,遗忘真的是学习最大的天敌,所以特意整理一些基本的SQL语句,以备使用时参考。所以本文比较简略,适合稍稍有一点SQL基础的人阅读。

推荐两个学习资源给大家,也是我整理这个博客的参考资料,

  • 网站:MySQL Tutorial,这个网站对于刚刚入门SQL的初学者非常友好,从MySQL的安装到基础教程都非常详细透彻,而且配有截图,只是它是全英文的。
  • 书籍:《MySQL必知必会》,英文稍稍比较弱的话,可以看这本书,与上面的网站内容比较相似,也有详细的例子,适合刚刚入门的人。

本文的所有SQL语句都是基于MySQL Tutorial网站给的一个数据库样例classicmodels,这个样例的关系图如下,

基本的SQL语句整理_第1张图片


操作数据库

show databases; -- 显示所有数据库
use classicmodels; -- 使用classicmodels数据库
show tables; -- 显示当前数据库的所有表
describe customers; -- 显示customers表的详细信息

 检索数据

select * from customers; -- 检索customers表中的所有列
select customerName,phone,city from customers;
select distinct city from customers; -- 检索customers表的city列中所有不同的数据
select customerName from customers limit 5; -- 检索customers表的customerName列的前5条记录
select customerName from customers limit 5 offset 3; -- 检索customers表的customerName列的,从第3条记录往后的5条记录

排序检索数据

select customerName from customers order by customerName; -- 按照customerName列排序
select customerName,country from customers order by customerName,country; -- 按照customerName列和country列排序
select productName,buyPrice from products order by buyPrice desc; -- desc关键字表示降序,默认升序
select productName,buyPrice from products order by buyPrice desc,productName;
select productName,buyPrice from products order by buyPrice desc limit 1;

过滤数据

select productName,buyPrice from products where buyPrice>50; -- 过滤规则为buyPrice大于50
select productName,buyPrice from products where buyPrice<>50; -- 过滤规则为buyPrice不等于50
select productName,buyPrice from products where buyPrice between 50 and 55; -- 过滤规则为buyPrice在50和55之间
select productName,buyPrice from products where buyPrice>50 order by buyPrice; -- 过滤并排序
select productName,buyPrice from products where productName='The Titanic';
select productName,buyPrice from products where buyPrice is null;
select productCode,buyPrice from products where buyPrice>50 and productCode='S10_2016'; -- 使用and并列两条过滤规则,即两个条件都满足的记录才会被返回
select productCode,buyPrice from products where buyPrice>50 or productCode='S10_2016'; -- 使用or并列两条过滤规则
select productCode,buyPrice from products where buyPrice>50 and (productCode='S10_2016' or productCode='S10_4698'); -- and的优先级高于or,所以要改变优先级需要加小括号
select productCode,buyPrice from products where productCode in ('S10_2016','S10_4698'); -- prodectCode的值在('S10_2016','S10_4698')中的记录才会被返回
select productCode,buyPrice from products where productCode not in ('S10_2016','S10_4698'); -- 与上一条相反
select productName from products where productName like '%Rom%'; -- 通配符%匹配任意个数个任意字符
select productName from products where productName like '%Rom__%'; -- 通配符_匹配单个任意字符

连结

未完,待续(●'◡'●)

你可能感兴趣的:(SQL)