【SQL】用T-SQL 语法操作Sql Server数据库

目录

1.创建数据库

        1.普通创建

        2.指定文件路径和大小创建

        3.删除数据库

2.创建表

        2.1.加标识和约束 

3.操作表

        3.1.判断是否存在后给表加字段

        3.2.添加字段

        3.3.修改字段

        3.4.删除字段

        3.5.删除表/数据

        3.6.创建索引

        3.7. 为字段添加说明


1.创建数据库

        1.普通创建

                查询系统视图是否存在数据库后创建。

IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'MyDatabase')
BEGIN
    CREATE DATABASE MyDatabase;
END

        2.指定文件路径和大小创建

IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'MyDatabase')
BEGIN
    CREATE DATABASE MyDatabase
    ON PRIMARY
    (
        NAME = MyDatabase_Data,
        FILENAME = 'C:\SQLData\MyDatabase.mdf',
        SIZE = 10MB,
        MAXSIZE = 50MB,
        FILEGROWTH = 5MB
    )
    LOG ON
    (
        NAME = MyDatabase_Log,
        FILENAME = 'C:\SQLLogs\MyDatabase.ldf',
        SIZE = 5MB,
        MAXSIZE = 25MB,
        FILEGROWTH = 1MB
    );
END

       解释语法行为:

  •         ON PRIMARY:指定主文件组。
  •         NAME:逻辑文件名。
  •         FILENAME:物理文件名和路径。
  •         SIZE:初始大小。
  •         MAXSIZE:文件的最大大小。
  •         FILEGROWTH:文件增长的增量。
  •         LOG ON:指定日志文件的属性。

        3.删除数据库

--IF EXISTS 可选语法  作用是防止在数据库不存在时产生错误
DROP DATABASE IF EXISTS MyDatabase;

2.创建表

        判断是否存在后创建。

--指定数据库
USE MyDatabase;
GO
--判断是否存在后新建表
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'UserTest') AND type in (N'U'))
BEGIN
    CREATE TABLE UserTest (
        id NVARCHAR(50) PRIMARY KEY,
	    UserId NVARCHAR(50),
	    Pwd NVARCHAR(50),
	    userName NVARCHAR(50),
	    age INT,
	    IsDeleted BIT,
	    Stutes BIT,
	    CreateUserId NVARCHAR(50),
	    CreateUserName NVARCHAR(50),
	    CreateDate DATETIME,
	    ModifyUserId NVARCHAR(50),
	    ModifyUserName NVARCHAR(50),
	    ModifyDate DATETIME,
    );
END

        2.1.加标识和约束 

  •         自增标识 IDENTITY(1,1)
  •         主键标识 PRIMARY KEY
  •         唯一标识 UNIQUE
  •         不可为空 NOT NULL
  •         默认值 DEFAULT 1     如  hire_date DATE DEFAULT GETDATE()
  •         定义条件 CHECK        如  salary DECIMAL(10, 2) CHECK (salary > 0)

3.操作表

        3.1.判断是否存在后给表加字段

-- 使用 INFORMATION_SCHEMA.COLUMNS 视图查看表字段是否存在
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS  
               WHERE TABLE_NAME = 'UserTest' 
                 AND COLUMN_NAME = 'CloTest')
BEGIN
    ALTER TABLE UserTest
    ADD CloTest VARCHAR(20);
END

-- 使用 sys.columns 视图查看表字段是否存在
IF NOT EXISTS (SELECT * FROM sys.columns 
               WHERE object_id = OBJECT_ID(N'UserTest') 
                 AND name = 'CloTest')
BEGIN
    ALTER TABLE UserTest
    ADD CloTest VARCHAR(20);
END

        3.2.添加字段

--添加字段
ALTER TABLE UserTest
ADD CloTest NVARCHAR(50);

        3.3.修改字段

--修改字段
EXEC sp_RENAME 'UserTest.CloTest', 'CloTestaa';

        3.4.删除字段

--删除字段
ALTER TABLE UserTest
DROP COLUMN CloTest;

        3.5.删除表/数据

--删除表数据
TRUNCATE TABLE UserTest ;

--删除表
DROP TABLE UserTest ;

        3.6.创建索引

--为表创建索引以提高查询性能
CREATE INDEX idx_last_name ON UserTest (userName);

        3.7. 为字段添加说明

                可以给每个字段加中文说明其作用

EXEC sp_addextendedproperty 
    @name = N'MS_Description', 
    @value = N'说明内容',
    @level0type = N'Schema', @level0name = N'dbo',
    @level1type = N'Table',  @level1name = N'需要加说明的表名',
    @level2type = N'Column', @level2name = N'需要加说明的列名';

        说明:

  • @name: 指定要添加的扩展属性的名称。对于描述或注释,通常使用 N'MS_Description'。
  • @value: 指定扩展属性的值,即你要添加的描述或注释内容。
  • @level0type: 指定对象的第一级类型,通常是架构(Schema)。常见的值有 N'Schema'。
  • @level0name: 指定第一级对象的名称,通常是架构的名称。默认情况下是 N'dbo'。
  • @level1type: 指定对象的第二级类型,通常是表(Table)或视图(View)。常见的值有 N'Table'。
  • @level1name: 指定第二级对象的名称,即表或视图的名称。
  • @level2type: 指定对象的第三级类型,通常是列(Column)。常见的值有 N'Column'。
  • @level2name: 指定第三级对象的名称,即列的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值