SQL必知必会 -------- SELECT、注释

时间:2022-02-18 22:39:05

主要是看《SQL必知必会》第四版的书,而写的一些SQL笔记,红色的是方便以后查询的sql语句,工作中主要是使用mysql数据库,所以笔记也是围绕mysql而写的。

下文调试的数据表sql语句,如果要尝试的调试的话可以复制过去运行即可

 # Host: localhost  (Version: 5.5.40)
# Date: 2017-05-05 13:45:46
# Generator: MySQL-Front 5.3 (Build 4.120) /*!40101 SET NAMES utf8 */; #
# Structure for table "customers"
# DROP TABLE IF EXISTS `customers`;
CREATE TABLE `customers` (
`cust_id` char(10) NOT NULL,
`cust_name` char(50) NOT NULL,
`cust_address` char(50) DEFAULT NULL,
`cust_city` char(50) DEFAULT NULL,
`cust_state` char(5) DEFAULT NULL,
`cust_zip` char(10) DEFAULT NULL,
`cust_country` char(50) DEFAULT NULL,
`cust_contact` char(50) DEFAULT NULL,
`cust_email` char(255) DEFAULT NULL,
PRIMARY KEY (`cust_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; #
# Data for table "customers"
# /*!40000 ALTER TABLE `customers` DISABLE KEYS */;
INSERT INTO `customers` VALUES ('','Village Toys','200 Maple Lane','Detroit','MI','','USA','John Smith','sales@villagetoys.com'),('','Kids Place','333 South Lake Drive','Columbus','OH','','USA','Michelle Green',NULL),('','Fun4All','1 Sunny Place','Muncie','IN','','USA','Jim Jones','jjones@fun4all.com'),('','Fun4All','829 Riverside Drive','Phoenix','AZ','','USA','Denise L. Stephens','dstephens@fun4all.com'),('','The Toy Store','4545 53rd Street','Chicago','IL','','USA','Kim Howard',NULL);
/*!40000 ALTER TABLE `customers` ENABLE KEYS */; #
# Structure for table "orderitems"
# DROP TABLE IF EXISTS `orderitems`;
CREATE TABLE `orderitems` (
`order_num` int(11) NOT NULL,
`order_item` int(11) NOT NULL,
`prod_id` char(10) NOT NULL,
`quantity` int(11) NOT NULL,
`item_price` decimal(8,2) NOT NULL,
PRIMARY KEY (`order_num`,`order_item`),
KEY `FK_OrderItems_Products` (`prod_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; #
# Data for table "orderitems"
# /*!40000 ALTER TABLE `orderitems` DISABLE KEYS */;
INSERT INTO `orderitems` VALUES (20005,1,'BR01',100,5.49),(20005,2,'BR03',100,10.99),(20006,1,'BR01',20,5.99),(20006,2,'BR02',10,8.99),(20006,3,'BR03',10,11.99),(20007,1,'BR03',50,11.49),(20007,2,'BNBG01',100,2.99),(20007,3,'BNBG02',100,2.99),(20007,4,'BNBG03',100,2.99),(20007,5,'RGAN01',50,4.49),(20008,1,'RGAN01',5,4.99),(20008,2,'BR03',5,11.99),(20008,3,'BNBG01',10,3.49),(20008,4,'BNBG02',10,3.49),(20008,5,'BNBG03',10,3.49),(20009,1,'BNBG01',250,2.49),(20009,2,'BNBG02',250,2.49),(20009,3,'BNBG03',250,2.49);
/*!40000 ALTER TABLE `orderitems` ENABLE KEYS */; #
# Structure for table "orders"
# DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`order_num` int(11) NOT NULL,
`order_date` datetime NOT NULL,
`cust_id` char(10) NOT NULL,
PRIMARY KEY (`order_num`),
KEY `FK_Orders_Customers` (`cust_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; #
# Data for table "orders"
# /*!40000 ALTER TABLE `orders` DISABLE KEYS */;
INSERT INTO `orders` VALUES (20005,'2004-05-01 00:00:00',''),(20006,'2004-01-12 00:00:00',''),(20007,'2004-01-30 00:00:00',''),(20008,'2004-02-03 00:00:00',''),(20009,'2004-02-08 00:00:00','');
/*!40000 ALTER TABLE `orders` ENABLE KEYS */; #
# Structure for table "products"
# DROP TABLE IF EXISTS `products`;
CREATE TABLE `products` (
`prod_id` char(10) NOT NULL,
`vend_id` char(10) NOT NULL,
`prod_name` char(255) NOT NULL,
`prod_price` decimal(8,2) NOT NULL,
`prod_desc` text,
PRIMARY KEY (`prod_id`),
KEY `FK_Products_Vendors` (`vend_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; #
# Data for table "products"
# /*!40000 ALTER TABLE `products` DISABLE KEYS */;
INSERT INTO `products` VALUES ('BNBG01','DLL01','Fish bean bag toy',3.49,'Fish bean bag toy, complete with bean bag worms with which to feed it'),('BNBG02','DLL01','Bird bean bag toy',3.49,'Bird bean bag toy, eggs are not included'),('BNBG03','DLL01','Rabbit bean bag toy',3.49,'Rabbit bean bag toy, comes with bean bag carrots'),('BR01','BRS01','8 inch teddy bear',5.99,'8 inch teddy bear, comes with cap and jacket'),('BR02','BRS01','12 inch teddy bear',8.99,'12 inch teddy bear, comes with cap and jacket'),('BR03','BRS01','18 inch teddy bear',11.99,'18 inch teddy bear, comes with cap and jacket'),('RGAN01','DLL01','Raggedy Ann',4.99,'18 inch Raggedy Ann doll'),('RYL01','FNG01','King doll',9.49,'12 inch king doll with royal garments and crown'),('RYL02','FNG01','Queen doll',9.49,'12 inch queen doll with royal garments and crown');
/*!40000 ALTER TABLE `products` ENABLE KEYS */; #
# Structure for table "vendors"
# DROP TABLE IF EXISTS `vendors`;
CREATE TABLE `vendors` (
`vend_id` char(10) NOT NULL,
`vend_name` char(50) NOT NULL,
`vend_address` char(50) DEFAULT NULL,
`vend_city` char(50) DEFAULT NULL,
`vend_state` char(5) DEFAULT NULL,
`vend_zip` char(10) DEFAULT NULL,
`vend_country` char(50) DEFAULT NULL,
PRIMARY KEY (`vend_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; #
# Data for table "vendors"
# /*!40000 ALTER TABLE `vendors` DISABLE KEYS */;
INSERT INTO `vendors` VALUES ('BRE02','Bear Emporium','500 Park Street','Anytown','OH','','USA'),('BRS01','Bears R Us','123 Main Street','Bear Town','MI','','USA'),('DLL01','Doll House Inc.','555 High Street','Dollsville','CA','','USA'),('FNG01','Fun and Games','42 Galaxy Road','London',NULL,'N16 6PS','England'),('FRB01','Furball Inc.','1000 5th Avenue','New York','NY','','USA'),('JTS01','Jouets et ours','1 Rue Amusement','Paris',NULL,'','France');
/*!40000 ALTER TABLE `vendors` ENABLE KEYS */;

MySQL语句

一、select语句

1.检索单个列SELECT prod_name FROM Products

提示:未排序数据
如果你自己试验这个查询,可能会发现显示输出的数据顺序与这里的不同。出现这种情况很正常。如果没有明确排序查询结果(下一课介绍),则返回的数据没有特定的顺序。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。如上的一条简单SELECT语句将返回表中的所有行。数据没有过滤(过滤将得出结果集的一个子集),也没有排序。以后几课将讨论这些内容。
提示:结束SQL语句
多条SQL语句必须以分号(;)分隔。多数DBMS不需要在单条SQL语句后加分号,但也有DBMS可能必须在单条SQL语句后加上分号。当然,如果愿意可以总是加上分号。事实上,即使不一定需要,加上分号也肯定没有坏处。
提示:SQL语句和大小写
请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对SQL关键字使用大写,而对列名和表名使用小写,这样做使代码更易于阅读和调试。不过,一定要认识到虽然SQL是不区分大小写的,但是表名、列名和值可能有所不同(这有赖于具体的DBMS及其如何配置)。
提示:使用空格
在处理SQL语句时,其中所有空格都被忽略。SQL语句可以写成长长的一行,也可以分写在多行。下面这三种写法的作用是一样的。

SQL必知必会 -------- SELECT、注释

2.检索多个列SELECT prod_id,prod_name,prod_price FROM Products

提示:当心逗号
在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。如果在最后一个列名后加了逗号,将出现错误。

3.检索所有列SELECT * FROM Products

警告:使用通配符
一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符。虽然使用通配符能让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
提示:检索未知列
使用通配符有一个大优点。由于不明确指定列名(因为星号检索每一列),所以能检索出名字未知的列。

4.检索不同的值SELECT DISTINCT vend_id FROM Products

如果有重复的的记录怎么办?办法就是使用DISTINCT关键字,顾名思义,它指示数据库只返回不同的值。

警告:不能部分使用DISTINCT
DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定SELECT DISTINCT vend_id, prod_price,这两列都不同才算是不重复的记录。

5.限制结果:不同的数据库有比较大的不同之处

我主要看mysl:SELECT vend_id FROM Products LIMIT 3

MySQL、MariaDB、PostgreSQL或者SQLite,需要使用LIMIT 子句。

警告:第0
第一个被检索的行是第0行,而不是第1行。因此,LIMIT 1 OFFSET 1会检索第2行,而不是第1行。
提示:MySQLMariaDB快捷键
MySQL和MariaDB支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4(从第四个开始,取后面的四条记录)。
说明:并非所有的SQL实现都一样
我加入这一节只有一个原因,就是要说明,SQL虽然通常都有相当一致的实现,但你不能想当然地认为它总是这样。非常基本的语句往往是容易移植的,但较复杂的语句就不同了。当你针对某个问题寻找SQL解决方案时,一定要记住这一点。

二、使用注释

在mysql:--或者是/**/ 这两者都是可以的

SQL必知必会 -------- SELECT、注释

SQL必知必会 -------- SELECT、注释

作者:今孝
出处:http://www.cnblogs.com/jinxiao-pu/p/6811967.html 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

觉得好就点个推荐把!

SQL必知必会 -------- SELECT、注释的更多相关文章

  1. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...

  2. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  3. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  4. SQL 必知必会 总结(一)

    SQL必知必会 总结(一) 第 1 课 了解SQL 1.数据库(database): 保存有组织的数据容器(通常是一个文件或一组文件). 2.数据库管理系统(DBMS): 数据库软件,数据库是通过 D ...

  5. 【SQL必知必会笔记&lpar;2&rpar;】检索数据、排序检索数据

    上个笔记中介绍了一些关于数据库.SQL的基础知识,并且创建我们后续练习所需的数据库.表以及表之间的关系,从本文开始进入我们的正题:SQL语句的练习. 文章目录 1.检索数据(SELECT语句) 1.1 ...

  6. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  7. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  8. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  9. 《SQL必知必会》学习笔记&lpar;一&rpar;

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

随机推荐

  1. 递归merge排序

    package sort; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scan ...

  2. Linux 查看端口占用并杀掉

    1. 查看端口号占用情况: netstat -apn|grep 80 tcp        0      0 10.65.42.27:80              172.22.142.20:627 ...

  3. C&plus;&plus;异常

    相对于C语言,C++增加了异常机制.考虑,异常解决了什么问题,又带来了什么问题. 异常解决了什么问题: 1.问题检测与问题处理相分离. 2.C语言只是返回一个整数,而异常带有上下文信息,方便找出问题. ...

  4. Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService&period;invokeAll(转)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/27250059 一般情况下,我们使用Runnable作为基本的任务表示形式,但是R ...

  5. Oracle12c功能增强新特性之维护&amp&semi;amp&semi;升级&amp&semi;amp&semi;恢复&amp&semi;amp&semi;数据泵等

    1.   内容提要 1)   表分区维护的增强. 2)   数据库升级改善. 3)   跨网络还原/恢复数据文件. 4)   数据泵的增强. 5)   实时ADDM. 6)   并发统计信息收集. 2 ...

  6. TCP的三次握手过程与四次挥手

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确 ...

  7. ThreadLocal&comma; HandlerThread&comma; IntentService

    1. ThreadLocal用法详解和原理https://www.cnblogs.com/coshaho/p/5127135.html // ThreadLocal methods: public T ...

  8. WPF中任务栏只显示主窗口

    我们在用WPF开发的时候,常常会遇到在主窗口打开的情况下,去显示子窗口,而此时任务栏同时显示主窗口与子窗口.这样看起来很不美观.所以在弹出子窗口之前,设置它的几个相应属性,便不会出现这种问题了. // ...

  9. poj3616 Milking Time(状态转移方程,类似LIS)

    https://vjudge.net/problem/POJ-3616 猛刷简单dp的第一天第二题. 这道题乍一看跟背包很像,不同的在于它是一个区间,背包是定点,试了很久想往背包上套,都没成功. 这题 ...

  10. win&plus;R快捷启动程序

    win10: Win+R cmd:命令行程序 notepad:记事本 winword:word文档 calc:记事本 mspaint:画图 wordpad:写字板