1 / 19

T-SQL 语言概述

T-SQL 语言概述. SQL 语言是用于数据库查询的结构化语言。 1982 年,美国国家标准化组织确认 SQL 为数据库系统的工业标准。目前,许多关系型数据库供应商都在自己的数据库中支持 SQL 语言: Accessoraclesybasedb2 等。 在 SQL Server 数据库中, T-SQL 由以下几部分组成:、 ( 1 )数据定义语言( DDL ): data definition language. 用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等操作。

Download Presentation

T-SQL 语言概述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. T-SQL语言概述 • SQL语言是用于数据库查询的结构化语言。1982年,美国国家标准化组织确认SQL为数据库系统的工业标准。目前,许多关系型数据库供应商都在自己的数据库中支持SQL语言:Access\oracle\sybase\db2等。 • 在SQL Server数据库中,T-SQL由以下几部分组成:、 • (1)数据定义语言(DDL):data definition language.用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等操作。 • (2)数据库操作语言(DML):data manipulation language. • 用于操纵数据库中各种对象,检索和修改数据。 • (3)数据控制语言(DCL):data control language. • 用于安全管理,确定哪些用户可以查看或修改数据库中的数据。

  2. 数据定义语言:DDL • DDL包括的主要语句及功能如表

  3. 创建数据库 • 物理数据库 • 物理数据库的文件和文件组 • 文件 • 主数据文件 • 辅助数据文件 • 日志文件 • 文件组 • 主文件组 • 用户定义文件组

  4. 创建数据库 示例:创建一个名为mm的数据库,其初始值大小为5MB,最大大小为50MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 CREATE DATABASE mm ON (NAME=‘mm_Data', FILENAME='e:\sql\data\MSSQL\Data\mm.mdf', SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10%) LOG ON (NAME=‘mm_Log', FILENAME='e:\sql\data\MSSQL\Data\mm_Log.ldf', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB) GO

  5. 创建数据库 • 创建一个名为TT的数据库,它有3个数据文件,其中主数据文件为100MB,最大大小为200MB,按20MB增工;1个辅数据文件为20MB,最大大小不限,按10%增长。它还有2个日志文件,大小均为50MB,最大大小均为100MB,按10MB增长。 • Create database tt • On • Primary • (name=‘tt_data1’,filename=‘c:\data\tt_data1.mdf’,size=100MB,maxsize=200MB,filegrowth=20MB), • (name=‘tt_data2’,filename=‘c:\data\tt_data2.ndf’,size=20MB,maxsize=unlimited,filegrowth=10%) • Log on • (name=‘tt_log1’ filename=‘e:\data\tt_log1.ldf’,size=50MB,maxsize=100MB,filegrowth=10MB), • (name=‘tt_log2’ filename=‘e:\data\tt_log2.ldf’,size=50MB,maxsize=100MB,filegrowth=10MB) • go

  6. 修改数据库 • 修改数据库名: • Alter database mm • Modify name=mm2 • 向数据库northwind添加一个文件组mm22 • alter database northwind • add filegroup mm22 • Go • 向指定文件组添加一个文件 • alter database northwind • add file(name='mmek',filename='c:\mmek.data',size=50,maxsize=100MB,filegrowth=10%) to filegroup mm22

  7. 修改数据库 • 示例 【例】修改数据库mm现有数据文件的属性,将主数据文件的最大大小 改为不限制,增长方式改为按每次5MB增长。 分析:因为需修改主数据文件的两个属性,而使用ALTER DATABASE语句一次只能修改数据文件的一个属性,所以需要执行两次ALTER DATABASE命令。 ALTER DATABASE mm MODIFY FILE (NAME = mm_Data, MAXSIZE = UNLIMITED) GO ALTER DATABASE XSCJ MODIFY FILE (NAME = mm_Data, FILEGROWTH = 5MB) GO /*这是第二次,将主数据文件的增长方式改为按5MB增长。*/

  8. 修改数据库 • 示例 【例】为数据库XSCJ添加一个日志文件。 ALTER DATABASE XSCJ ADD LOG FILE (NAME = XSCJ_LOG2, FILENAME = 'e:\sql\data\MSSQL\data\XSCJ_Log2.ldf', SIZE = 5MB, MAXSIZE =10 MB, FILEGROWTH = 1MB) GO

  9. 删除数据库 • 语法: • 删除数据库mm • Drop database mm

  10. • 创建表时必须指定表名、列名、以及数据类型。对给定的表来说,列名必须唯一,但是,同一个数据库中不同表的列的名称可以相同。必须为每一列都指定数据类型。 • 以下是在sql server中创建表的极限: • 1)每个数据库可以有20亿个表 • 2)每个表可权有1024个列 • 3)每个列可以有8064字节(这近似的最大长度不适用于text\ntext\image数据类型)

  11. 使用create创建表 • 一个示例 设已经创建了数据库XSCJ,现在该数据库中需创建学生情况表XS,创建表XS的T-SQL语句如下: USE XSCJ CREATE TABLE XS ( 学号 int identity(1,1), 姓名 uniqueidentifier default newid(), 专业名city, 性别bit NOT NULL, 出生时间smalldatetime NOT NULL, 总学分tinyint NULL, 备注text NULL ) GO 分析:首先使用USE XSCJ将数据库XSCJ指定为当前数据库,然后使用CREATE TABLE语句在数据库XSCJ中创建表XS。

  12. 使用identity属性是要考虑下面的要求: • 1)每个表只允许一个标识列 • 2)identity属性必须与整型或精确小数一起使用 • 3)不能修改标识列 • 4)查询中在列名的位置可以使用identitycol关键字。这样你可以在不知道列名的情况下引用表中具有identity属性的列。 • 5)标识列不允许空值 • 允许将显示值插入表的标识列中: • set identity_insert xiaocloud1 on • insert into xiaocloud1(xid,address) values(5,'sfsdsfd') • go

  13. 使用ALTER TABLE修改表 • 示例 【例】在表XS中增加1个新列——奖学金等级。 USE XSCJ ALTER TABLE XS ADD 奖学金等级tinyint NULL GO 【例】在表XS中删除名为奖学金等级的列。 USE XSCJ ALTER TABLE XS DROP COLUMN 奖学金等级 GO

  14. 使用ALTER TABLE修改表 • 示例 【例】修改表XS中已有列的属性:将名为“姓名”的列长度由原来的8改为10;将名为“出生时间”的列的数据类型由原来的smalldatetime改为datetime。 USE XSCJ ALTER TABLE XS ALTER COLUMN 姓名 char(10) go alter table xs ALTER COLUMN 出生时间 datetime GO

  15. 删除表 • 语法: • Drop table mm

  16. 数据操作语言DML • 数据操纵语言(DML)主要语句及功能

  17. 使用insert语句向表插入数据 • 向表中插入记录 insert into • INSERT INTO titles (title_id, title, type, pub_id, price) VALUES ('BU9876', 'Creating Web Pages', 'business', '1389', '29.99') • 通过 INSERT FROM 查询,可以将行从一个表复制到另一个表中或在同一个表内复制 • INSERT INTO archivetitles (title_id, title, type, pub_id) SELECT title_id, title, type, pub_id FROM titles WHERE (pub_id = '0766')

  18. 使用update修改记录 【例】将XSCJ数据库的XS表中学号为001110的学生的备注列值改为“三好生”,使用如下的T-SQL语句: USE XSCJ UPDATE XS SET 备注=”三好生” WHERE 学号=001110 【例】将XS表中的所有学生的总学分都增加10。 UPDATE XS SET 总学分= 总学分+10 说明:若UPDATE语句中未使用WHERE子句限定范围,UPDATE语句 将更新表中的所有行。 【例】将姓名为“罗林琳”的同学的专业改为“通信工程”,备注改 为“转专业学习”,学号改为001241。 UPDATE XS SET 专业= ‘通信工程’, 备注= ‘转专业学习’, 学号= ‘001241’ WHERE 姓名= ‘罗林琳’ 说明:使用UPDATE可以一次更新多列的值,这样可以提高效率。

  19. 使用删除语句delete删除记录 • 从表中删除一条记录: • Delete from xs where xsid=‘0011’ • 删除表中所有记录,保存表的架构: • Detele from xs • 另外一种删除记录语句truncate:删除表中的所有行,TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 • Truncate xs

More Related