`
虚弱的java
  • 浏览: 163385 次
  • 性别: 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

分享到:
评论

相关推荐

    SQL2008-1.8X_x32_x64.zip

    SQL Server 2008包含了众多功能,如T-SQL语言、数据仓库、数据挖掘、报表服务等,为开发者提供了强大的数据管理工具。其内置的Transact-SQL扩展性极强,可以编写复杂的查询语句,支持视图、存储过程、触发器等,满足...

    java 连接sqlserver使用的java-sqlserver-connect.jar包

    总结来说,"java-sqlserver-connect.jar"是Java应用程序连接SQL Server数据库的关键组件,它为开发者提供了在Java环境中执行SQL查询和操作数据库的能力,同时支持JRE7和JRE8,确保了兼容性和灵活性。在实际项目中,...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    三、数据操作语言(DML) DML用于对数据库中的数据执行操作,如查询、添加、更新和删除数据记录。主要的DML语句包括INSERT、UPDATE、DELETE和SELECT。 四、数据控制语言(DCL) DCL用于管理数据库中的数据访问和...

    x-pack-sql-jdbc.rar

    X-Pack SQL JDBC驱动是Elasticsearch官方提供的一个组件,主要功能是提供了一个JDBC接口,使得开发人员能够使用标准的SQL语言对Elasticsearch集群进行查询和操作。这个驱动的两个版本——x-pack-sql-jdbc-7.7.1.jar...

    Inside Microsoft SQL Server 2008 T-SQL Programming

    《Inside Microsoft SQL Server 2008 T-SQL Programming》这本书深入探讨了SQL Server 2008中的T-SQL编程技术,这是SQL Server数据库管理与开发的核心语言。T-SQL,即Transact-SQL,是SQL的一个扩展,主要用于微软的...

    T-SQL语言基础 T-SQL语言基础

    T-SQL语言基础是SQL Server中的核心组成部分,用于管理和处理数据库中的数据。T-SQL扩展了标准SQL,提供了更多的功能和控制。 在T-SQL中,注释是开发者用来解释代码的重要工具。有两种类型的注释方式:单行注释使用...

    microsoft sql server 2008技术内幕 t-sql语言基础

    《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》这本书是针对SQL Server 2008数据库管理系统,特别关注其Transact-SQL(T-SQL)语言的全面指南,非常适合初学者深入理解T-SQL的基础知识。T-SQL是SQL Server的...

    SQL、T-SQL与PL-SQL的区别

    与标准SQL语言相同,PL-SQL也是Oracle客户端工具(如SQL*Plus、Developer/2000等)访问服务器的操作语言。它有标准SQL所没有的特征:变量(包括预先定义的和自定义的);控制结构(如IF-THEN-ELSE等流控制语句);...

    SQL SERVER 2008 T-SQL 基础

    《SQL SERVER 2008 T-SQL基础》是一本由微软出版社出版的书籍,主要针对SQL Server 2008中的Transact-SQL(T-SQL)语言进行深入浅出的讲解。T-SQL是SQL Server的核心组件,用于数据查询、数据操纵、存储过程编写以及...

    flume-ng-sql-source-1.5.2

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

    Microsoft SQL Server 2008 T-SQL Fundamentals

    T-SQL是SQL Server中用于数据查询、更新、操作和编程的主要语言。此书结合了理论与实践,通过清晰的解释和丰富的示例,帮助读者理解和掌握T-SQL的核心概念。 T-SQL在SQL Server中的重要性不言而喻,它是数据库管理...

    SQL SERVER-2008从入门到精通

    《SQL SERVER-2008从入门到精通》是一本由Mike Hotek编著的电子书,主要针对SQL Server 2008这一数据库管理系统,旨在帮助初学者快速掌握SQL Server的基本操作和高级技巧,逐步成长为数据库管理的专业人士。SQL ...

    T-sql 语言大全

    - **DML**:数据操作语言,包括`SELECT`、`UPDATE`、`DELETE`和`INSERT INTO`,分别用于查询、更新、删除和插入数据。 - **DDL**:数据定义语言,用于创建和管理数据库结构,如`CREATE DATABASE`、`ALTER TABLE`、...

    精通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 客户程序...

    learn-sql-the-hard-way-笨方法学sql

    《笨方法学SQL》是一本深受读者喜爱的SQL学习书籍,其主要目标是通过实践性的方法帮助初学者...实践是学习SQL的关键,这本书通过大量的例子和练习,鼓励读者动手操作,从而真正理解并掌握SQL这一强大的数据查询语言。

    SQL-SERVER-2008-DBA入门经典

    《SQL-SERVER-2008-DBA入门经典》这本书是针对初学者设计的一本教程,旨在帮助读者快速掌握SQL Server 2008数据库管理系统的使用和管理技巧。SQL Server是Microsoft公司推出的一款强大的关系型数据库管理系统,广泛...

    sql标准--------------

    SQL标准经历了多个版本的更新,包括SQL-86、SQL-89、SQL-92、SQL:1999、SQL:2003、SQL:2008、SQL:2011、SQL:2016以及最新的SQL:2019等。每个新版本都在前一个版本的基础上增加了新的功能、优化了语法结构和提升了...

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

    软考,数据库

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

    软考,数据库

Global site tag (gtag.js) - Google Analytics