精华内容
下载资源
问答
  • 尽管你可以对标识列(identity column)的值及其任意值的用处有千条万条理由,但是和你共同工作的一些人会坚持在给定的表格里使用连续...为了解决这个问题,你可以创建一个带有标识列的表格,并用一些数据行来填充它。
  • 一、创建表示设置标识列创建表示0,在需要设置为标识的列后添加auto_increment) creat table example_table( id int primary key auto_increment, name varchar(20) ); insert into example_table(null,'...

    标识列:

    又称为自增长列,可以不用手动的插入值,系统提供默认的序列值。

    一、创建表示设置标识列(创建表示0,在需要设置为标识的列后添加auto_increment)

    creat table example_table(

             id int primary key auto_increment,

             name varchar(20)

    );

    insert into example_table(null,'lily');

    example_table表中的id列即为自增长列。id列每次增长一,若要设置每次插入增长的值可通过set auto_increment_increment=n进行设置为n。

    二、修改表时设置标识列

    语法:alter table example_table modify column id int primary key auto_increment;

    三、修改表时删除标识列

    语法:alter table example_table modify column id int;

     

    事务:

    事务由单独的一个或者多个SQL语句组成,在这个单元中,每个Mysql语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中 某个SQL语句一旦执行失败或者产生错误,整个单元将会回滚。所有收到影响的数据将返回到实物开始以前的状态;如果单元中的所有sql语句均执行成功,则实物将顺利执行。要么都执行要么都不执行。

    事务的ACID属性:

    1.原子性(Atomicity)

    原子性是指事务是一个不可分割的工作单位,事务中的操作要么发生,要么都不发生。

    2.一致性(Consistency)

    事务必须使数据库从一个一致性状态变换到另外一个一致性状态。

    3.隔离性(Isolation)

    事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

    4.持久性(Durability)

    持久性是指一个事务一旦被提交,他对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。

    隐式事务:没有明显的开始和结束,本身就是一条事务可以自动提交,比如insert、update、delete、

    显式事务:具有明显的开始与结束语句,如下。

    #开启事务(必有)

    set autocommit=0;
    start transaction;

    #编写事务(具体的事务)
    update score set final = 95 where studentno='10000';
    update score set final = 19 where studentno='10086';

    #结束事务(commit或者rollback,必有)

    commit;

    事务的隔离级别,mysql有四个隔离级别,orcal有两个隔离级别。

    savepoint,保存点。(与rollback配合使用)

    另:delete和truncate在事务使用时的区别。

    delete作为事务进行处理时,可以使用rollback进行回滚,truncate作为事务进行处理时,不可以使用rollback进行回滚。

     

    视图:

    即是一种虚拟的表,和普通的表一样使用,mysql5.1版本出现的新特性,是通过表动态生成的数据,只保存了sql逻辑,不保存查询结果,是一种临时性的表。

    示例:

     

    创建视图:

    语法:create view 视图名 as 筛选条件;

    视图的作用:重用sql语句;简化复杂的sql操作,不必知道他的查询细节;保护数据,提高安全性。

    修改视图:

    语法:第一种:create or replace view 视图名 as 查询语句;

               第二种:alter view 视图名 as 查询语句;

    删除视图:

    语法:drop view 视图名,视图名...;

    更新视图:

    语法:update 视图名 set 列名=xxx where 筛选条件;

    视图与表的区别:

    视图:语法为:create view,不占用实际的物理空间,只保存了sql逻辑,可使用增删改查,一般不能增删改。

    表:语法为create table,占用实际物理内存,保存了数据,增删改查。

     

     

     

     

     

     

     

     

    展开全文
  • 自动标识列 设计数据表时都会给表ID添加一个标识列,使表按照递增规则增长,故标识列也称为自增列。...创建标识列的语法: ALTEL TABLE TABLE_NAME ADD LIE_NAME INT IDENTITY; ALTEL TABLE 表名_________ADD

    自动标识列

    设计数据表时都会给表ID添加一个标识列,使表按照递增规则增长,故标识列也称为自增列。它的意思是可以不用手动的插入值,系统提供默认的序列值

    (1)标识列不一定要和主键搭配,但是要求是一个key

    (2)一个表最多只有一个标识列

    (3)标识列的类型只能是数值型

    (4)在进行出入操作时,该列得值是由系统统一按规律生成,不允许有空值

    创建标识列的语法:

    ALTEL TABLE TABLE_NAME ADD LIE_NAME INT IDENTITY;
    ALTEL TABLE 表名_________ADD 标识列名__INT IDENTITY;

    索引

    • 索引的优缺点

    优点:
    建立索引的列可以保证行的唯一性,生成唯一的rowId
    索引可以有效缩短数据的检索时间,减少I/O次数
    索引可以加快表与表之间的连接
    为用来排序和分组的字段建立索引可以加快分组和排序

    缺点:
    创建索引和维护索引需要时间成本,这个成本随着数据量的增大而加大
    创建索引和维护索引需要空间成本,每一条索引都需要占据数据库的物理存储空间,数据量越大,占用空间也越大
    会降低表的增删改的效率,因为每次增删改,索引需要进行动态维护

    创建索引语法:
    CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);
    CREATE INDEX 索引名_______ON 表名________(列名____);

    展开全文
  • [数据库]-标识列

    2020-05-09 21:03:40
    # 标识列 /* 又称为自增长列 含义:可以不用手动插入值,系统提供默认的序列值 特点: 1. 标识列必须和键搭配(主键,唯一,外键等...# 创建表时,设置某列为标识列 DROP TABLE IF EXISTS tab_identify; CREATE TA...
    # 标识列
    /*
    又称为自增长列
    含义:可以不用手动插入值,系统提供默认的序列值
    
    特点:
    1. 标识列必须和键搭配(主键,唯一,外键等)
    2. 一个表中只能有一个标识列
    3. 标识列的类型只能是数值型(整型+浮点型)
    */
    
    # 创建表时,设置某列为标识列
    DROP TABLE IF EXISTS tab_identify;
    CREATE TABLE tab_identify(
            id INT PRIMARY KEY AUTO_INCREMENT,
            NAME VARCHAR(20)
    );
    
    TRUNCATE TABLE tab_identify;
    
    INSERT INTO tab_identify VALUES(NULL,'Leslie');
    INSERT INTO tab_identify VALUES(NULL,'Jesie');
    
    
    SELECT * FROM tab_identify;
    
    SET auto_increment_increment=3;  # 设置步长,修改为每次增加3个
    SHOW VARIABLES LIKE '%auto_increment%';  # 查看当前系统步长和起始值
    
    
    # 修改表时设置标识列,起始本质还是修改表的类型
    ALTER TABLE tab_identify MODIFY COLUMN id INT UNIQUE AUTO_INCREMENT;
    展开全文
  • 尽管可以对标识列(identity column)的值及其任意值的用处有千条万条理由,但是和你共同工作的一些人会坚持在给定的表格里使用连续的主...为了解决这个问题,可以创建一个带有标识列的表格,并用一些数据行来填充它。
  • 一、标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列。 该种列具有以下三种特点: 1、列的... 由于以上特点,使得标识列数据库的设计中得到广泛的使用。 二、标识列的组成 创建...

    一、标识列的定义以及特点
      SQL
    Server中的标识列又称标识符列,习惯上又叫自增列。
      该种列具有以下三种特点:
      1、列的数据类型为不带小数的数值类型
      2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值
      3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。
      由于以上特点,使得标识列在数据库的设计中得到广泛的使用。
      二、标识列的组成
      创建一个标识列,通常要指定三个内容:
      1、类型(type)
      在SQL
    Server 2000中,标识列类型必须是数值类型,如下:
      decimal、int、numeric、smallint、bigint
    、tinyint
      其中要注意的是,当选择decimal和numeric时,小数位数必须为零
      另外还要注意每种数据类型所有表示的数值范围
      2、种子(seed)
      是指派给表中第一行的值,默认为1
      3、递增量(increment)
      相邻两个标识值之间的增量,默认为1。
      三、标识列的创建与修改
      标识列的创建与修改,通常在企业管理器和用Transact-SQL语句都可实现,使用企业管理管理器比较简单,请参考SQL
    Server的联机帮助,这里只讨论使用Transact-SQL的方法
      1、创建表时指定标识列
      标识列可用 IDENTITY
    属性建立,因此在SQL
    Server中,又称标识列为具有IDENTITY属性的列或IDENTITY列。
      下面的例子创建一个包含名为ID,类型为int,种子为1,递增量为1的标识列
      CREATE
    TABLE T_test
      (ID int IDENTITY(1,1),
      Name
    varchar(50)
      )
      2、在现有表中添加标识列
      下面的例子向表T_test中添加一个名为ID,类型为int,种子为1,递增量为1的标识列
      --创建表
      CREATE
    TABLE T_test
      (Name varchar(50)
      )
      --插入数据
      INSERT T_test(Name)
    VALUES(’张三’)
      --增加标识列
      ALTER TABLE T_test
      ADD ID int
    IDENTITY(1,1)
      3、判段一个表是否具有标识列
      可以使用 OBJECTPROPERTY 函数确定一个表是否具有
    IDENTITY(标识)列,用法:
      Select
    OBJECTPROPERTY(OBJECT_ID(’表名’),’TableHasIdentity’)
      如果有,则返回1,否则返回0
      4、判断某列是否是标识列
      可使用
    COLUMNPROPERTY 函数确定 某列是否具有IDENTITY 属性,用法
      SELECT COLUMNPROPERTY(
    OBJECT_ID(’表名’),’列名’,’IsIdentity’)
      如果该列为标识列,则返回1,否则返回0
      5、查询某表标识列的列名
      SQL
    Server中没有现成的函数实现此功能,实现的SQL语句如下
      SELECT COLUMN_NAME FROM
    INFORMATION_SCHEMA.columns
      WHERE TABLE_NAME=’表名’ AND
    COLUMNPROPERTY(
      OBJECT_ID(’表名’),COLUMN_NAME,’IsIdentity’)=1
      6、标识列的引用
      如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替
      例如,若要查询上例中ID等于1的行,
      以下两条查询语句是等价的
      SELECT
    * FROM T_test WHERE IDENTITYCOL=1
      SELECT * FROM T_test WHERE
    ID=1
      7、获取标识列的种子值
      可使用函数IDENT_SEED,用法:
      SELECT IDENT_SEED
    (’表名’)
      8、获取标识列的递增量
      可使用函数IDENT_INCR ,用法:
      SELECT
    IDENT_INCR(’表名’)
      9、获取指定表中最后生成的标识值
      可使用函数IDENT_CURRENT,用法:
      SELECT
    IDENT_CURRENT(’表名’)
      注意事项:当包含标识列的表刚刚创建,为经过任何插入操作时,使用IDENT_CURRENT函数得到的值为标识列的种子值,这一点在开发数据库应用程序的时候尤其应该注意。
      总结一下标识列在复制中的处理方法
      1、快照复制
      在快照复制中,通常无须考虑标识列的属性。
      2、事务复制
      举例:
      发布数据库A,订阅数据库B,出版物为T_test_A,订阅表为T_test_B
      CREATE
    TABLE T_test_A
      (ID int IDENTITY(1,1),
      Name
    varchar(50)
      )
      CREATE TABLE T_test_B
      (ID int
    IDENTITY(1,1),
      Name
    varchar(50)
      )
      在这种情况下,复制代理将无法将新行复制到库B,因为列ID是标识列,不能给标识列显示提供值,复制失败。
      这时,需要为标识列设置NOT
    FOR REPLICATION 选项。这样,当复制代理程序用任何登录连接到库B上的表T_test时,该表上的所有 NOT
      FOR
    REPLICATION
    选项将被激活,就可以显式插入ID列。
      这里分两种情况:
      1、库B的T_test表不会被用户(或应用程序)更新
      最简单的情况是:如果库B的T_test不会被用户(或应用程序)更新,那建议去掉ID列的标识属性,只采用简单int类型即可。
      2、库B的T_test表是会被其他用户(或应用程序)更新
      这种情况下,两个T_test表的ID列就会发生冲突,举例:
      在库A中执行如下语句:
      INSERT
    T_test_A(Name) VALUES(’Tom’)(假设ID列为1)
      在库B中执行如下语句:
      INSERT
    T_test_B(Name)
    VALUES(’Pip’)(假设ID列为1)
      这样,就会在库A和库B的两个表分别插入一条记录,显然,是两条不同的记录。
      然而事情还没有结束,待到预先设定的复制时间,复制代理试图把记录"1
    TOM"插入到库B中的T_test表,但库B的T_test_B表已经存在
      ID为1的列,插入不会成功,通过复制监视器,我们会发现复制失败了。
      解决以上问题的方法有:
      (1)为发布方和订阅方的标识列指定不同范围的值,如上例可修改为:
      --确保该表记录不会超过10000000
      CREATE
    TABLE T_test_A
      (ID int IDENTITY(1,1),
      Name
    varchar(50)
      )
      CREATE TABLE T_test_B
      (ID int
    IDENTITY(10000000,1),
      Name varchar(50)
      )
      (2)使发布方和订阅方的标识列的值不会重复,

      --使用奇数值
      CREATE TABLE T_test_A
      (ID int IDENTITY(1,2),
      Name
    varchar(50)
      )
      --使用偶数值
      CREATE TABLE T_test_B
      (ID int
    IDENTITY(2,2),
      Name
    varchar(50)
      )
      这种办法可推广,当订阅方和发布方有四处时,标识列属性的定义分别如下
      (1,4),(2,4),(3,4),(4,4)
      3、合并复制
      采用事务复制中解决方法,只要使发布表和订阅表标识列的值不重复既可。

    转载于:https://www.cnblogs.com/gxbk629/p/3651129.html

    展开全文
  • #标识列 /* 又称自增长列 含义:可以不用手动的插入值,系统提供默认的序列值 特点: 1、标识列不必须和主键搭配,但一定要和...#一、创建表时设置标识列 DROP TABLE IF EXISTS tab_identity; CREATE TABLE tab_iden
  • 一、创建表时设置标识列 创建一个表: CREATE TABLE tab_identity( id INT PRIMARY KEY, #主键 NAME VARCHAER(20), ); 插入一条数据: INSERT INTO tab_identity VALUE(1,'qian'); 如果想要每次...
  • 数据库创建自增

    2011-11-04 12:36:48
    创建自增,首先自增的类型是整形变量,可以是主键设置自增有两种,可以用点击的方法,选中属性——》在下面的属性中找到是标识(is identity),选择是,在下面并设定标识增量,标识种子,另外,还可以在T-sql...
  • sql server基础语法 创建数据库 创建

    千次阅读 多人点赞 2019-03-23 23:18:08
    在现有表中添加标识列4.创建外键5.添加外键6.约束7.创建局部临时表8.创建全局临时表9.创建具有check约束字段的数据库表10.创建含有计算字段的数据库表11.创建含有自动编号字段的数据库表12.创建含有排序字段和默认值...
  • 一.标识列 标识列有点类似前文的约束。 又称为自增长列 含义:可以不用手动的插入值,系统提供默认的序列值 使用方法在插入的列后面 添加关键字 AUTO_...#1、创建表时设置标识列 在插入的列后面 添加关键字 AUTO_
  • 一、标识列的定义以及特点 ...由于以上特点,使得标识列数据库的设计中得到广泛的使用。 二、标识列的组成 创建一个标识列,通常要指定三个内容: 1、类型(type) 在SQL Server 2000中,标识列类型...
  • 原文:使用sql语句创建修改SQL Server标识列(即自动增长列)一、标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列。该种列具有以下三种特点:1、列的数据类型为不带小数的数值类型2、在进行...
  • 案例实操2.3 修改表时删除约束03 案例实操标识列01 基本概念02 特点:03 案例演示3.1 创建表时设置标识列3.2 查询自增长的值3.3 修改步长3.4 需要修改起始值 常见约束 01 基本概念 1.1 含义: 一种
  • 使用sql语句创建修改SQL Server标识列

    千次阅读 2014-02-11 13:45:19
    一、标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列。 该种列具有以下三种特点: 1、列的数据类型为不带小数的...由于以上特点,使得标识列数据库的设计中得到广泛的使用。 二、标识
  • 标识列

    2012-05-01 22:15:00
    一、标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列。 该种列具有以下三种特点: 1、列的数据类型为不带小数的数值类型 2、在进行插入(Insert)操作时... 二、标识列的组成 创建一个标识列...
  • SQL Server标识列

    千次阅读 2019-06-22 21:57:35
    [转] 一、标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列。该种列具有以下三种特点:1、列的数据类型为不带小数的数值类型2、在进行插入...二、标识列的组成创建一个标识列,通常要指定...
  • SqlServer标识列

    2013-04-02 15:48:29
    一、标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列。该种列具有以下三种特点:1、列的数据类型为不带小数的数值类型2、在进行...二、标识列的组成创建一个标识列,通常要指定三个内容:...
  • SQL标识列初探一、标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列。该种列具有以下三种特点:1、列的数据类型为不带小数的数值类型2、在进行插入...二、标识列的组成创建一个标识列,通
  • SQL标识列初探

    2009-05-24 10:44:00
    SQL标识列初探一、标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列。该种列具有以下三种特点:1、列的数据类型为不带小数的数值类型2、在进行插入...二、标识列的组成创建一个标识列,通常

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 996
精华内容 398
热门标签
关键字:

数据库创建标识列