随着我们数据库越来越复杂 我们要掌握的姿势也要也来越多....

首先建立个表

create table shop
(
code int primary key identity (1,1),
name varchar(50) not null,
price int not null,
brand varchar(50) not null,
BB int not null,
[from] varchar (50) not null
)
insert into shop values('冰红茶',3,'康师傅','12','福建');
insert into shop values('冰红茶',4,'娃哈哈','12','北京');
insert into shop values('冰绿茶',3,'康师傅','12','福建');
insert into shop values('冰绿茶',3,'统一','24','山东');
insert into shop values('方便面',2,'康师傅','24','江苏');
insert into shop values('方便面',3,'福满多','12','上海');
insert into shop values('方便面',2,'康师傅','24','福建');

drop table shop
--注:SQL不像VS一样,SQL要选中内容才可以让计算机接收

下面信息,分割线划分的是不同的内容,所以对于内表有冲突,执行完一个分割线内的内容请执行

--drop table shop,然后选中表重新执行,再去完成查询。

--我们建立了一个商品的数据库shop,BB=best before,from=产地,因为from牵扯到系统关键词我们用[]区分。
-------------------------------------我是华丽的分割线--------------------------------------------
--我们要查看shop表的前3个:
select top 3 * from shop;
--查看前两个方便面信息:
select top 2 * from shop where name='方便面';
-------------------------------------我是华丽的分割线--------------------------------------------
--这里有好多价钱是重复的,我们想看分别都是有多少钱的货
select distinct price from shop;
--查看保质期都有多久的
select distinct bb from shop;
-------------------------------------我是华丽的分割线----------------------------------------------
--有些时候我们需要把数据排列,请用 order by 或 order by desc
--请按价格由低到高排列
select * from shop order by price asc;   --asc是默认的 可以不写.
--如果价格想由高到低排列
select * from shop order by price desc   ---desc不可以省略.
--但是我们发现虽然按照顺序排列了,但是价格相同的有好多,辣么我们想让3块钱的商品按照保质期长短排列
select *from shop order by price,BB; --这里面也是有顺序的,先排列 price然后再BB,BB按照升序在不影
响price的情况下排列。
-------------------------------------我是华丽的分割线--------------------------------------------
--分组 group by;分组在以后的时候会用的,目前先知道有这么个东西,目前的作用同distinct.
--例如用age分组
select price from shop group by price;
--这里要讲的就是我们用了什么组了,前面和后面必须一致,语意,在shop表里分组price然后显示price,如果
我们说select price from shop group by BB,那么我们分组了BB然后查询price,毫无意义。
-------------------------------------我是华丽的分割线--------------------------------------------
----运算符   
 --算数运算符: + - * / %
 --比较运算符: > < >= <= !=  <> !< !>
 --逻辑运算符: || &&
 --修饰符:     all any some in not
--这里讲一下 in, in 表示在什么范围之内
--查询价格是 2和4的商品
select * from shop where price in (2,4); --这里相当于 price=2 or price=4;
--子查询
--查询康师傅品牌不是福满多品牌价钱的东东;
select * from shop where price not in(select price from shop where brand='福满多');
--理解,这句话有些绕,意思是我们要查询出福满多商品的价格,然后在比对康师傅商品的东西,如果康师傅
--的商品与福满多商品一致那么不输出,其余的输出。 首先我们先得出福满多商品的价格
--(select price from shop where brand='福满多')括号里实际上是另外的计算,结果就是3。这样的好处是
--如果商品成千上万我们不可能一一输入,所以计算机需要代码来代替我们输入,这是一个很省力的方法,关
--键是思想。
--------------------------主人吃饭去了留下一条华丽的分割线----------------------------------------

SQL初级第二课的更多相关文章

  1. Kali Linux Web 渗透测试视频教程— 第二课 google hack 实战

    Kali Linux Web 渗透测试— 第二课 代理简介 文/玄魂 课程地址: http://edu.51cto.com/course/course_id-1887.html 目录 shellKal ...

  2. CI(CodeIgniter)框架入门教程——第二课 初始MVC

    本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...

  3. OpenCV 第二课 认识图像的存储结构

    OpenCV 第二课 认识图像的存储结构 Mat Mat 类包含两部分,矩阵头和矩阵体.矩阵头包含矩阵的大小,存储方式和矩阵体存储空间的指针.因此,Mat中矩阵头的大小是固定的,矩阵体大小是不定的. ...

  4. 【第二课】深入理解Handler

    简要讲解Handler是做什么的 我们知道,在Android中,app启动会启动一个进程一个线程——UI线程,UI线程是主线程,并且不允许这个线程阻塞超过5秒,一旦超过5秒就会ANR. 所以较为耗时的 ...

  5. ruby代码重构第二课

    (文章都是从我的个人主页上粘贴过来的, 大家也可以访问我的主页 www.iwangzheng.com) 在第一课里提取出了相通的代码,第二课里就把常量提取出来吧 一般把常量的定义写的对应的app/mo ...

  6. NeHe OpenGL教程 第二课:多边形

    前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢 ...

  7. Spark 3000门徒第二课scala面向对象总结

    昨晚听了王家林老师3000门徒spark系列课程的第二课,讲述了scala面向对象知识,并且带着过了一遍Spark核心类:SparkContent,RDD的代码,下面写一下心得: RDD是抽象类,实现 ...

  8. grails2.3.11第二课

    第二课主要介绍grails相关插件的使用,这是敏捷开发所必需的途径. 可以把grails的插件看作是grails正常项目的迷你型,因为看插件的源码,它的目录结构和正常项目相差无几. 官方开源插件地址 ...

  9. 过拟合/欠拟合&logistic回归等总结(Ng第二课)

    昨天学习完了Ng的第二课,总结如下: 过拟合:欠拟合: 参数学习算法:非参数学习算法 局部加权回归 KD tree 最小二乘 中心极限定律 感知器算法 sigmod函数 梯度下降/梯度上升 二元分类 ...

随机推荐

  1. 将file转变成contenthash

    一.将MultipartFile转file CommonsMultipartFile cf= (CommonsMultipartFile)file; DiskFileItem fi = (DiskFi ...

  2. Android 运行时权限处理

    引言 Android 6.0 (API 23) 开始引入了运行时权限检查 (Permissions at Run Time),用户不需要在安装时同意授予应用权限,而是在应用运行时动态去申请所需要的权限 ...

  3. 【linux】学习1

    郁闷啊 好多东西要学 下面大概就是鸟哥那本书的第五章内容吧 linux命令: Ctrl + Alt + F1 ~ F6 : 切换终端 ls  -al  ~ :显示主文件夹下的所有隐藏文件 date: ...

  4. POJ 3185 The Water Bowls (高斯消元)

    题目链接 题意:翻译过来就是20个0或1的开关,每次可以改变相邻三个的状态,问最小改变多少次使得所有开关都置为0,题目保证此题有解. 题解:因为一定有解,所以我们可以正序逆序遍历两次求出较小值即可.当 ...

  5. MyEclipse/Eclipse中修改包的显示结构

    操作如下:

  6. 数的统计count(bzoj1036)

    Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. Q ...

  7. Android 中的缓存机制与实现

    Android开发本质上就是手机和互联网中的web服务器之间进行通信,就必然需要从服务端获取数据,而反复通过网络获取数据是比较耗时的,特别是访问比较多的时候,会极大影响了性能,Android中可通过二 ...

  8. jquery学习笔记----元素筛选

    1.eq()  筛选指定索引号的元素2.first() 筛选出第一个匹配的元素3.last() 筛选出最后一个匹配的元素4.hasClass() 检查匹配的元素是否含有指定的类5.filter() 筛 ...

  9. jQuery – 3.JQuery的Dom操作

    3.1 JQuery的Dom操作     1.使用html()方法读取或者设置元素的innerHTML    2.使用text()方法读取或者设置元素的innerText     3.使用attr() ...

  10. 【转载】有哪些省时小技巧,是每个Linux用户都应该知道的

    http://www.cnblogs.com/amberly/p/4352682.html