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 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

批量 SQL 之 FORALL 语句

    对PL/SQL而言,任何的PL/SQL块或者子程序都是PL/SQL引擎来处理,而其中包含的SQL语句则由PL/SQL引擎发送SQL语句转交到SQL引擎...

9520
来自专栏Java 源码分析

数据库Exists关键字举例

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

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

SQL数据查询之——单表查询

25650
来自专栏数据之美

图文并茂详解 SQL JOIN

Join是关系型数据库系统的重要操作之一,一般关系型数据库中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另...

29380
来自专栏数据分析

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

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

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

SQL小技巧总结。

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

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

35370
来自专栏C# 编程

1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表

约束条件分为以下几种: 1)非空约束,使用NOT NULL关键字; 2)默认值约束,使用DEFAULT关键字; 3)检查约束,使用CHECK关键字; 4)唯一约...

21200
来自专栏个人随笔

MySQL常用函数

聚合函数  统计和分析 数据  使用场景:会和分组结合使用 -- 一旦启用分组,只能获取组的信息,组中成员不能出现在select后 count() 查询某个字...

35970
来自专栏C# 编程

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

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

22900

扫码关注云+社区

领取腾讯云代金券