zoukankan      html  css  js  c++  java
  • sqlserver 用SQL语句操作数据

    1.SQL语句
    Structured Query Language:结构化查询语言
    作用:对SQL Server执行所有的操作都可以;程序中的增删改查

    2.SQL与T-SQL是什么关系?
    T-SQL(Transcat-SQL)是SQL的增强版
    对功能进行了扩充:如变量说明、流程控制、功能函数

    3.SQL的组成
    (1)DML(数据操作语言)
    插入、删除和修改数据库中的数据
    INSERT、DELETE 、UPDATE 等
    (2)DCL(数据控制语言)
    用来控制存取许可、存取权限等
    GRANT、REVOKE 等
    (3)DQL(数据查询语言)
    用来查询数据库中的数据
    SELECT 等
    (4)DDL(数据定义语言)
    用来建立数据库、数据库对象和定义表的列
    CREATE TABLE 、DROP TABLE 等

    4.SQL中的运算符
    算术运算符
    一种符号,它是用来进行列间或者变量之间的比较和数学运算
    包括算术运算符、赋值运算符、比较运算符、逻辑运算符
    (1)算术运算符
    运算符 说明
    + 加运算,求两个数或表达式相加的和,如6+8
    - 减运算,求两个数或表达式相减的差 
    * 乘运算,求两个数或表达式相乘的积 
    / 除运算,求两个数或表达式相除的商,如5/3的值为1
    % 取模运算,求两个数或表达式相除的余数,如:5%3的值为2 
    (2)赋值运算符
    运算符 说明
    = 把一个数或变量或表达式赋值给另一变量,如:Name='王华' 
    (3)比较运算符
    运算符 说明
    = 等于,例如:age=23 
    > 大于,例如:price>100 
    < 小于 
    <> 不等于
    >= 大于等于
    <= 小于等于
    != 不等于(非SQL-92标准 )
    (4)逻辑运算符
    运算符 说明
    AND 当且仅当两个布尔表达式都为true时,返回TRUE。
    OR 当且仅当两个布尔表达式都为false,返回FALSE。
    NOT 布尔表达式的值取反 

    5.使用INSERT语句插入
              插入数据行

               INSERT [INTO] 表名 [(列名)]
               VALUES (值列表)
               插入多行数据:
               第一种:通过INSERT SELECT语句将现有表中的数据添加到已存在的表中
               语法: INSERT INTO <表名>(列名)
               SELECT <列名>
              FROM <源表名>
               第二种:通过SELECT INTO语句将现有表中的数据添加到新表中
              语法: SELECT (列名)
              INTO <表名>
              FROM <源表名>
              注意:该语句只能执行一次
             第三种:通过UNION关键字合并数据进行插入
             语法: INSERT INTO <表名>(列名)
             SELECT <列名> UNION
             SELECT <列名> UNION

    6.使用DELETE语句删除数据行
              语法:DELETE [FROM] 表名 [WHERE <删除条件>]

    7.使用TRUNCATE语句删除数据行
    语法:TRUNCATE TABLE 表名
    注意:1.表结构、列、约束等不被改动
               2.不能用于有外键约束引用的表
               3.标识列重新开始编号
               4.尽量少用,因为它删除的数据不能恢复

    8.使用UPDATE语句更新数据行
    语法:UPDATE 表名 SET 列名 = 更新值
                [WHERE 更新条件]
    注意:1、更新多列数据使用逗号隔开
               2、勿忘条件限制,以防有效数据的丢失

    9.插入数据行注意事项
    (1)每次插入一行数据,不能只插入半行或者几列数据,插入的数据是否有效将按照整行的完整性的要求来检验
    (2)每个数据值的数据类型、精度和小数位数必须与相应的列匹配
    (3)不能为标识列指定值
    (4)如果在设计表的时候就指定了某列不允许为空,则必须插入数据
    (5)插入的数据项,要求符合检查约束的要求
    (6)具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值

    10.delete和truncate的区别
    (1)delete每删除一行,都会将操作过程记录在事务日志文件中,而truncate不会,所以truncate删除所有记录快,但删除之后无法用事务日志文件恢复
    (2)delete删除记录时,会先将表中的各行锁定,才能删除,而truncate只锁定表和页
    (3)用truncate删除完记录后,自动增长的标识列会重新开始计数,而用delete删除后,还会从上次最后记录为开始点继续计数
    (4)如果要删除记录的表是其他表外键指向的表,那么不能用truncate来删除,只能用delete语句删除
    (5)truncate语句不能删除参与索引视图的表,而delete语句可以

    11.       null:本身为空值
               “ ”:有一个值,值为空

    12.开发过程中删除是修改标记的操作

    13."<>"与”!=”区别
    功能相同,标准不同
    ANSI标准中是用"<>",但为了跟大部分数据库保持一致,数据库中一般都提供了“!=”和"<>"两种来表示不等于
    两种都支持:

    MySQL5.1: 支持 != 和 <>
    PostgreSQL 8.3: 支持 != 和 <>
    SQLite: 支持 != 和 <>
    Oracle 10g: 支持 != 和 <>
    Microsoft SQL Server 2000/2005/2008: 支持 != 和 <>
    IBM Informix Dynamic Server 10: 支持 != 和 <>
    InterBase/Firebird: 支持 != 和 <>
    最后两个只支持ANSI标准的数据库:
    IBM DB2 UDB 9.5:仅支持 <>
    Apache Derby:仅支持 <>

  • 相关阅读:
    10-18 noip提高组模拟赛(codecomb)T2贪心
    vj1011:记忆化搜索
    vj1010:高精乘+细心模拟
    10-18 noip提高组模拟赛(codecomb)T1倍增[未填]
    CODEFORCES ROUND #273 DIV2
    Unkown2
    2014.first[未填]
    Unknown
    历年noip复赛试题整合
    快速幂(模板)
  • 原文地址:https://www.cnblogs.com/zjx-959/p/13044351.html
Copyright © 2011-2022 走看看