zoukankan      html  css  js  c++  java
  • TSQL入门(一)——创建数据库

        数据库中的标准查询语言是SQL,全名:结构化查询语言(Structured Query Language)。不同的数据库对SQL进行了不同程度的扩充,非标准的SQL语句在不同数据库间是不一能互通的。
     
        T-SQL全称是Transact-SQL,是SQL的一种扩充,目前主要用于Microsoft SQL Server数据库中。
     
        具体的数据和特点可以通过连接,跳转到wikipedia上详细查看,这里就不搬运了。
     
        近期有一个功能用到了比较复杂的数据库查询,之前很少写sql语句,所以这次有些不知所措,虽然功能最终是完成了,但也意识到sql能力的欠缺,所以就打算系统的写一些sql入门的文章。关于为什么要写,可以查看刘未鹏的blog:书写是为了更好的思考
     
        本文的数据库不加特殊说明都是以Sql Server 2005为例的。
    ----------------------------------------------------------------------------------
     
        最简单创建数据库语句是: 
        
    [sql]CREATE DATABASE [DataName][/sql]
     

        SQL SERVER中对大小写是不敏感的,所以上一条写成“create database dataname”也是可以得,但为了阅读方便和迁移方便,关键字一般都是大写,用户字段为小写(参考MSDN中的T-SQL编程约定)。 

        上述的创建数据库过于简单,应该更为精细的设定各种条件。


    [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 [/sql]     
    执行上述语句,然后刷新右侧的数据库,会出现一个新的数据库: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……语法。

    [sql] IF TRUE BEGIN --语句 END ELSE BEGIN --语句 END [/sql]   

    ----------------------------------------------------------
    注①:master 数据库记录 SQL Server 系统的所有系统级信息。 这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。
     
        master数据库中的sysdatabases表中记录了所有的数据库,查询这个表可以确定是否有重名数据库。
     
    注②:注意斜杠方向。反方向的可能会报错:文件激活错误,物理文件名可能不正确


  • 相关阅读:
    UVa 10118 记忆化搜索 Free Candies
    CodeForces 568B DP Symmetric and Transitive
    UVa 11695 树的直径 Flight Planning
    UVa 10934 DP Dropping water balloons
    CodeForces 543D 树形DP Road Improvement
    CodeForces 570E DP Pig and Palindromes
    HDU 5396 区间DP 数学 Expression
    HDU 5402 模拟 构造 Travelling Salesman Problem
    HDU 5399 数学 Too Simple
    CodeForces 567F DP Mausoleum
  • 原文地址:https://www.cnblogs.com/mnight/p/3677630.html
Copyright © 2011-2022 走看看