SQL Server 学习笔记

之前学过一点数据库但由于一直没有使用忘得差不多了,最近重新复习一下相关的知识,把基本的语法YOU又看了一遍,为了强化记忆在写一遍~~~~~~

基本的 select 语句

读取一个表的所有字段

Select * from sales.customer

读取特定字段

Select customerID,Territory fromsales.customer

Where 子句

读取 lastname 是 adams 的记录

Select * from person.contact wherelastname='adams'

运算符: =、>、<、>=、<=、!>、!<、!=

逻辑运算符:and、or、not、between、like、in

读取ModifiedDare 大于2003-1-1 之后的记录

Select * from person.contact whereModifiedDare>'2003-1-1'

读取 lastname 是 adams 并且ModifiedDare 大于2003-1-1 之后的记录

Select * from person.contact wherelastname='adams' and ModifiedDare>'2003-1-1'

读取 lastname 是 adams 或者ModifiedDare 大于2003-1-1 之后的记录

Select * from person.contact wherelastname='adams' or ModifiedDare>'2003-1-1'

读取 lastname 是 adams 并且ModifiedDare 大于2003-1-1 之后的记录

Select * from person.contact where not(lastname='adams')and ModifiedDare>'2003-1-1'

读取 ModifiedDare大于等于2003-1-1 并且 小于等于 2003-12-31的记录

Select * from person.contact whereModifiedDare>='2003-1-1' and ModifiedDare<='2003-12-31'

读取ModifiedDare 在2003-1-1和2003-12-31之间的记录

Select * from person.contact whereModifiedDare between '2003-1-1' and '2003-12-31'

读取 lastname 中有il (前后可有任意个任意字符) 用like 并用通配符 %

Select * from person.contact where lastnamelike '%il%'

读取 lastname 中有il (前后可有一个任意字符) 用like 并用通配符 _

Select * from person.contact where lastnamelike '_il_'

读取 lastname 中有adams或smith或adina 的记录 用in

Select * from person.contact where lastnamein ('adams','smith','adina')

Order by 子句 (排序)

asc升序(默认) desc降序

读取person.contact 中的所有记录 并modifiedData 降序排序

Select * from person.contact order bymodifiedData desc

读取person.contact 中的所有记录 并modifiedData 降序排序 若modifiedData 相同则按 lastname升序排序

Select * from person.contact order bymodifiedData desc,lastname

Group by 子句 (分组)

聚合函数:count()--返回总数、avg()--计算平均值、min()--计算最小值、max()--计算最大值

返回person.contact表的总数

Select count(*) from person.contact

返回production.product表listprice字段的平均值,取别名 avg_price

Select avg(listprice) avg_price fromproduction.product

返回production.product表listprice字段的最小值、最大值,取别名min_price、max_price

Select min(listprice) min_price,max(listprice)max_price from production.product

把person.contact表按lastname分组,并计算各组总数,取别名qty

Select lastname,count(*) qty fromperson.contact group by lastname

把person.contact表按lastname分组,并计算各组总数,取别名qty,并按lastname排序

Select lastname,count(*) qty fromperson.contact group by lastname order by lastname

把person.contact表按lastname分组,并计算各组总数,取别名qty,并按总数降序排序,相同的按lastname排序

Select lastname,count(*) qty fromperson.contact

group by lastname

order by count(*),lastname

实例:

--INSERT INTO Stores VALUES ('TEST', 'Test Store', '1234 Anywhere Street', 'Here', 'NY', '00319');
/*
INSERT INTO Sales 
 (StoreCode, OrderNumber, OrderDate, Quantity, Terms, TitleID)
VALUES
 ('test','TESTORDER2', '01/01/1991', 10, 'NET 30', 1234567);
*/
--SELECT * FROM Person.Contact INNER JOIN HumanResources.Employee ON Person.Contact.ContactID = HumanResources.Employee.ContactID
--SELECT e.NationalIDNumber  FROM HumanResources.Employee AS e INNER JOIN Person.Contact AS c ON c.ContactID = e.ContactID 
/*
CREATE DATABASE Accounting
ON
(NAME = 'Accounting',
FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AccountingData.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5)
LOG ON
(NAME = 'AccountingLog',
FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AccountingLog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB);
GO
EXEC sp_helpdb 'Accounting'
EXEC sp_help
*/
/*
USE Accounting
 CREATE TABLE Customers
 (
 CustomerNo int IDENTITY NOT NULL,
 CustomerName varchar(30)  NOT NULL,
 Address1 varchar(30)  NOT NULL,
 Adress2 varchar(30)  NOT NULL,
 City varchar(20)  NOT NULL,
 State char(2)  NOT NULL,
 Zip varchar(10)  NOT NULL,
 Contact varchar(25)  NOT NULL,
 Phone varchar(15)  NOT NULL,
 FedIDNo varchar(9)  NOT NULL,
 DateInSystem smalldatetime  NOT NULL
 );
 EXEC sp_help 
*/
USE Accounting
CREATE TABLE Employees
(
EmployeeID int IDENTITY NOT NULL,
FirstName varchar(25)  NOT NULL,
MiddleInitial varchar(1)  NULL,
LastName varchar(25)  NOT NULL,
Title varchar(25)  NOT NULL,
SSN varchar(11)  NOT NULL,
Salary money  NOT NULL,
PriorSalary money  NOT NULL,
LastRaise AS Salary - PriorSalary,
HireDate date  NOT NULL,
TerminationDate date  NULL,
ManagerEmpID int  NOT NULL,
Department varchar(25)  NOT NULL
)
--EXEC sp_help Employees
 EXEC sp_helpdb Accounting

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2016-08-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java 源码分析

数据库Exists关键字举例

一.问题描述: 查询所有未选择03号课程的学生的姓名 规定使用存在量词 student表: ? grade表: ? 二.思路: 既然是存在量词那么也就是E...

2946
来自专栏C# 编程

2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件

上一节讲的是直接在创建表的时候添加条件约束,但是有时候是在表格创建完毕之后,再添加条件约束的,那么这个又该如何实现? 其实,跟上一节所写的SQL代码,很多是相同...

2170
来自专栏跟着阿笨一起玩NET

SQL小技巧总结。

821
来自专栏一个爱吃西瓜的程序员

学习SQL【8】-谓词和CASE表达式

谓词 什么是谓词 谓词就是返回值为真值的函数。对于通常的函数来说,返回值有可能是数字、字符串和日期等,但是谓词的返回值全部是真值。这也是谓词和函数的最大区别。 ...

3216
来自专栏全栈工程师成长之路

深入浅出后端开发(SQL指令笔记)

3317
来自专栏章鱼的慢慢技术路

SQL数据查询之——嵌套查询

1493
来自专栏面朝大海春暖花开

mybatis递归,一对多代码示例

由于只有这么两级,可以不用使用递归,直接查询父集,之后foreach查询子集放入对应的list集合。

1541
来自专栏LanceToBigData

MySQL(九)之数据表的查询详解(SELECT语法)一

这一篇是MySQL中的重点也是相对于MySQL中比较难得地方,个人觉得要好好的去归类,并多去练一下题目。MySQL的查询也是在笔试中必有的题目。希望我的这篇博客...

27210
来自专栏java达人

有哪些常用的sql语句

首行当然是最基本的增删查改啦,其中最重要的是查。 还有就是一些要注意的地方,就是SQL语句对大小写不敏感,语句中列名对应的值要用单引号''括起来不是双引号。...

19110
来自专栏数据分析

[数据库基础]——编码标准之格式

代码就像家里的各种物品,格式化就好比对家中物品的排放。家中的物品随便怎么放,物品都不会反对,房子也不会介意,但是物品的排放合理、规整,会让家里变得更具有美感。代...

2848

扫码关注云+社区