首页 > 数据库 >SQLserver中的增删改查和数据类型

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

时间:2024-08-21 15:52:11浏览次数:14  
标签:table2 table1 JOIN column SQLserver 改查 common 数据类型

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;

标签:table2,table1,JOIN,column,SQLserver,改查,common,数据类型
From: https://blog.csdn.net/weixin_64532720/article/details/141345714

相关文章

  • sqlserver left join 后用 on 还是 where?
    昨天写SQLServer数据库上写SQL语句时,我原本想通过执行AleftjoinBon...and...的操作,将查询结果中的两条记录合并成一条,奈何发现结果中依然有两条记录。回顾了一下语法知识,意识到joinon...and...的语句并不会对结果集的记录条数进行过滤。它的主要作用是,根据and后......
  • TypeHandler时间数据类型的转换
    说明在Java开发中,TypeHandler是MyBatis框架中的一个核心组件,用于实现数据库与Java类型之间的相互转换。它允许开发人员自定义类型处理器,以满足特定的业务需求。TypeHandler的作用是在MyBatis执行SQL查询或更新操作时,将数据库中的列值转换为Java对象,并在将Java对......
  • 【数据结构与算法第一章】编程基础:变量与数据类型、指针、结构体、数组与链表、程序结
    目录【数据结构与算法第一章】编程基础1.1变量与数据类型1.2指针1.3结构体1.4数组和链表1.5程序结构1.6函数中参数的传递1.7C语言中运算符的含义【数据结构与算法第一章】编程基础1.1变量与数据类型变量:    ①在C语言中,所有变量必须先声明后使用......
  • 浅谈数据类型(C语言)
            前言     本篇是我学术系列第一篇讲解,如有纰漏,还请多多指教。本篇将在C语言背景下,VS2019环境下,简要说明C语言数据类型。        数据类型的种类     干货直接上:C语言数据类型定义方式符号类型关键字内置类型有符号(signe......
  • mobx模版(增删改查)
     /**@Author:Simoon.jia*@Date:2024-04-0911:06:16*@LastEditors:Simoon.jia*@LastEditTime:2024-07-2216:59:57*@Description:描述*/import{observable,action,runInAction}from'mobx';import{fetchDictionaryList,fetchd......
  • SpringBoot系列:使用原生JDBC实现对数据库的增删改查
    application.ymlspring:datasource:username:rootpassword:123456url:jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name:com.mysql.cj.jdbc.DriverApplicationTest......
  • Redis的十大数据类型的常用命令(上)
    目录1.key的操作命令2.String的常用命令案例一:dy点赞案例二:文章的喜欢数3.List的常用命令案例:公众号订阅的消息4.Hash的常用命令案例:早期购物车设计5.Set的常用命令案例一:抽奖小程序案例二:朋友圈点赞案例三:朋友圈点赞6.Zset的常用集合(sortedset)案例一:根据商品......
  • TypeScript学习之旅--对象数据类型
    1、对象类型声明1leta:{name:string,age:number};2a={name:"John",age:30};如果想设定多个参数且不确定参数类型,可用any,类似于参数列表,不限制参数个数和类型1leta:{name:string,age:number,[pro:string]:any};2a={name:"John",age:30,pro1:100,pro2:"Hello"};......
  • TypeScript学习之旅--数据类型
    TypeScript为JavaScript的超集(ECMAScript6),这个语言添加了基于类的面向对象编程。TypeScript作为JavaScript很大的一个语法糖,本质上是类似于css的less、sass,都是为了易于维护、开发,最后还是编译成JavaScript。Types所有类型都是any类型的子类型,其他类型被分成元类型(pri......
  • Abp vNext+SqlServer+MySqlServer
    目前项目使用的是ABPvNext版本8.2.0加上SQLServer。由于业务需求,我们需要与MySQL数据库进行对接,这意味着项目的主要功能将继续使用SQLServer,而部分特定功能将需要与MySQL数据库交互。步骤1.在项目“XXX.XXX.EntityFrameworkCore”中安装MySql包dotnetaddpackag......