SQLserver中的增删改查和数据类型

SQLserver增删查改语句

SQL Server 是一种关系数据库管理系统,用于存储、管理和检索数据。以下是一些基本的 SQL 语句,用于在 SQL Server 中执行增删查改操作:

  1. 插入数据(Insert)

    • 插入完整行:

      INSERT INTO 表名 (列1, 列2, 列3, ...)
      VALUES (值1, 值2, 值3, ...);

    • 插入多行:

      INSERT INTO 表名 (列1, 列2, 列3, ...)
      VALUES 
      (值1a, 值2a, 值3a, ...),
      (值1b, 值2b, 值3b, ...),
      (值1c, 值2c, 值3c, ...);

  2. 查询数据(Select)

    • 选择所有列:

      SELECT * FROM 表名;

    • 选择特定列:

      SELECT 列1, 列2 FROM 表名;

    • 条件查询:

      SELECT * FROM 表名 WHERE 条件;

  3. 更新数据(Update)

    • 更新符合条件的行:

      UPDATE 表名
      SET 列1 = 值1, 列2 = 值2
      WHERE 条件;

  4. 删除数据(Delete)

    • 删除符合条件的行:

      DELETE FROM 表名 WHERE 条件;

  5. 创建表(Create Table)

    • 创建新表:

      CREATE TABLE 表名 (
        列1 数据类型,
        列2 数据类型,
        ...
      );

  6. 修改表结构(Alter Table)

    • 添加新列:

      ALTER TABLE 表名
      ADD 新列名 数据类型;

    • 删除列:

      ALTER TABLE 表名
      DROP COLUMN 列名;

  7. 删除表(Drop Table)

    • 删除表:

      DROP TABLE 表名;

  8. 使用事务(Transaction)

    • 开始事务:

      BEGIN TRANSACTION;

    • 提交事务:

      COMMIT TRANSACTION;

    • 回滚事务:

      ROLLBACK TRANSACTION;       

SQLserver的数据类型

SQL Server 提供了多种数据类型,用于存储不同类型的数据。以下是一些常见的 SQL Server 数据类型:

  1. 数值数据类型

    • BIT:布尔值(0 或 1)。

    • TINYINT:8位无符号整数,范围从 0 到 255。

    • SMALLINT:16位整数,范围从 -32,768 到 32,767。

    • INT:32位整数,范围从 -2^31 到 2^31-1。

    • BIGINT:64位整数,范围从 -2^63 到 2^63-1。

    • DECIMALNUMERIC:固定精度和标度的数值数据类型。(128位)

    • FLOATREAL:浮点数。

    • SMALLMONEY:小货币值,范围从 -214,748.3648 到 214,748.3647。

    • MONEY:货币值,范围从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807。

  2. 日期和时间数据类型

    • DATE:固定日期格式(YYYY-MM-DD)。

    • TIME:时间值,精度为 100 纳秒。

    • DATETIME:日期和时间值,精度为 3.33 微秒。

    • DATETIME2:日期和时间值,支持更高的精度。

    • DATETIMEOFFSET:日期和时间值,带有时区偏移量。

  3. 字符数据类型

    • CHAR:固定长度的非 Unicode 字符数据。

    • VARCHAR:可变长度的非 Unicode 字符数据。

    • TEXT:大量非 Unicode 字符数据。

    • NCHAR:固定长度的 Unicode 字符数据。

    • NVARCHAR:可变长度的 Unicode 字符数据。

    • NTEXT:大量 Unicode 字符数据。

  4. 二进制数据类型

    • BINARY:固定长度的二进制数据。

    • VARBINARY:可变长度的二进制数据。

    • IMAGE:大量二进制数据。

  5. 其他数据类型

    • CURSOR:存储游标。

    • HIERARCHYID:用于层次结构数据。

    • SQL_VARIANT:可存储多种类型的值。

    • UNIQUEIDENTIFIER:全局唯一标识符(GUID)。

    • XML:存储 XML 数据。

  6. 大型对象数据类型(LOB)

    • VARCHAR(MAX):最大长度为 2^31-1 字符的可变长度非 Unicode 字符数据。

    • NVARCHAR(MAX):最大长度为 2^31-1 字符的可变长度 Unicode 字符数据。

    • VARBINARY(MAX):最大长度为 2^31-1 字节的可变长度二进制数据。

    • TEXTNTEXTIMAGE 类型在 SQL Server 2005 之后被 VARCHAR(MAX)NVARCHAR(MAX)VARBINARY(MAX) 所取代,但仍然被支持。

  7. 空间数据类型

    • GEOGRAPHYGEOMETRY:用于存储空间数据。

  8. 表值参数

    • 允许将表作为参数传递给存储过程。

SQLserver中的多表联查

在 SQL Server 中,多表联查(也称为多表连接或 JOIN 操作)是一种将来自两个或多个表的数据组合在一起的操作。以下是 SQL Server 支持的几种主要的 JOIN 类型:

  1. 内连接(INNER JOIN)

    • 只返回两个表中连接条件相匹配的行。

    SELECT column1, column2
    FROM table1
    INNER JOIN table2
    ON table1.common_column = table2.common_column;

  2. 左外连接(LEFT OUTER JOIN)

    • 返回左表(table1)的所有行,以及右表(table2)中连接条件相匹配的行。如果右表中没有匹配的行,则结果为 NULL。

    SELECT column1, column2
    FROM table1
    LEFT OUTER JOIN table2
    ON table1.common_column = table2.common_column;

  3. 右外连接(RIGHT OUTER JOIN)

    • 返回右表(table2)的所有行,以及左表(table1)中连接条件相匹配的行。如果左表中没有匹配的行,则结果为 NULL。

    SELECT column1, column2
    FROM table1
    RIGHT OUTER JOIN table2
    ON table1.common_column = table2.common_column;

  4. 全外连接(FULL OUTER JOIN)

    • 返回左表和右表中所有的行。如果某一边没有匹配的行,则该边的结果为 NULL。注意:SQL Server 不直接支持 FULL OUTER JOIN,但可以通过结合 LEFT OUTER JOIN 和 RIGHT OUTER JOIN 实现。

    SELECT table1.column1, table2.column2
    FROM table1
    LEFT OUTER JOIN table2
    ON table1.common_column = table2.common_column
    UNION ALL
    SELECT table2.column2, table1.column1
    FROM table1
    RIGHT OUTER JOIN table2
    ON table1.common_column = table2.common_column;

  5. 交叉连接(CROSS JOIN)

    • 返回两个表的笛卡尔积,即每个表中的每一行与另一个表中的每一行组合。

    SELECT column1, column2
    FROM table1
    CROSS JOIN table2;

  6. 自连接(SELF JOIN)

    • 表与其自身进行连接。通常用于查询表中的相关数据。

    SELECT a.column1, b.column2
    FROM table1 AS a
    INNER JOIN table1 AS b
    ON a.common_column = b.another_common_column;

  7. 使用 APPLY 运算符

    • 用于将表值函数或子查询的结果与外部表进行连接。

    SELECT a.column1, b.*
    FROM table1 AS a
    OUTER APPLY (SELECT * FROM table2 WHERE condition) AS b;

  8. 使用 JOIN ... WITH (index hint)

    • 在 JOIN 操作中指定索引提示,以优化查询性能。

    SELECT column1, column2
    FROM table1
    INNER JOIN table2 WITH (INDEX (index_name))
    ON table1.common_column = table2.common_column;

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值