`
虚弱的java
  • 浏览: 160176 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

Sql2008--操作语言

阅读更多

--数据库操作语言
--INSERT 插入数据
use AdventureWorks;
go --插入还有函数的数据
insert into dbo.Departments
values(),(),();
--修改数据  UPDATE
--删除数据 DELETE
--查询语句 SELECT
USE AdventureWorks;
GO
SELECT * FROM Production.ProductPhoto P
WHERE P.LargePhotoFileName LIKE '%greena_' escape 'a'; --ESCAPE 'escape_character' 允许在字符串中搜索通配符,而不是将其作为通配符使用

USE AdventureWorks;
GO
select AVG(OrderQty) as 'Average Quantity',
 NonDiscountSales = (OrderQty * UnitPrice)
from Sales.SalesOrderDetail sod
group by (OrderQty * UnitPrice)
order by (OrderQty * UnitPrice) desc;
go

--HAVING 子句是专为SELECT 语句而生的,因为它只能与SELECT语句一起使用。而且通常在GROUP BY 子句中。
use AdventureWorks;
go
select ss.SalesOrderID,SUM(ss.LineTotal) as SubTotal
from Sales.SalesOrderDetail ss
group by SalesOrderID
having SUM(LineTotal) > 100000.00 -- 使用HAVING子句 指定组或聚合应满足的查询条件
order by SalesOrderID;

--在查询中使用COMPUTE子句返回合计
use AdventureWorks;
go
select sso.CustomerID,sso.OrderDate,sso.SubTotal,sso.TotalDue
from Sales.SalesOrderHeader sso
where SalesPersonID =276
order by OrderDate
compute sum(SubTotal),SUM(TotalDue);--使用COMPUTE子句

--在查询中使用COMPUTE BY 返回合计
use AdventureWorks;
go
select s.SalesPersonID,s.CustomerID,s.OrderDate,s.SubTotal,s.TotalDue
from Sales.SalesOrderHeader s
order by SalesPersonID,OrderDate
compute sum(SubTotal),sum(TotalDue) by SalesPersonID;--使用COMPUTE BY 子句

--联接查询
--1、内联接 包括同联接和自然联接
--2、外联接 包括左外联接,右外联接和完全联接
--3、交叉联接 笛卡尔积联接

--内联接和等值联接
use AdventureWorks;
go
select e.EmployeeID
from HumanResources.Employee as e
inner join Sales.SalesPerson as s
on e.EmployeeID = s.SalesPersonID

--左外联接
use AdventureWorks;
go
select p.Name,pr.ProductReviewID
from Production.Product p
left outer join Production.ProductReview pr
on p.ProductID = pr.ProductID

--右外联接
use AdventureWorks;
go
select st.Name as Territory,sp.SalesPersonID
from Sales.SalesTerritory st
right outer join Sales.SalesPerson sp
on st.TerritoryID =sp.TerritoryID;
--完全联接:将返回左表和右表中的所有行。如果左表在右表中没有匹配行,则右表显示空值,同理,如果右表在左表没有匹配行,左表也显示空值
use AdventureWorks;
go
--full 关键词后面的OUTER关键词可以省略不写
select p.Name,sod.SalesOrderID
from Production.Product p
full outer join  Sales.SalesOrderDetail sod
on p.ProductID = sod.ProductID
where p.ProductID is null or sod.ProductID is null order by p.Name;
--交叉联接
use AdventureWorks;
go
select p.SalesPersonID,t.Name as Territory
From Sales.SalesPerson p
cross join Sales.SalesTerritory t --使用cross关键词指定交叉联接
order by p.SalesPersonID;
--组合查询 union
use AdventureWorks;
go --判断表Gloves是否存在,如果存在则将其删除
if OBJECT_ID('dbo.Gloves','U') is not null
drop table dbo.Gloves;
go
--通过select into 语句 创建表Gloves表
SELECT P.ProductModelID,P.Name
INTO dbo.Gloves
FROM Production.ProductModel P
where P.ProductModelID in(3,4)
go
/*不正确的用法*/
use AdventureWorks;
go
select p.ProductModelID,p.Name
from Production.ProductModel p
where p.ProductModelID not in (3,4)
order by Name --这是错误的关键
union
select ProductModelID,Name
from dbo.Gloves;
go
/*正确用法*/
use AdventureWorks;
go
select p.ProductModelID,p.Name
from Production.ProductModel p
where p.ProductModelID not in(3,4)
union
select ProductModelID,Name
from dbo.Gloves
order by Name;--order by 语句放在最后,因为排序永远都是对已经查出的结果列
go

if not exists (select * from publishers where state ='NY')
begin
select 'Sales force needs to penetrate New York market'
end
else
begin
select 'we have publishers in new york'
end

if exists(select * from publishers where state ='NY')
begin
select 'we have publishers in new york'
end
else
begin
select 'sales force needs to penetrate new york market'
end
--两个语句之间的不同点包括执行的事务数,处理时间,从客户端到服务器端传送的数据量大小
--使用SQL语句或存储过程来计算任意一个月的天数?实现功能的SQL语句如下:
select DATEPART(DD,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+CAST(month(getdate())as varchar)+'-01' as datetime))))
--控制SQL语句操作--DCL
--数据控制语言 GRANT语句 和 DENY 语句
-- GRANT 语句授予数据库和表对象权限;
--DENY 语句拒绝授予他们权限
--1、授予权限(GRANT):对主体授予安全对象的权限
--2、拒绝权限(DENY):对主体授予安全对象的否定权限
--3、收回权限(REVOKE):收回(或撤销)已经授予的权限

--1、授予权限(GRANT):对主体授予安全对象的权限
--授予创建表的权限
use AdventureWorks;
grant create table to zhao;
go
--2、使用GRANT OPTION 授予 CREATE VIEW
use AdventureWorks;
GRANT CREATE VIEW TO CandyWITH GRANT OPTION;
GO
--GRANT 表级对象权限
--1、授予对表的查询权限
use AdventureWorks;
GRANT SELECT ON OBJECT:: Person.Address To Rose;
go
--2、授予对存储过程的执行权限。
use AdventureWorks;
GRANT EXECUTE ON OBJECT :: HumanResources.uspUpdateEmployeeHireInfo
To Roma;
go
--GRANT 数据库主体权限 主要是对操作对象的管理,包括授予对数据库用户、数据库角色或应用程序角色的权限
--1、将某个用户的控制权限授予一个用户
use AdventureWorks;
GRANT CONTROL ON USER:: Ben To Roma;
go
--2、将对用户的IMPERSONATE权限授予应用程序角色
USE AdventureWorks;
GRANT IMPERSONATE ON USER:: Rose TO Uncle;
go
--DENY语句 不允许具备某种权限
--1、拒绝创建证书的权限 拒绝用户Ben对AdventureWors数据库的CREATE CERTIFICATE权限
use AdventureWorks;
go
DENY CREATE CERTIFICATE TO Ben;
go
--2、使用CASCADE拒绝VIEW DEFINITION 权限
use AdventureWorks;
DENY VIEW DEFINITION TO Roma CASCADE;
GO
--DENY表级对象权限,表级对象就是表、视图、表值函数、存储过程、扩展存储过程等对象,拒约对以上对象
--1、拒绝对表的选择权限
use AdventureWorks;
DENY SELECT ON OBJECT:: Person.Address To Roma;
go
--2、拒绝对存储过程的执行权限
use AdventureWorks;
DENY EXECUTE ON OJBECT::HumanResources.uspUpdateEmployeeHiredInfo
to Ben;
go
--DENY数据库主体权限:就是对数据库的管理和操作的权限
use AdventureWorks;
DENY CONTROL ON USER:: MadaTo Acce;
go
--REVOKE 语句 剥夺权限 ,收回权限
--1、撤销创建证书的权限
use AdventureWorks;
REVOKE CREATE CERTIFICATE FROM Roma;
go
--2、从应用程序角色中撤销REFERENCES权限。
use AdventureWorks;
REVOKE REFERENCES FROM Acce;
go
--REVOKE 表级对象权限
--1、撤销对表的选择权限
use AdventureWorks;
REVOKE SELECT ON OBJECT:: Person.Address from Roma;
go
--2、撤销对存储过程的执行权限
use AdventureWorks;
REVOKE EXECUTE ON OBJECT:: HumanResources.uspUpdateEmployeeHireInfo
from Acce;
go
--REVOKE 数据库主体权限
--1、撤销一个用户对另一个用户的
use AdventureWorks;
REVOKE CONTORL ON USER:: Cendy FROM Roma;
go
--2、撤销数据库用户对数据库角色的权限
use AdventureWorks;
REVOKE VIEW DEFINITION ON ROLE:: AcceParking
from Rose CASCADE;
GO

分享到:
评论

相关推荐

    精通SQL--结构化查询语言详解

    1.5 sql语言基础 11 1.5.1 sql的历史 11 1.5.2 sql语言的组成 12 1.5.3 sql语句的结构 13 .1.5.4 sql的优点 13 1.5.5 sql的执行 14 1.6 sql环境 15 1.6.1 环境 15 1.6.2 sql的层次结构 15 1.6.3 客户程序...

    数据库实验 - 实验四 SQL语言操作(1)

    数据库系列实验 数据库实验 - 实验四 SQL语言操作(1)

    8-3SQL语言--数据操作(二).pptx

    软考,数据库

    8-2SQL语言--数据操作(一).pptx

    软考,数据库

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

     《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》是Microsoft SQL Server 2008系列中的一本。书中全面深入地介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑...

    Sql语言学习全套-给力推荐

    Sql语言学习全套-给力推荐 Sql语言学习全套-给力推荐 alterfunction.sql alterproc_alterfunc.sql createtable.sql CURSOR.sql cursor_declare_open.sql functions.sql insert work.sql insertdualdata.sql...

    SQL 基础--SELECT 查询

    一、SQL 结构化查询语言 包括DDL(数据定义语言)、DCL(数据控制语言)、 DQL(数据查询语言)、DML(数据操纵语言) 二、SQL的特点 SQL 语句不区分大小写 SQL 语句能输入一行或多行 关键字不能整行缩写或...

    SQL理论----很好的SQL课件

    SQL理论知识----很好的SQL课件,全面介绍sql的语言和命令语句,让你快速掌握SQL数据库操作

    易语言操作sql-server从入门到精通

    易语言操作sql-server从入门到精通

    (第一卷)Microsoft.SQL.Server.2008技术内幕:T-SQL语言基础

     《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》是Microsoft SQL Server 2008系列中的一本。书中全面深入地介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑...

    SQL-Server2008实验报告

    本资源为本人的课程实验报告,可用于学习基于SQL Server2008或SQL Server其他版本的基本数据库操作。文档内的代码为截图形式,不喜勿下。 该压缩包内含有3份实验报告: 实验1:数据库的定义实验——使用SQL Server...

    Sql语言基本c操作

    基本sql语言操作,具有表的查询,删除,更新的基本操作。是不错的文档。

    数据库MySQL基础知识点1

    sql语句含义:结构化查询语言。客户端跟服务端通信的“特殊”语言 关系型数据库核心元素:数据库、数据表、记录、字段 客户端链接服务端 数据完整性 客户端Navicat使用 MySQL数据类型:数值型、decimal浮点...

    SQL语言操作参考,帮助文档

    文档里面的内容是从《数据库系统概论(第三版)》(萨师煊 王珊,高等教育出版社,2003.2)中摘录下来的,每一个SQL操作至少带有一个例子,很值得一看! 本手册的完成,还得感谢我的几个同学:李雪、张丽娟、朱...

    嵌入式SQL(E-SQL)简介

    第一节 什么是嵌入SQL语言? 3 1.1 嵌入SQL程序的组成元素 3 1.2 什么是静态SQL和动态SQL? 4 1.3 什么是SQLCA? 4 1.4 什么是SQLDA? 5 第二节 SYBASE SQL SERVER嵌入式SQL语言 5 2.1 一个嵌入SQL语言的简单例子 5 ...

    SQL语言 、实际操作

    SQL实际操作语言、只是有些说明性的句子、希望大家能看得懂哈、、

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    作为一本讲述T-SQL高级查询的专业图书,《Microsoft SQL Server 2008技术内幕:T-SQL查询》旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。《Microsoft SQL ...

    计算机后端-PHP视频教程. php与mysql基础-sql5-发送查询(select操作).wmv

    计算机后端-PHP视频教程. php与mysql基础-sql5-发送查询(select操作).wmv

    flume-ng-sql-source-1.5.2

    支持自定义查询以提供使用整个SQL语言的可能性。这是强大的,但有风险,请小心使用自定义查询。 要避免行导出重复,请使用WHERE子句中的$ @ $特殊字符,以递增方式导出未处理的行和插入的新行。 重要信息:为了...

    关系数据库标准语言SQL关系数据库标准语言SQL

    关系数据库标准语言SQL关系数据库标准语言SQL关系数据库标准语言SQL关系数据库标准语言SQL

Global site tag (gtag.js) - Google Analytics