T-SQL入门(一)——创建数据库
2013-01-24 15:50
211 查看
数据库中的标准查询语言是SQL,全名:结构化查询语言(Structured Query Language)。不同的数据库对SQL进行了不同程度的扩充,非标准的SQL语句在不同数据库间是不一能互通的。
T-SQL全称是Transact-SQL,是SQL的一种扩充,目前主要用于Microsoft SQL Server数据库中。
具体的数据和特点可以通过连接,跳转到wikipedia上详细查看,这里就不搬运了。
近期有一个功能用到了比较复杂的数据库查询,之前很少写sql语句,所以这次有些不知所措,虽然功能最终是完成了,但也意识到sql能力的欠缺,所以就打算系统的写一些sql入门的文章。关于为什么要写,可以查看刘未鹏的blog:书写是为了更好的思考。
本文的数据库不加特殊说明都是以Sql Server 2005为例的。
----------------------------------------------------------------------------------
最简单创建数据库语句是:
CREATE DATABASE [DataName]
SQL SERVER中对大小写是不敏感的,所以上一条写成“create database dataname”也是可以得,但为了阅读方便和迁移方便,关键字一般都是大写,用户字段为小写(参考MSDN中的T-SQL编程约定)。
上述的创建数据库过于简单,应该更为精细的设定各种条件。
USE master --设置当前数据库为master 注①
GO
IF EXISTS(SELECT * FROM sysdatabases WHERE name ='stuDB') --如果存在同名数据库,则删除。所以数据库命名时需要注意,不要过于通用。
DROP DATABASE stuDB
CREATE DATABASE stuDB
ON PRIMARY --默认就属于PRIMARY主文件组,可省略
(
NAME='stuDB_data', --主数据文件的逻辑名,就是数据库的名字 ,注意逗号
FILENAME='E:\database\stuDB_data.mdf', --主数据文件的物理名,存储地址。 注②
SIZE=5mb, --主数据文件初始大小
MAXSIZE=100mb, --主数据文件增长的最大值
FILEGROWTH=15% --主数据文件的增长率,每次增加15%,一直到MAXSIZE
)
LOG ON
(
NAME='stuDB_log', --日志文件逻辑名
FILENAME='E:\database\stuDB_log.ldf', --日志文件存储地址
SIZE=2mb, --初始大小
FILEGROWTH=1MB --日志文件增长方式,没次增大1M
)
GO
执行上述语句,然后刷新右侧的数据库,会出现一个新的数据库:stuDB。
小技巧:如果选中某一条语句,选择执行的话,只会执行当条被选中的语句,而不是全部执行。这才测试语句和调试bug的时候很有用。
简要语法:
GO:
GO是向 SQL Server 实用工具发出一批 Transact-SQL 语句已结束的信号。GO 并不是 Transact-SQL 语句,只是一个可被编译器识别的标识。
引用自MSDN(GO):
SQL Server 实用工具将 GO 解释为应该向 SQL Server 实例发送当前批 Transact-SQL 语句的信号。 当前批语句由上一 GO 命令后输入的所有语句组成,如果是第一条 GO 命令,则由即席会话或脚本开始后输入的所有语句组成。
GO 命令和 Transact-SQL 语句不能在同一行中。 但在 GO 命令行中可包含注释。
在某些地方,不实用GO可能会出错。
比如在上面的代码中,如果当前数据库并不是master,而且USE master下面没有GO标识,则会出错:
消息 1802,级别 16,状态 4,第 3 行 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。
IF:
T-SQL中BEGIN 和 END 是控制流语言的关键字。相当于C#或java中的花括号{}。一条语句时可以省略。
如果有分支,可以使用IF……ELSE……语法。
IF TRUE
BEGIN
--语句
END
ELSE
BEGIN
--语句
END
----------------------------------------------------------
注①:master 数据库记录 SQL Server 系统的所有系统级信息。 这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。
master数据库中的sysdatabases表中记录了所有的数据库,查询这个表可以确定是否有重名数据库。
注②:注意斜杠方向。反方向的可能会报错:文件激活错误,物理文件名可能不正确
T-SQL全称是Transact-SQL,是SQL的一种扩充,目前主要用于Microsoft SQL Server数据库中。
具体的数据和特点可以通过连接,跳转到wikipedia上详细查看,这里就不搬运了。
近期有一个功能用到了比较复杂的数据库查询,之前很少写sql语句,所以这次有些不知所措,虽然功能最终是完成了,但也意识到sql能力的欠缺,所以就打算系统的写一些sql入门的文章。关于为什么要写,可以查看刘未鹏的blog:书写是为了更好的思考。
本文的数据库不加特殊说明都是以Sql Server 2005为例的。
----------------------------------------------------------------------------------
最简单创建数据库语句是:
CREATE DATABASE [DataName]
SQL SERVER中对大小写是不敏感的,所以上一条写成“create database dataname”也是可以得,但为了阅读方便和迁移方便,关键字一般都是大写,用户字段为小写(参考MSDN中的T-SQL编程约定)。
上述的创建数据库过于简单,应该更为精细的设定各种条件。
USE master --设置当前数据库为master 注①
GO
IF EXISTS(SELECT * FROM sysdatabases WHERE name ='stuDB') --如果存在同名数据库,则删除。所以数据库命名时需要注意,不要过于通用。
DROP DATABASE stuDB
CREATE DATABASE stuDB
ON PRIMARY --默认就属于PRIMARY主文件组,可省略
(
NAME='stuDB_data', --主数据文件的逻辑名,就是数据库的名字 ,注意逗号
FILENAME='E:\database\stuDB_data.mdf', --主数据文件的物理名,存储地址。 注②
SIZE=5mb, --主数据文件初始大小
MAXSIZE=100mb, --主数据文件增长的最大值
FILEGROWTH=15% --主数据文件的增长率,每次增加15%,一直到MAXSIZE
)
LOG ON
(
NAME='stuDB_log', --日志文件逻辑名
FILENAME='E:\database\stuDB_log.ldf', --日志文件存储地址
SIZE=2mb, --初始大小
FILEGROWTH=1MB --日志文件增长方式,没次增大1M
)
GO
执行上述语句,然后刷新右侧的数据库,会出现一个新的数据库:stuDB。
小技巧:如果选中某一条语句,选择执行的话,只会执行当条被选中的语句,而不是全部执行。这才测试语句和调试bug的时候很有用。
简要语法:
GO:
GO是向 SQL Server 实用工具发出一批 Transact-SQL 语句已结束的信号。GO 并不是 Transact-SQL 语句,只是一个可被编译器识别的标识。
引用自MSDN(GO):
SQL Server 实用工具将 GO 解释为应该向 SQL Server 实例发送当前批 Transact-SQL 语句的信号。 当前批语句由上一 GO 命令后输入的所有语句组成,如果是第一条 GO 命令,则由即席会话或脚本开始后输入的所有语句组成。
GO 命令和 Transact-SQL 语句不能在同一行中。 但在 GO 命令行中可包含注释。
在某些地方,不实用GO可能会出错。
比如在上面的代码中,如果当前数据库并不是master,而且USE master下面没有GO标识,则会出错:
消息 1802,级别 16,状态 4,第 3 行 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。
IF:
T-SQL中BEGIN 和 END 是控制流语言的关键字。相当于C#或java中的花括号{}。一条语句时可以省略。
如果有分支,可以使用IF……ELSE……语法。
IF TRUE
BEGIN
--语句
END
ELSE
BEGIN
--语句
END
----------------------------------------------------------
注①:master 数据库记录 SQL Server 系统的所有系统级信息。 这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。
master数据库中的sysdatabases表中记录了所有的数据库,查询这个表可以确定是否有重名数据库。
注②:注意斜杠方向。反方向的可能会报错:文件激活错误,物理文件名可能不正确
相关文章推荐
- SQL入门(1)——创建,删除,查看数据库(database)信息
- T-SQL入门(一)——创建数据库
- 【sql入门】根据要求绘制E/R图,创建数据库(2)mySQL建表基本语法及主键外键选择
- 2014.08.23 周六-http请求响应-sql入门:安装、创建数据库
- SQL入门(创建数据库语法)
- 【sql入门】根据要求绘制E/R图,创建数据库(1)绘制E/R图
- sql 入门经典(第五版) Ryan Stephens 学习笔记 第四部分:建立复杂的数据库查询/
- MySQL入门--数据表的创建、显示指定数据库中的所有数据表
- MS SQL 中判断 数据库, 存储过程,表,临时表,视图,函数,用户,用户创建对象 等是否存在 SQL脚本
- [zz]SQL 创建数据库、表以及索引
- 用SQL创建数据库登录用户
- 读sql文件执行创建数据库 插入数据库
- sql server中利用sql语句如何创建角色和用户&数据库安全设置 给出了实例
- mysql创建数据库sql实例
- 数据库基础系列之四:PL/SQL入门
- 创建数据库和表的SQL语句
- SQL远程映射数据库创建视图
- T-sql创建数据库
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
- sql:sql server 2005 创建数据库应该注意的问题