精华内容
下载资源
问答
  • int和integer的区别,实际应用中使用int还是integer?
    2020-09-08 11:07:42
    • int 是基本数据类型,integer是包装数据类型;
    • 在实际应用中,如果你的字段需要设置为null,比如有一个字段是工商银行卡的余额,如果要求没有工商银行的卡就需要把余额设置为null,有银行卡但没钱设置为0,这个时候用integer类型;如果没有工商银行的卡和余额为0都设置为0,用int就可以。主要还是看需求;
    • 如果你的业务需求必须使用int,但还是要区分没有银行卡和有银行卡但余额为0,那么只需要设置字段的值为-1时,代表没有银行卡,字段值为0时,余额为0就可以了。
    更多相关内容
  • mysql多字段唯一约束

    2021-03-14 13:56:56
    具体设置多列为唯一约束的语句是:UNIQUE KEY (,...,)CREATE TABLE `t_praise` ( `id` int(12) unsigned NOT NULL AUTO_INCREMENT, `comment_id` int(12) NOT NULL, `user_id` int(12) NOT NULL, KEY `FK_t_praise_...

    MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

    00f04d11b925f8cc0e266d67ca27837f.png

    在创建表时设置唯一约束

    在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,语法规则如下: UNIQUE

    创建数据表 tb_dept2,指定部门的名称唯一,输入的 SQL 语句和运行结果如下所示。mysql> CREATE TABLE tb_dept2

    -> (

    -> id INT(11) PRIMARY KEY,

    -> name VARCHAR(22) UNIQUE,

    -> location VARCHAR(50)

    -> );

    Query OK, 0 rows affected (0.37 sec)

    mysql> DESC tb_dept2;

    +----------+-------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +----------+-------------+------+-----+---------+-------+

    | id | int(11) | NO | PRI | NULL | |

    | name | varchar(40) | YES | UNI | NULL | |

    | location | varchar(50) | YES | | NULL | |

    +----------+-------------+------+-----+---------+-------+

    3 rows in set (0.08 sec)

    提示:UNIQUE 和 PRIMARY KEY 的区别:一个表可以有多个字段声明为 UNIQUE,但只能有一个 PRIMARY KEY 声明;声明为 PRIMAY KEY 的列不允许有空值,但是声明为 UNIQUE 的字段允许空值的存在。

    在修改表时添加唯一约束

    在修改表时添加唯一约束的语法格式为:ALTER TABLE ADD CONSTRAINT UNIQUE();

    修改数据表 tb_dept1,指定部门的名称唯一,输入的 SQL 语句和运行结果如下所示。mysql> ALTER TABLE tb_dept1

    -> ADD CONSTRAINT unique_name UNIQUE(name);

    Query OK, 0 rows affected (0.63 sec)

    Records: 0 Duplicates: 0 Warnings: 0

    mysql> DESC tb_dept1;

    +----------+-------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +----------+-------------+------+-----+---------+-------+

    | id | int(11) | NO | PRI | NULL | |

    | name | varchar(22) | NO | UNI | NULL | |

    | location | varchar(50) | YES | | NULL | |

    +----------+-------------+------+-----+---------+-------+

    3 rows in set (0.00 sec)

    假设有一个需求是用户给评论点赞,数据库设计是三张表,用户表t_user,评论表t_comment,点赞表t_praise,其中点赞表中有两个外键分别是user_id和comment_id,分别关联用户表的用户id和评论表的评论id,然后规定一个用户只能给同一条评论点赞一次,有一种实现方式就是在插入点赞表之前,先通过user_id和comment_id查询是否有点赞记录,如果没有的话,再执行插入操作,否则返回您已经点过赞了.这样实现的话就会多一次数据库查询操作.更好的实现是,修改点赞表的user_id和comment_id为唯一约束,即这两列不能同时相同,这样在执行插入操作的话,如果已经点过赞了,数据库会抛出违反了唯一键约束,这样的话,就可以避免多一次数据库查询操作了.具体设置多列为唯一约束的语句是:UNIQUE KEY (,...,)CREATE TABLE `t_praise` (

    `id` int(12) unsigned NOT NULL AUTO_INCREMENT,

    `comment_id` int(12) NOT NULL,

    `user_id` int(12) NOT NULL,

    KEY `FK_t_praise_comment` (`comment_id`),

    KEY `FK_t_praise_user` (`user_id`),

    UNIQUE KEY `UK_praise` (`comment_id`,`user_id`)

    )

    展开全文
  • ARCGIS中字段计算器的使用说明

    千次阅读 2020-12-28 21:35:52
    Field Calculator 工具可以在属性表字段点击右键,选择...1. 基本函数针对数值型:Abs :求绝对值Atn :求反正切值Cos :求余弦值Exp :求反对数值Fix :取整数部分,与 Int 函数有区别的Int :取整数部分Int ...

    Field Calculator 工具可以在属性表字段点击右键,选择“Field Calculator ”,或者Data Management Tools->fields-> Calculate Field打开。

    1. 基本函数

    针对数值型:

    Abs :求绝对值

    Atn :求反正切值

    Cos :求余弦值

    Exp :求反对数值

    Fix :取整数部分,与 Int 函数有区别的

    Int :取整数部分

    Int 和 Fix 函数的区别在于如果 number 参数为负数时,Int 函数返回小于或等于 number 的第一个负

    整数,而 Fix 函数返回大于或等于 number 参数的第一个负整数。 MyNumber=Int(99.8) ' 返回 99。

    MyNumber=Fix(99.2) ' 返回 99。

    MyNumber=Int(‐99.8) ' 返回 ‐100。

    MyNumber=Fix(‐99.8) ' 返回‐99。

    MyNumber=Int(‐99.2) ' 返回 ‐100。

    MyNumber=Fix(‐99.2) ' 返回 ‐99。

    Log :求对数值

    Sin :求正弦值

    Sqr :开方

    Tan :求正切

    针对字符串型:

    Asc :返回与字符串的第一个字母对应的 ANSI 字符代码

    Chr :将一个 ASCII 码转为相应的字符,与它对应的是 ASC ()函数

    Format :返回根据格式 String 表达式中包含的指令设置格式的字符串,例如 Format(13.3,"0.00")=13.30

    Instr :返回某字符串在另一字符串中第一次出现的位置

    LCase :返回字符串的小写格式,例如 LCase("ARCGIS")="arcgis" Left :返回字符串左边的内容,例如 Left("arcgis",2)="ar" ,把[A]字段的前2个字符赋给[B]

    Len :返回字符串的长度,例如 Len("arcgis")=6

    LTrim :去掉字符串左边的空格,例如 LTrim(" arcgis")="arcgis"

    Mid :取出字符串中间的内容,例如 Mid("arcgis",2,1)="r" 在name 字段前四个字符后面加一个空格,left([name],4) & " " & mid([name],5) QBColor :返回一个 Integer 值,该值表示对应于指定的颜色编号的 RGB 颜色代码

    Right :返回字符串右边的内容,例如 Right("arcgis",2)="is" RTrim :去掉字符串右边的空格,例如 RTim("arcgis ")="arcgis"

    Space :返回由指定数量空格组成的字符串,例如 MyString="Hello" & Space(10) & "World" ' 在两个字符串

    之间插入 10 个空格。

    StrConv :返回按照指定方式转换的字符串。

    String :将对象转换为字符串。

    Trim :去掉字符串前后的空格,例如 Trim(" arcgis ")="arcgis"

    UCase :返回字符串的大写格式,例如 UCase("arcgis")="ARCGIS" 针对日期类型:

    Date :获取日期

    DateAdd :返回一个 Date 值,其中包含已添加指定时间间隔的日期和时间值。

    DateDiff :两个日期之间存在的指定时间间隔的数目

    DatePart :用于计算日期并返回指定的时间间隔

    Now :获取日期+时间

    2. 简单VBA

    把属性值1、2、3换成A 、B 、C

    Dim sResult as string

    Dim sField as string

    sField=[字段名]

    If (sField="1") Then

    sResult="A"

    ElseIf (sField="2") Then

    sResult="B"

    ElseIf (sField="3") Then sResult="C" End If

    展开全文
  • 约束条件 作用控制如何给字段赋值 NULL | key | default | extra 是否允许赋null值 键值 默认值 额外设置  null(允许为空) not(不允许为空) key(索引类型) default(设置默认值,缺省为null) crea...

    一。约束条件  作用控制如何给字段赋值

    NULL       |                  key      |     default   |    extra

    是否允许赋null值      键值            默认值        额外设置

     null(允许为空)   not(不允许为空) key(索引类型)   default(设置默认值,缺省为null)

    create    table   t7(name   char (15)   not    null,   (不允许为空)

     class       char(7)   default      "nsd1804",            (设置默认值缺省为null)

    age     tinyint(2)   not    null   default     19,

    sex    enum("boy","girl")  not  null    default   "boy");   (enum给定值中选择一个)set(给定值中选择一个或多个)

    desc    t7;

     

    insert   into    t7(name)values("bob");(定义name的值为bob)

    insert  into    t7    values("bob2","nsd1803",21,"girl");   (表结构对应的值)

    insert into     t7   values("null",null,22,"boy");  

    insert  into    t7  values("jim",null,22,"boy");       

    insert  into  t7  values("",null,31,"boy");(姓名为空字符也算一个值,)

    select   *  from  t7;

     

     

    create    table  t8(name char(15)  not  null  default  "",

    class   char(7)   default   "nsd1804",

    age     tinyint(2)   not  null  default  19,

    sex   enum ("boy","girl")  not   null  default  "boy");

    insert   into   t8(class,age,sex)values("nsd1802",45,"boy");

    select  *  from  t8;

    二,修改表结构 :对已经创建的表的结构做修改:

    添加新字段    :格式用法:alter  table   表名    add    字段名      类型(宽度)    约束条件;可加after字段名;或者first;

    add

    alter  table   db2.t8

    add    email   varchar(50)  default   "student@tedu.cn",

    add   qq      char(11);

    desc   t8;

    select     *   from   t8;

    可加after字段名(在指定字段后面);或者first;(在所有字段前面)

    alter  table   db2.t8

    add   stu_num   char(9)   first,  (表结构在所有字段最前面)

    add   likes    set("eat","sleeps","game","film")  after   sex;    (字段likes在指定字段sex后面)

    删除已有字段:alter    table   db2.t8    drop    email; 

    删除多个:alter  table   db2.t8   drop   email,   drop   qq;

    desc   t8;

    select   *  from   t8;

       修改已有字段类型 :       格式:alter   table   表名    modify   字段名    l类型(宽度)   约束条件;     可加可加after字段名;或者first;

    modify

    *修改字段类型时,若新的类型与字段已经存储数据冲突,不允许修改。

    不修改的部分要原样写一遍,否则alter   table  t8  modify   stu_num   varchar(9);就是还原。

    alter   table  t8  modify   stu_num   varchar(9);(不修改的写一遍)

    alter    table   t8  modify

    sex   enum('boy','girl',"no")  not  null   default   "boy";(修改性别为boy)

    desc  t8;

    (改变位置)

    alter   table   t8    modify    sex   enum('boy','girl',"no")   not   null   default   "boy"  after  name;(sex性别默认值为boy,在表结构字段name后面)

    select   *    from   t8;

        修改字段名    :   格式:alter   table    表名  change    源字段名    新字段名    类型(宽度)   约束条件;

    change

       alter   table   t8   change   stu_num   stu_id   varchar(9);(把字段stu_num  改名为stu_id)

    select  *   from    t8;

    修改表 : 格式;alter  table  表名   rename  新表名;

    rename  

    alter    table   t8   rename   stuinfo ;(把表名t8改为stuinfo)

    show    tables;

    select    *   from   stuinfo;

    三,MYSQL键值   (重点)    约束如何给字段赋值。

    普通索引  index   唯一索引:unique   全文索引:fulltext     主键:primary   key      外键:  foreign    key

    索引介绍:给字段值排序的树型结构,类似与“书的目录”

    索引优点:方便查找加快查询数据的速度

    索引缺点:1.占用存储空间   2.减慢写入数据的速度

    使用索引

    使用规则

    查看、  desc   表 ;   key    ---MUL

               show    index   from    表;

    创建:   把已有表的字段设置为index字段

    desc   stuinfo;

    show   index   from     stuinfo\G;(查看索引)

        create    index   aaa  on    stuinfo(name);    (设置为index字段,创建索引,把字段name设为索引,索引名为aaa,)

                                   (索引名)      (表名)

    desc     stuinfo;

    show    index    from   stuinfo\G;(查看索引)

    删除: Iindex

    drop    index    aaa   on     stuinfo;(删除索引)

    desc    stuinfo;

    show    index     from     stuinfo\G;

    创建表时指定index字段

    create    table   t9(name    char(15)   not    null   default   "",(指定name的默认值为空字符)

    class    char(7)   default    "nsd1804",(指定class的默认值为nsd1804)

    age    tinyint(2)   not     null    default     19,(指定age默认值为19)

    sex     enum("boy","girl")    not    null   default    "boy",(指定sex默认值为boy)

    index(name),index(class));(把name,class,设为索引字段)

    desc    t9;

    show   index   from    t9\G;(查看t9表的索引)

     

    四,primary  key  主键

    限制如何给字段赋值  

    primary key   使用规则(不能为空,不能重复)

    建表时创建主键  字段

    create  table  t10(stu_id  char(9)   primary  key,(把stu_id字段设为主键)

    name   char(10),

    age   int(2));

     

        两种方法

    create   table   t11(stu_id  char(9),

    name   char(10),

    age     int(2),

    primary   key(stu_id));(把字段stu_id设为主键)

    desc   t10;

    desc   t11;

    inset    into    t10    values("nsd180401","lucy",21);

    inset   into     t10    values("nsd180401","bob",21);

    inset  into     t10     values(null,"lucy",21);

      

    删除主键

    alter    table    t10    drop    primary  key;(删除主键)

    desc    t10;

    insert     into      t10    values("nsd1804","lucy",21);

    insert    into       t10    values(null,"lucy",21);

    select   *    from    t10;

    在已有表里创建主键字段

    delete  from    t10;(有重复值先删除表记录才能设主键)

    alter   table    t10    add     primary     key(stu_id);(创建主键添加到t10表里把字段stu_id设为主键)

    desc   t10;

    创建复合主键:表中的多个字段一起做主键,赋值时,主键字段的值不能重复。

    create  table   t12(name   char(15),

    class char(7),

    pay    enum("yes","no"),

    primary  key(name,class));

    insert   into   t12   values("bob","nsd1804","yes");

    insert   into    t12   values("bob","nsd1804","no");       (复合主键的值不能同时重复)

    insert    into    t12    values("bob",nsd1805","yes");

    insert    into    t12    values("bob","nsd1805","no");

    删除复合主键:

    alter   table    t12    drop    primary   key;(删除复合主键)

    insert   into     t12    values("bob","nsd1805","no");(没有主键可以重复)

    select   *   from    t12;

    主键同常和auto_increment连用  让字段的值自动增长。

    primary  数值必须有才能创建

    向表中插入记录时 不给自动增长的字段赋值, 字段的值是如何获得的呢,用当前字段最大的值+1  后把结果做当前新记录字段的值

    案:create  database db3;

         use  db3 

         create table  t1(id  int(2)  primary key auto_ increment,(把字段id设为主键自动增长)

       name  char(15)  not null,

       age  tinyint(2)  unsigned  default  19,

       pay  float(7,2)  default   26800);

       insert  into  t1(name,age,pay) values("tom",21,18000);

      insert  into  t1(name,age,pay) values("lucy",23,18800);(给对应字段赋值)

      insert  into  t1  values(7,"jerry",23,18800);

      insert  into  t1 (name,age,pay) values("alice",33,18800);

      insert  into  t1 values(null,"jerry2",23,18800);

    删除自动增长:

    alter  table  t2  change  id id int;(删除自动增长)

    外键:让当前表字段的值,在另一个表字段值范围里选择。

    外键的使用:1,表的储存引擎必须是innodb,字段类型必须一致,被参照字段必须是索引类型的一种,通常是主键primary key

    格式:

     create table yginfo(yg_id  int(2) primary key auto_increment,(把yginfo表的字段yg_id设为主键自定增长)

    name char(15))engine=innodb;(把字段name设为innodb引擎,支持回滚)

    insert into yginfo(name)values("bob");

    insert into yginfo(name)values("bob");

    insert into yginfo(name)values("lucy");

    select * from yginfo;

    创建外键:

    格式:foreign key(表a的字段名)

              references表b(字段名)

            on delete

          on  update

     

    create  table  gztab(gz_id int(2),(表gztab,字段gz_id)

    pay float(7,2),   float(小数类型)                                      cascade:层叠

    foreign key(gz_id) references yginfo(yg_id)  on delete cascade on update cascade)engine=innodb;(创建外键,把yginfo表里内容作为gztab表的参照表)

    select * from gztab;

    desc gztab;

    show create table gztab;

     

    insert into gztab values(1,50000);(表1gztab发工资测试,以表2为参照)

    insert into gztab values(2,25000);

    insert into gztab values(3,35000);

    insert into gztab values(4,60000);  如果没有编号者不能成立

    同步更新

    update yginfo set yg_id=7 where yg_id=2;(修改表yginfo的字段yg_id的id)

    select  * from yginfo;

    select * from gztab;

    同步删除

    delete from yginfo where yg_id=3;(删除yginfo表的字段yg_id的id)

    select * from yginfo;

    select * from gztab;

       字段值不允许重复和赋null值

    alter table gztab add primary key(gz_id);(加主键可以不为空,不重复)

    删除外键:

    show create table gztab;(查看gztab表的外键)

    alter table gztab drop foreign key  gztab_ibfk_1;(删除gztab表的外键)

    show create table gztab;

    alter   table  t8  modify   stu_num   varchar(9);                  注:通常是先删除外键才能删除主键索引)

    数据库管理
    NSD DB 基础
    DAY02内容
    上午
    09:00 ~ 09:30 作业讲解和回顾
    09:30 ~ 10:20 约束条件
    10:30 ~ 11:20 修改表结构
    11:30 ~ 12:00
    14:00 ~ 14:50
    下午
    15:00 ~ 15:50
    MySQL 键值
    16:10 ~ 17:00
    17:10 ~ 18:00
    总结和答疑约束条件约束条件
    • Null 允许为空,默认设置
    • NOT NULL 不允许为空




    索引类型
    • Key
    • Default 设置默认值,缺省为 NULL约束条件(续 1 )



    解修改表结构
    修改表结构
    修改表结构
    语法结构
    添加新字段
    修改字段类型
    修改字段名
    删除字段
    修改表名修改表结构语法结构
    • 基本用法
    – ALTER TABLE 表名 执行动作 ;




    Add
    Modify
    Change
    Drop
    Rename
    添加字段
    修改字段类型
    修改字段名
    删除字段
    修改表名添加新字段
    • 基本用法




    – ALTER TABLE 表名
    – ADD 字段名 类型 ( 宽度 ) 约束条件 ;
    可加 AFTER 字段名 ;
    或者 FIRST;修改字段类型
    • 基本用法




    – ALTER TABLE 表名
    – modify 字段名 类型 ( 宽度 ) 约束条件 ;
    可加 AFTER 字段名 ;
    或者 FIRST;修改字段名
    • 基本用法




    – ALTER TABLE 表名
    – change 源字段名 新字段名 类型 ( 宽度 ) 约束条件
    ;
    当跟新类型和约束条件时,也可修改字段类型删除字段
    • 基本用法




    – ALTER TABLE 表名
    – drop 字段名 ;
    表中有多条记录时,所有列此字段的值都删除了修改表名
    • 基本用法




    – ALTER TABLE 表名
    – Rename 新表名;
    表对应的文件名,也会改变案例 1 :修改表结构
    • 表的字段修改




    – 添加字段
    – 修改字段名
    – 修改字段类型
    – 删除字段MySQL 键值
    MySQL 索引概述
    索引介绍
    索引优缺点
    MySQL 键值
    键值类型
    MySQL 键值类型
    INDEX 普通索引
    primary key 主键
    foreign key 外键MySQL 索引概述索引介绍
    • 索引是什么?




    – 索引是对记录集的多个字段进行排序的方法。
    – 类似于书的目录
    – 索引类型包括 :Btree 、 B+tree 、 hash索引优缺点
    • 索引优点




    – 通过创建唯一性索引,可以保证数据库表中每一行数
    据的唯一性
    – 可以加快数据的检索速度
    • 索引缺点
    – 当对表中的数据进行增加、删除和修改的时候,索引
    也要动态的维护,降低了数据的维护速度
    – 索引需要占物理空间键值类型
    • INDEX :普通索引
    • UNIQUE :唯一索引




    • FULLTEXT :全文索引
    • PRIMARY KEY :主键
    • FOREIGN KEY :外键MySQL 键值类型INDEX 普通索引
    • 使用说明




    – 一个表中可以有多个 INDEX 字段
    – 字段的值允许有重复,切可以赋 NULL 值
    – 经常把做查询条件的字段设置为 INDEX 字段
    – INDEX 字段的 KEY 标志是 MULINDEX 普通索引(续 1 )
    • 建表的时候指定索引字段
    – INDEX( 字段 1), INDEX( 字段 2) .. ..



    解INDEX 普通索引(续 2 )
    • 在已有的表中设置 INDEX 字段
    – CREATE INDEX 索引名 ON 表名 ( 字段名 );




    • 删除指定表的索引字段
    – DROP INDEX 索引名
    ON 表名 ;INDEX 普通索引(续 3 )
    • 查看表的索引信息
    – SHOW INDEX FROM 表名 ;




    使用 B 树算法primary key 主键
    • 注意事项




    – 一个表中只能有一个 primary key 字段
    – 对应的字段值不允许有重复,且不允许赋 NULL 值
    – 如果有多个字段都作为 PRIMARY KEY ,称为复合主
    键,必须一起创建。
    – 主键字段的 KEY 标志是 PRI
    – 通常与 AUTO_INCREMENT 连用
    – 经常把表中能够唯一标识记录的字段设置为主键字段
    [ 记录编号字段 ]primary key 主键(续 1 )
    • 建表的时候指定主键字段
    – PRIMARY KEY( 字段名 )



    解primary key 主键(续 2 )
    • 在已有的表中设置 PRIMARY KEY 字段
    – ALTER TABLE 表名 ADD PRIMARY KEY( 字段名 );




    • 移除表中的 PRIMARY KEY 字段
    – ALTER TABLE 表名 DROP PRIMARY KEY;
    移除主键前,如果有自增属性,必须先去掉foreign key 外键
    • 什么是外键?




    – 让当前表字段的值在另一个表中字段值的范围内选择

    • 使用外键的条件
    – 表的存储引擎必须是 innodb
    – 字段类型要一致
    – 被参照字段必须要是索引类型的一种 (primary key)foreign key 外键(续 1 )
    • 基本用法




    – FOREIGN KEY( 表 A 的字段名 )
    References 表 B( 字段名 )
    ON UPDATE CASCADE
    ON DELETE CASCADEforeign key 外键(续 2 )
    • 删除外键字段
    – ALTER TABLE 表名 DROP FOREIGN KEY 约束名 ;




    外键约束名称MySQL 索引创建与删除
    1. 普通索引、唯一索引、主键索引的创建 / 删除
    2. 自增主键索引的创建 / 删除




    3. 建立员工表 yg 、工资表 gz ,并设置外键实现同步
    更新与同步删除总结和答疑
    primary key
    问题现象 1
    故障分析及排除
    问题现象 2
    故障分析及排除
    总结和答疑
    foreign key
    问题现象 1
    故障分析及排除
    问题现象 2
    故障分析及排除primary key问题现象 1
    • 把已有表中的字段设置为主键报错
    – 报错:




    Duplicate entry '2' for key 'PRIMARY'
    mysql> select * from t1;
    | 2 | jerry |
    | 2 | bob |
    +------+-------+
    4 rows in set (0.01 sec)
    mysql>
    mysql> alter table t1 add primary key(id);
    ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY'故障分析及排除
    • 原因分析
    – 不符合主键使用规则,主键字段的值不允许重复




    • 解决办法
    – 修改字段的重复值
    mysql> update t1 set id=4 where name="jerry";
    .. ..
    mysql> alter table t1 add primary key(id);
    .. ..问题现象 2
    • 删除表中主键字段报错
    – 报错: ERROR 1075 (42000):




    mysql> desc t2;
    +-------+----------+------+-----+---------+----------------+
    | Field | Type | Null | Key | Default | Extra
    |
    +-------+----------+------+-----+---------+----------------+
    | id
    | int(2)
    | NO | PRI | NULL | auto_increment |
    | name | char(10) | YES | | NULL |
    |
    +-------+----------+------+-----+---------+----------------+
    mysql> alter table t2 drop primary key;
    ERROR 1075 (42000): Incorrect table definition; there can be only
    one auto column and it must be defined as a key故障分析及排除
    • 原因分析:
    – 有自动增长属性的字段必须作为主键,不允许删除




    • 解决办法:
    – 去掉字段的自动增长属性,再删除主键
    mysql> alter table t2 modify id int(2) not null;
    .. ..
    mysql> alter table t2 drop primary key;
    .. ..foreign key问题现象 1
    • 创建外键失败
    – 报错: ERROR 1215 (HY000): Cannot .. ..




    mysql> desc t2 ;
    +-------+----------+------+-----+---------+-------+
    | id | int(2) | NO | | NULL |
    |
    | name | char(10) | YES | | NULL |
    |
    +-------+----------+------+-----+---------+-------+
    mysql> create table t3(
    -> id int(2),
    -> pay float(7,5),
    -> foreign key(id) references t2(id)
    -> );
    ERROR 1215 (HY000): Cannot add foreign key constraint故障分析及排除
    • 原因分析:




    – 不符合外键使用规则。
    – 被参考字段必须是 key 值中的一种。
    • 解决办法:
    – 给被参考字段设置 key 值
    mysql> create index id on t2(id);
    mysql> create table t3( id int(2), pay float(7,5), foreign key(id)
    references t2(id) );
    .. ..问题现象 2
    • 删除表中字段失败
    – 报错: Cannot delete or update a parent row .......




    mysql> drop table t2;
    ERROR 1217 (23000): Cannot delete or update a parent row: a
    foreign key constraint fails
    mysql> alter table t2 drop id;
    ERROR 1553 (HY000): Cannot drop index 'id': needed in a foreign
    key constraint故障分析及排除
    • 原因分析
    – 被参考的表、表的字段不允许被删除




    • 解决办法
    – 删除其他表对待删除表或字段的参考
    mysql> alter table t3 drop foreign key t3_ibfk_1;
    .. ..
    mysql> alter table t2 drop id;
    .. ..

     

    展开全文
  • 自增长字段值的连续递增实现

    千次阅读 2021-02-03 23:33:57
    背景在上一篇《数据库操作类SqlHelper》博文的最后,提到了一个实践运用中遇到的问题,就是数据库表中的自增长字段的赋值不受人为控制。比如数据库有一个tb_Department表,DeptNO字段为自增长主键。现在插入一行数据...
  • C# int转byte[],byte[]转int

    千次阅读 2020-12-28 20:53:26
    第一种方法:byte数组转intu = (uint)(b[0] | b[1] << 8 |b[2] <...int转byte数组b[0] = (byte)(u);b[1] = (byte)(u >> 8);b[2] = (byte)(u >> 16);b[3] = (byte)(u >> 24)...
  • 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。 本文介绍php操作的方式 blob类型数据可以直接当成字符串类型写入和修改如下写法 $blob; //假设这是二进制数据blob $sql = "update `table` set ...
  • 目的:要把exam_add表中的memo字段根据idCard字段对应更新到w_secondary_score表的memo BEGIN DECLARE pidCard varchar(20); /*存放idCard*/ DECLARE pmemo varchar(255); /*存放memo*/ declare done int defau.....
  • Java中的BigDecimal类和int和Integer总结

    千次阅读 2019-07-07 14:49:43
    当然,如果系统限定db里int字段不允许null值,则也可考虑将属性定义为int。 对于应用程序里定义的枚举类型, 其值如果是整形,则最好定义为int,方便与相关的其他int值或Integer值的比较 Integer提供了一系列...
  • 1.某一个字段写入 固定字符串 ----选择python,字符串 gxsj="2018-06-25" ... 2.根据ID字段填写URL字段 ...----输入表达式:"assets/imgs/M2U004"+str(int( !ID! %26+30))+".jpg" ----其中%为取余;i...
  • mysql 中的 int(m)与zerofill使用

    千次阅读 2017-11-30 17:35:24
    mysql 中的 int(m)与zerofill使用阅读完该文档后,你将了解到: 整数类型的基本知识 int(m)中m的含义 与 zerofill的使用 i整数类型的基本知识 整数类型 字节 有符号范围 无符号范围 TINYINT 1 -128 ~ 127 0 ~...
  • c#字段封装

    千次阅读 2019-01-31 14:33:20
    原文:... 封装是OOP(面向对象编程)三大特征之一。 为什么需要封装? 首先看以下代码 ...public class Student ... public int age;  public string name;  ...
  • 【第四章】Mysql数据库字段详解

    千次阅读 2020-07-17 18:02:55
    学习目标:了解字段类型的作用,掌握MySQL中的字段类型,熟练运用字段类型来设计数据表 字段类型的作用 整数类型 小数类型 时间日期类型 字符串类型 1、字段类型作用 目标:了解为什么要有字段类型以及字段类型...
  • mysql中int、bigint、smallint 和 tinyint的区别及应用
  • 最近项目中经常或出现需要对查询数据的Date时间字段进行转String格式化,原有项目中是对每个查询的实体类中都添加了一个方法,专门用来进行时间格式化,感觉每个类都加,代码维护性不高不说,关键还烦,所以写了个...
  • Java类属性字段校验(validation的使用)1、需求来源:日常校验需求2、validation介绍2-1、常见的注解2-2、快速入门1、简单校验2、自定义校验注解3、通用的Validtor校验工具类 1、需求来源:日常校验需求 日常开发中...
  • 这个代码中虽然用python...2、DeleteField_management——删除字段(这里只是为了确保字段并未存在) 3、arcpy.env.workspace——定义工作空间 4、CalculateField_management——计算字段 这几个是最最基本的arcpy函数
  • thinkphp6.0模型篇之模型的字段设置

    千次阅读 2020-03-24 17:59:15
    一、字段设置 1、模型的数据字段和表字段是对应关系,默认会自动获取,包括字段的类型 2、自动获取会导致增加一次查询,如果再模型中配置字段信息,会减少内存开销 ...'int', 'uname' =>'string', ...
  • EMPNO INT PRIMARY KEY, -- 员工编号 ENAME VARCHAR(10), -- 员工姓名 JOB VARCHAR(9), -- 员工工作 MGR INT, -- 员工直属领导编号 HIREDATE DATE, -- 入职时间 SAL FLOAT, -- 工资 COMM FLOAT, -- 奖金 DEPTNO INT,...
  • * 指定注解运用的地方: * ElementType.ANNOTATION_TYPE 可以给一个注解进行注解 * ElementType.CONSTRUCTOR 可以给构造方法进行注解 * ElementType.FIELD 可以给属性进行注解 * ElementType.LOCAL_VARIABLE ...
  • -- 展示的字段:数据库名称 表名称 列名称 出现的次数 CREATE TEMPORARY TABLE IF NOT EXISTS rstb(dbname VARCHAR(128),tbname VARCHAR(128),colname VARCHAR(128),cnt INT); -- 打开游标 OPEN cur_db_tb; -- 开始...
  • mysql json字段的使用与意义

    千次阅读 2017-05-04 10:24:46
    MySQL 5.7.8开始支持json字段类型,并提供了不少内置函数,通过计算列,甚至还可以直接索引json中的数据! 如果还不了解基础的可参看 mysql json快速入门 为何说json原生支持非常关键呢,不是可以自己在客户端...
  • java根据对象的日期格式的字段进行降序排序首先应用到java util工具类中的Comparator接口的方法:compare(Object o1,Object o2)方法是java.util.Comparator接口的方法,它实际上用的是待比较对象的compareTo(Object ...
  • * 指定注解运用的地方: * ElementType.ANNOTATION_TYPE 可以给一个注解进行注解 * ElementType.CONSTRUCTOR 可以给构造方法进行注解 * ElementType.FIELD 可以给属性进行注解 * ElementType.LOCAL_VARIABLE ...
  • bean通过注解实现字段校验

    千次阅读 2018-07-18 22:49:41
    int value() default 0; String message() default "List集合中不能含有null元素"; Class[] groups() default {}; Class[] payload() default {}; /** * 定义List,为了让Bean的一个属性上可以添加多套...
  • (转) Mybitis参数类型 ...#{property,javaType=int,jdbcType=NUMERIC} 像 MyBatis 的剩余部分一样,javaType 通常可以从参数对象中来去确定,前提是只要对象不是一个 HashMap。那么 javaType 应...
  • 关于Shiro登录认证如何把表单Username字段改成Userid字段后台解决问题 最近遇到权限问题,所以学习了shiro框架(比起SpringSecurity真的容易上手啊!)。看了一些文章自己做了一个登录认证的功能。因为我的数据库的...
  • 重构改善既有代码之令人迷惑的暂时字段 Temporary Field(令人迷惑的暂时字段) 有时你会看到这样的对象:其内某个实例变量仅为某种特定情况而设。这样的代码让人不易理解,因为你...1.运用 Extract Class – Replace Me
  • 今天的题目是:在mysql中,一条sql,有多个查询条件,你会选择哪个字段作为索引,依据是什么? sql示例是这样的: select * from table where field_a = xx and field_b = xx and field_c = xx 思考一下,如果是你,...
  • 1. 存储过程变量 2019/2/10 #实例:统计表的行数,验证参数的传入和结果的获取 /*最方便的方法是直接在MySQL Workbench ...create table tb_1 (name varchar(10), age int);  insert into tb_1 values('Tom',...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,856
精华内容 17,542
关键字:

int字段运用