• T-SQL之数据库操作


    对数据的简介:

            数据库是数据存储的仓库,用户在利用数据库管理系统提供的功能时,首先必须将数据保存到用户的数据库中。数据库中存储的对象主要有:表,索引和视图。(SQL Server支持在一个实例中创建多个数据库,且这些数据库在物理和逻辑上都是相互独立的)。

    数据库文件(数据文件和日志文件):

        1)数据文件可以有多个,但是主数据文件只能有一个;
        2)日志文件也可以声明多个;
        3)数据库文件的属性(文件名及其位置,初始大小,增长方式,最大大小) 。


    数据库的分类:

    在SQL Server中数据库可以分为两类:系统数据库和用户数据库。(以下只简单的介绍一下系统数据库)
    - >系统数据库(master,msdb,model,tempdb)
       master:是SQL Server中最重要的数据库,用于记录系统级信息(该数据库损坏则SQL Server将无法正常工作);
       msdb:保存关于调度报警,作业,操作员等信息;
       model:用户数据库模板,当用户创建一个数据库时,会将model数据库的全部内容复制到新建数据库中;
       tempdb:是临时数据库,用于存储用户创建的临时表(查询操作的表即存储其中),用户声明的变量以及用户定义的游标数据等。

    T-SQL之数据库操作

    T-SQL之数据库创建

    创建数据库主要使用CREATE DATABASE语句

    1,创建数据库的语法:

    1)、创建数据库的语法:
    CREATE DATABASE <Db_name>
    [ON [PRIMARY]
    (
    	[NAME = <logical_file_name>,]
    	FILENAME = <file_name>
    	[, SIZE = <size>]
    	[, MAXSIZE = <max_size>]
    	[, FILEGROWTH = <growth_size|percentage>]
    )]
    [LOG ON
    (
    	[NAME = <logical_file_name>,]
    	FILENAME = <file_name>
    	[, SIZE = <size>]
    	[, MAXSIZE = <max_size>]
    	[, FILEGROWTH = <growth_size|percentage>]
    )]
    [ COLLATE <collation_name> ]
    [ FOR ATTACH [WITH <service_broker>]| FOR ATTACH_REBUILD_LOG| WITH DB_CHAINING {ON|OFF } | TRUSTWORTHY { ON|OFF }]
    [AS SNAPSHOT OF <source_database_name>]
    [;]
    
    
    --语法参数说明
    --1、CREATE DATABASE <Db_name>:为创建数据库的主要语法,其中Db_name为数据库的名称;
    --2、PRIMARY:标识该mdf文件为主文件(系统默认第一个为主数据文件);
    --3、NAME:文件的逻辑名称(在同一个数据库中该值必须唯一);
    --4、FILENAME:文件的具体存储路径(必须完整且存在);
    --5、SIZE:设置数据文件的初始大小(单位:M、G等);
    --6、MAXSIZE:设置数据文件的最大容量(单位:M、G等);
    --7、FILEGROWTH:设置数据文件的增长量(可以为具体的存储量亦可以为一个百分数);
    --8、COLLATE:可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影;(可以不加默认为系统的排序规则);
    --9、FOR ATTACH:将已存在的数据库文件附加到当前服务器上;
    --10、WITH DB_CHAINING {ON|OFF }:如果该选项为ON,则跨数据库的所有权链有效;否则全链无效;
    --11、TRUSTWORTHY { ON|OFF }:控制访问的安全性(默认情况下为关闭状态);
    --12、AS SNAPSHOT OF <source_database_name>:指定要创建的数据库为source_database_name指定的源数据库的数据库快照(快照和源数据库必须位于同一实例中)。

    2,创建数据库的示例

    --创建数据库(CREATE DATABASE语句)
    
    
    --1)创建系统默认的数据库
    CREATE DATABASE Demo
    GO
    --代码说明:
    --该语句为创建数据库的最简单形式,所有的参数都为系统默认(数据库文件存储在默认位置)
    
    
    --2)创建指定的数据库(单数据库、但事务日志)
    CREATE DATABASE Demo
    ON PRIMARY                 --PRIMARY指主数据文件(为系统的默认值,可以省略)
    (						--在这里设置主数据文件mdf                        
    	NAME='Demo',								 --主数据文件的逻辑名称
    	FILENAME='F:sqlDemo.mdf',					 --文件的具体存储路径(路径必须完整存在)
    	SIZE=3MB,								     --设置文件的初始大小
    	MAXSIZE=100MB,								 --设置文件最大容量      UNLIMITED为不限制大小
      --filegrowth=1MB								 --设置文件的增长量(可以为字节,也可以为百分数)
    	FILEGROWTH=10%
    )
    LOG ON						--创建数据事务(也可以添加多个事务日志)
    (						--在这里设置事务日志文件                
    	NAME='Demo_log',								--日志的名称
    	FILENAME='F:sqlDemo_log.ldf',				--日志的完整路径(路径必须完整存在)
    	SIZE=1MB,									--日志文件的初始大小
    	MAXSIZE=UNLIMITED,							--日志文件的最大容量,不设最大限制
    	FILEGROWTH=1MB								--增长速量为1MB
    )
    GO
    
    
    --3)创建指定的数据库(多数据库、多事务日志)
    CREATE DATABASE DemoTest
    ON PRIMARY                 --PRIMARY指主数据文件(为系统的默认值,可以省略)
    (						--在这里设置主数据文件mdf                        
    	NAME='DemoTest1',							 --主数据文件的逻辑名称
    	FILENAME='F:sqlDemoTest1.mdf',			 --文件的具体存储路径(路径必须完整存在)
    	SIZE=3MB,								     --设置文件的初始大小
    	MAXSIZE=100MB,								 --设置文件最大容量      UNLIMITED为不限制大小
    	FILEGROWTH=10%
    ),										
    (						--在这里设置次数据文件mdf                        
    	NAME='DemoTest2',							 --数据文件的逻辑名称
    	FILENAME='F:sqlDemoTest2.mdf',			 --文件的具体存储路径(路径必须完整存在)
    	SIZE=3MB,								     --设置文件的初始大小
    	MAXSIZE=100MB,								 --设置文件最大容量      UNLIMITED为不限制大小
        FILEGROWTH=1MB								 --设置文件的增长量为1MB
    )
    LOG ON		--创建数据事务
    (						--在这里设置事务日志文件                
    	NAME='DemoTest1_log',							--日志的名称
    	FILENAME='F:sqlDemoTest1_log.ldf',			--日志的完整路径(路径必须完整存在)
    	SIZE=1MB,								    	--日志文件的初始大小
    	MAXSIZE=20MB,						        	--日志文件的最大容量,不设最大限制
    	FILEGROWTH=1MB								    --增长速量为1MB
    ),
    (						--在这里设置事务日志文件                
    	NAME='DemoTest2_log',							--日志的名称
    	FILENAME='F:sqlDemoTest2_log.ldf',			--日志的完整路径(路径必须完整存在)
    	SIZE=1MB,									    --日志文件的初始大小
    	MAXSIZE=UNLIMITED,							    --日志文件的最大容量,不设最大限制
    	FILEGROWTH=10%								    --增长速量为10%
    )
    GO


    T-SQL之数据库修改

    修改数据库主要使用ALTER DATABASE语句

        对于数据库的修改操作常使用到的有:修改数据库中文件的某些属性,向数据库中添加文件和移除数据库中的文件,下面分别从这三个方面进行说明和代码展示。

    1,修改数据库中文件的属性:

    --修改数据库中已经定义好的文件属性
    ALTER DATABASE Test5
    MODIFY FILE						--修改指定数据库中的数据文件
    (
    	NAME = "Test5_data",			--文件的逻辑名称(必须项)
    	SIZE = 10MB,					--修改文件的大小
    	MAXSIZE = 50MB,					--修改文件的最大容量
    	FILEGROWTH = 10%				--修改文件的增长量
    )
    
    
    ALTER DATABASE Test5
    MODIFY FILE						--修改数据库中的日志文件
    (
    	NAME =  "Test5_log",		--日志文件的逻辑名称(必须项)
    	SIZE = 5MB,					--修改日志文件的初始大小
    	MAXSIZE = 10MB,				--修改文件的最大容量
    	FILEGROWTH = 10%			--修改文件的增长量
    )

    2,向已创建的数据中添加文件:

    --向已创建的数据中添加文件
    ALTER DATABASE Test5
    ADD FILE									--向数据库中添加数据文件
    (
    	NAME = "Test5_data1",					--数据文件的逻辑名称
    	FILENAME = "F:sqlTest5_data1.mdf",	--数据文件的物理位置
    	SIZE = 10MB,							--初始容量
    	MAXSIZE = 50MB,							--最大容量
    	FILEGROWTH = 10%						--增长量
    )
    ALTER DATABASE Test5
    ADD LOG FILE								--向数据库中添加日志文件
    (
    	NAME = "Test5_log1",					--日志文件的逻辑名称
    	FILENAME = "F:sqlTest5_log1.mdf",		--日志文件的物理存储位置(完整性)
    	SIZE = 10MB,							--初始容量
    	MAXSIZE = 40MB,							--最大容量
    	FILEGROWTH = 10%						--增长量
    )

    3,移除数据库中的文件

    ALTER DATABASE Test5
    REMOVE FILE Test5_data1			--移除数据库中的数据文件
    GO
    
    
    ALTER DATABASE Test5
    REMOVE FILE Test5_log1			--移除数据库中的日志文件
    GO

    T-SQL之数据库删除

    删除数据常使用DROP DATABASE语句
    示例代码:
    --删除数据库
    DROP DATABASE Test5,Test							--删除数据库(将数据库连根拔起)
    GO
    
    另:
    DELETE FROM Staff							--主要用来删除数据记录(一条数据会生成一行日志)
    GO
    
    
    TRUNCATE TABLE Test5						--清空表中的数据(只产生很少的日志记录)
    GO


  • 相关阅读:
    “automation服务器不能创建对象”的问题的解决方案大全
    转载区分C#中的Abstract函数和Virtual函数
    DOS批处理
    数据库设计范式
    java 内存查看工具
    Java内存溢出详解
    Struts2 循环编辑指定次数
    Selenium 使用
    spring security 获取当前用户信息
    由MyEclipse内存不足谈谈JVM内存
  • 原文地址:https://www.cnblogs.com/z1r0s/p/14284189.html
Copyright © 2020-2023  润新知