精华内容
下载资源
问答
  • 数据科学探路者:MySQL知识整理3—数据库的基本操作​zhuanlan.zhihu.com主要内容:创建数据表,查看数据表结构,修改数据表,删除数据表,约束、默认和规则含义一、创建数据表语法形式: create table <表名>...
    数据科学探路者:MySQL知识整理3—数据库的基本操作zhuanlan.zhihu.com
    zhihu-card-default.svg

    主要内容:创建数据表,查看数据表结构,修改数据表,删除数据表,约束、默认和规则含义

    一、创建数据表

    语法形式:
    create table <表名> (
    字段1 , 数据类型 [列级别约束条件][默认值],
    字段2 , 数据类型 [列级别约束条件][默认值],
    ...
    );

    例子:

    2472d16e8c16c504022cefe81f2649d9.png
    create 
    create table tb_emp1(
    id int(11) primary key,
    name varchar(25),
    deptID int(11),
    salary float
    /*添加主键约束,在最后添加也可*/
    /*primary key(id)*/
    /*多字段主键添加  primary key(id,name)*/
    );

    约束包括哪些?

    • 非空约束 (not null)
    • 唯一性约束 (unique)
    • 主键约束 (primary key) 简称 PK
    • 外键约束 (foreign key) 简称 FK
    • 检查约束【目前MYSQL不支持,oracle数据库支持】

    1.主键:表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键。如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。

    任何列都可以作为主键,只要它满足以下条件:

    • 任何两行都不具有相同的主键值。就是说这列的值都是互不相同的     
    • 每个行都必须具有一个主键值。主键列不允许设置为NULL    
    • 主键列的值不建议进行修改和更新

    (注释:在第一部分,数据库基础中,主键知识已介绍

    2.外键

    基本概念 :

    • (1) MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。
    • (2) 外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。
    • (3) 如果需要更好的性能,并且不需要完整性检查,可以选择使用MyISAM表类型,如果想要在MySQL中根据参照完整性来建立表并且希望在此基础上保持良好的性能,最好选择表结构为innoDB类型。
    • (4) 外键的使用条件: ① 两个表必须是InnoDB表,MyISAM表暂时不支持外键 ② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立; ③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
    • (5) 外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。

    1541fae3a29f05c0959fe457dad5480a.png
    create table tb_dept1(
    id int(11) primary key,
    name varchar(22) not null,
    location varchar(50)
    );
    create table tb_emp5(
    id int(11) primary key,
    name varchar(25),
    deptID int(11),
    salary float,
    constraint fk_empdept1 foreign key(deptID) references tb_dept1(id)
    );

    3.非空约束

    强制列不能为 NULL 值,约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。例子:name字段不能为空

    create table tb_dept1(
    id int(11) primary key,
    name varchar(22) not null,
    location varchar(50)
    );

    4.唯一性约束

    unique约束的字段具有唯一性,不可重复。唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一性约束可以确保一列或者几列不出现重复值。

    • UNIQUE KEY 唯一约束
    • 唯一约束可以保证数据的唯一性
    • 唯一约束的字段可以为空
    • 每张数据表可以有存在多个唯一约束
    create table tb_dept1(
    id int(11) primary key,
    name varchar(22) unique,
    location varchar(50)
    /*或者在最后添加constraint <约束名> unique <字段名>*/
    /*constraint na unique(name)*/
    );

    5.设置表的属性自动增加

    在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值。 实现此目的,可以使用关键字:ATUO_INCREMENT

    • 1.默认,MySQL中AUTO_INCREMENT的初值是1,每新增一条记录,字段值自动加1;
    • 2.一个表只能用一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。
    • 约束的字段可以是任何整数类型(tinyint,smallint,int,bigint)
    create table tb_emp1(
    id int(11) primary key auto_increment,
    name varchar(25),
    deptID int(11),
    salary float
    );
    insert into tb_emp1(name,salary) 
    values('lucy',7000),('tom',15000),('steven',40000);

    插入数据后,id字段自动增加1。

    展开全文
  • 索引的的分类有几类分别为主键索引,唯一索引,普通索引和联合索引主键索引:主要是主键的作用,主键不能为空且不能重复,最后有加速查找的功能唯一索引:它分为两部分,一个是唯一约束,一个是索引,普通索引:它就是加速查找...

    1.索引的作用主要是加速查找

    2.索引的的分类有几类分别为主键索引,唯一索引,普通索引和联合索引

    主键索引:主要是主键的作用,主键不能为空且不能重复,最后有加速查找的功能

    唯一索引:它分为两部分,一个是唯一约束,一个是索引,

    普通索引:它就是加速查找,对数据没有什么要求,

    联合索引:把多列组合成一个整体,当作一个索引,一般情况下都是联合主键,联合唯一和联合普通索引(把多列组合在一起设置它们为一个普通索引,叫联合普通索引)

    3.索引能加速查找的然因是一旦建立索引,它就会自动创建一个额外文件(某种格式存储),然后在进行索引查找时,先在该文件中找到要的信息,然后根据select要显示的内容,在要查询表中寻找信息.而如果没有索引,它会从头到尾依次查找一遍.所以索引能节省时间.但是建立了索引,在对表进行增删改的时候,就有些浪费时间了,因为对表进行操作时,还要对相应的额外文件进行操作.

    4.创建额外文件中的格式存储方式分为hash索引和btree索引.默认是btree索引的型式存储的.

    hash索引:它一般在单值查询的时候很快,在范围查询的时候很慢,原因是hash索引是无序的.hash索引的存储结构是有两列,一列放hash值,一列放该hash对于表中索引值所在的存储位置(或是存储路径)

    btree索引:它是以二叉树结构存储的数据结构.如下图

    索引的建立和删除:

    建立索引: 形如  create  index  索引名  on  表名A(列名a)  表示给A表的a列建立普通索引.如:Create  index   ix_name  on userinfo3(email)  表示给userinfo3表中的email列建立了普通索引.

    如果在index前加unique  就是建立唯一索引,

    即create  unique  index    索引名  on  表名A(列名a)  表示给A表的a列建立唯一索引.

    如果在表名A(列名a)的括号内添加多列如(列名a,列名b)  就是联合普通索引,

    即  create index   索引名  on  表名A(列名a,列名b) 表示给A 表的a列和b列联合在一起建立一个普通索引,即联合普通索引.一般是通过and连接起来这两列进行索引查找的,也可以只通过a列进行索引查找,但是不能只通过b列进行索引查找.这种现象叫最左前缀匹配. 联合索引遵循最左前缀匹配,即只要出现最左边的那一列,就能进行联合索引查找.

    如create  index ix_name_Email  on  userinfo3(name,email,age)  给usrinfo3表中的name,email,age等列建立一个联合普通索引,

    Select  *  from  userinfo3  where name=’alex’;能进行联合索引

    Select * from  userinfo3  where  name=’alex’ and age=32 ;能进行联合索引

    Select  *  from  userinfo3  where  email=’alex@qq.com’  ;不能进行联合索引,因为没有name列.

    删除索引:drop index  索引名 on  表名   删除普通索引

    Drop  unique  index    索引名   on  表名   删除唯一索引

    索引中的两个索引名称:覆盖索引和索引合并.

    覆盖索引:在索引文件中直接获取数据,即select  的和通过索引查询的是同样的内容

    Select  id   from userinfo3  where  id >3000;

    索引合并:指的是把多个索引联合起来进行查找,如下,其中name是索引,email也是索引.select   * from userinfo3 where  name=’alex’   and email=’alex11@qq.com’

    注:联合索引的效率>索引合并的

    对应要进行频繁查找的列,应该建立索引,然后进行索引查询.在进行索引查询时,只有命中索引才能进行索引查询.有以下几种情况是不能命中索引的Like  ‘%xx’  模糊匹配不能进行索引查询,我们应该导入第三方模块进行

    使用函数,在where条件中对索引列进行使用函数,也不能进行索引查询

    有or  的情况 如  select * from   t1   where   id  =1 or  name =’alex’  name不是索引,所以不能进行索引查找

    类型不一致,如列是字符串类型,但是判断条件的值不是字符串类型,也不能进行索引查询

    !=   在条件判断中出现!=时,不走索引,但是主键例外

    >或时,也不走索引,但是当主键或索引是整数类型时,可以走索引

    Order   by  一般情况下出现order  by的时候不走索引,但是当对索引排序时进行索引覆盖走索引,如果是对主键排序,则走索引

    联合索引(组合索引)最左前缀

    8.判断是否走索引的方法(一般正确)

    通过explain  +select语句,explain的作用是预估其后跟的select语句的查询快慢.

    All 

    Explain  select  * from  userinfo3  where name=’alex’

    Type:ALL(全表扫描,即没走索引)

    Type:const(走索引最快,查找的最多有一个匹配行)

    Explain       中type  =all,表示

    Type=const表示

    查询结果中主要看id和type,id中的值表示预估的select语句有几个,type中的值表示该select语句是否走了索引,一般情况下,走索引的比没走索引的快

    9.通过建立索引,然后命中索引,就能进行select语句的优化,提高查询效率.所以在写查询语句时,对查询的语句通过explain预估该查询语句是否走了索引,然后看看是否犯了没命中索引的8种情况,最后对查询语句进行优化.

    10.慢日志查询  ,对于慢日志,要注意三点:1.执行时间>10 2. 未命中索引  3.日志文件路径  在mysql中通过show variables   like  ‘%query%’ 查询到mysql的当前配置信息,主要看slow_query_log  查看是否开启慢日志记录

    Long_query_time   时间限制,查看最长查询时间,一旦超过此时间,则记录

    Slow_query_log_file      查看慢日志文件及路径

    通过Show   variables like  ‘%queries%’查询是否记录索引设置信息.

    Log_queries_not_using_indexes     是否记录使用索引进行查询的情况

    修改当前配置:set  global   变量名=值

    在配置文件中进行修改(它是在服务端进行的)

    Mysqld  --defaults-file=’d:\mysql.conf’  表示按配置文件的内容,启动mysql服务

    在mysql.conf中设置配置信息:

    Slow_query_log=on

    Slow_query_log_file =

    Mysqld  --defaults-file=’ D:\Program Files(x86)\mysql\mysql-5.7.16-winx64\my-default.ini’

    ’ D:\Program Files(x86)\mysql\mysql-5.7.16-winx64\my-default.ini’它是mysql服务端的默认配置文件

    注意: 修改配置文件之前,要把配置文件进行备份.     修改配置文件之后,需要重启服务,即如果对mysql.conf的内容进行修改了,就要从新运行Mysqld  --defaults-file=’d:\mysql.conf’

    11.分页  使用limit

    1)select  * from  userinfo3 limit  20,10; 表示从头扫到20行的位置,然后从它开始取10行显示;这种从头开始扫的方式进行分页效率很低

    2)分页进行优化的方式有,1.不让看,即有些页码掩藏,2.在索引表中扫

    在索引表中扫的a.记录当前页的最大或最小id

    页面只有上一页,下一页

    #max_id

    #min_id

    下一页:

    Select * from userinfo3   where id>max_id   limit   10;表示先定位到id的位置.然后从该位置开始取10行

    上一页:  select *  from  userinfo3  where  id

    上一页   193  194  195  [196]   197  198   199   下一页,当前页码是196,如果选择199页码,则sql语句是:

    Select  *  from userinfo3 where id   in(

    Select  id  from  (select id from   userinfo3 where  id>max_id  limit30)  as n  order  by n.id  desc  limit  10)

    参考链接

    展开全文
  • mysql的索引内容

    2019-10-08 02:09:57
    主键索引:主要是主键的作用,主键不能为空且不能重复,最后有加速查找的功能 唯一索引:它分为两部分,一个是唯一约束,一个是索引, 普通索引:它就是加速查找,对数据没有什么要求, 联合索引:把多列组合成一个整体,当作...

    1.索引的作用主要是加速查找

    2.索引的的分类有几类分别为主键索引,唯一索引,普通索引和联合索引

    主键索引:主要是主键的作用,主键不能为空且不能重复,最后有加速查找的功能

    唯一索引:它分为两部分,一个是唯一约束,一个是索引,

    普通索引:它就是加速查找,对数据没有什么要求,

    联合索引:把多列组合成一个整体,当作一个索引,一般情况下都是联合主键,联合唯一和联合普通索引(把多列组合在一起设置它们为一个普通索引,叫联合普通索引)

    3.索引能加速查找的然因是一旦建立索引,它就会自动创建一个额外文件(某种格式存储),然后在进行索引查找时,先在该文件中找到要的信息,然后根据select要显示的内容,在要查询表中寻找信息.而如果没有索引,它会从头到尾依次查找一遍.所以索引能节省时间.但是建立了索引,在对表进行增删改的时候,就有些浪费时间了,因为对表进行操作时,还要对相应的额外文件进行操作.

    4.创建额外文件中的格式存储方式分为hash索引和btree索引.默认是btree索引的型式存储的.

    hash索引:它一般在单值查询的时候很快,在范围查询的时候很慢,原因是hash索引是无序的.hash索引的存储结构是有两列,一列放hash值,一列放该hash对于表中索引值所在的存储位置(或是存储路径)

    btree索引:它是以二叉树结构存储的数据结构.如下图

     

    1. 索引的建立和删除:

     

    建立索引: 形如  create  index  索引名  on  表名A(列名a)  表示给A表的a列建立普通索引.如:Create  index   ix_name  on userinfo3(email)  表示给userinfo3表中的email列建立了普通索引.

    如果在index前加unique  就是建立唯一索引,

    即create  unique  index    索引名  on  表名A(列名a)  表示给A表的a列建立唯一索引.

    如果在表名A(列名a)的括号内添加多列如(列名a,列名b)  就是联合普通索引,

    即  create index   索引名  on  表名A(列名a,列名b) 表示给A 表的a列和b列联合在一起建立一个普通索引,即联合普通索引.一般是通过and连接起来这两列进行索引查找的,也可以只通过a列进行索引查找,但是不能只通过b列进行索引查找.这种现象叫最左前缀匹配. 联合索引遵循最左前缀匹配,即只要出现最左边的那一列,就能进行联合索引查找.

    如create  index ix_name_Email  on  userinfo3(name,email,age)  给usrinfo3表中的name,email,age等列建立一个联合普通索引,

    Select  *  from  userinfo3  where name=’alex’;能进行联合索引

    Select * from  userinfo3  where  name=’alex’ and age=32 ;能进行联合索引

    Select  *  from  userinfo3  where  email=’alex@qq.com’  ;不能进行联合索引,因为没有name列.

    删除索引:drop index  索引名 on  表名   删除普通索引

    Drop  unique  index    索引名   on  表名   删除唯一索引

    1. 索引中的两个索引名称:覆盖索引和索引合并.

    覆盖索引:在索引文件中直接获取数据,即select  的和通过索引查询的是同样的内容

    Select  id   from userinfo3  where  id >3000;

    索引合并:指的是把多个索引联合起来进行查找,如下,其中name是索引,email也是索引.select   * from userinfo3 where  name=’alex’   and email=’alex11@qq.com’

    注:联合索引的效率>索引合并的

    1. 对应要进行频繁查找的列,应该建立索引,然后进行索引查询.在进行索引查询时,只有命中索引才能进行索引查询.有以下几种情况是不能命中索引的
      1. Like  ‘%xx’  模糊匹配不能进行索引查询,我们应该导入第三方模块进行
      2. 使用函数,在where条件中对索引列进行使用函数,也不能进行索引查询
      3. 有or  的情况 如  select * from   t1   where   id  =1 or  name =’alex’  name不是索引,所以不能进行索引查找
      4. 类型不一致,如列是字符串类型,但是判断条件的值不是字符串类型,也不能进行索引查询
      5. !=   在条件判断中出现!=时,不走索引,但是主键例外
      6. >或<  在条件判断中出现<或>时,也不走索引,但是当主键或索引是整数类型时,可以走索引
      7. Order   by  一般情况下出现order  by的时候不走索引,但是当对索引排序时进行索引覆盖走索引,如果是对主键排序,则走索引
      8. 联合索引(组合索引)最左前缀

    8.判断是否走索引的方法(一般正确)

    通过explain  +select语句,explain的作用是预估其后跟的select语句的查询快慢.

    All  <index<range<index_merge<ref_or_null<ref<eq_ref<system/const

    Explain  select  * from  userinfo3  where name=’alex’

    Type:ALL(全表扫描,即没走索引)

    Type:const(走索引最快,查找的最多有一个匹配行)

    Explain       中type  =all,表示

                         Type=const表示

     

    查询结果中主要看id和type,id中的值表示预估的select语句有几个,type中的值表示该select语句是否走了索引,一般情况下,走索引的比没走索引的快

    9.通过建立索引,然后命中索引,就能进行select语句的优化,提高查询效率.所以在写查询语句时,对查询的语句通过explain预估该查询语句是否走了索引,然后看看是否犯了没命中索引的8种情况,最后对查询语句进行优化.

    10.慢日志查询  ,对于慢日志,要注意三点:1.执行时间>10 2. 未命中索引  3.日志文件路径  在mysql中通过show variables   like  ‘%query%’ 查询到mysql的当前配置信息,主要看slow_query_log  查看是否开启慢日志记录

         Long_query_time   时间限制,查看最长查询时间,一旦超过此时间,则记录

         Slow_query_log_file      查看慢日志文件及路径

    通过Show   variables like  ‘%queries%’查询是否记录索引设置信息.

    Log_queries_not_using_indexes     是否记录使用索引进行查询的情况

    修改当前配置:set  global   变量名=值

    在配置文件中进行修改(它是在服务端进行的)

    Mysqld  --defaults-file=’d:\mysql.conf’  表示按配置文件的内容,启动mysql服务

    在mysql.conf中设置配置信息:

          Slow_query_log=on

          Slow_query_log_file =

    Mysqld  --defaults-file=’ D:\Program Files(x86)\mysql\mysql-5.7.16-winx64\my-default.ini’  

    ’ D:\Program Files(x86)\mysql\mysql-5.7.16-winx64\my-default.ini’它是mysql服务端的默认配置文件

    注意: 修改配置文件之前,要把配置文件进行备份.     修改配置文件之后,需要重启服务,即如果对mysql.conf的内容进行修改了,就要从新运行Mysqld  --defaults-file=’d:\mysql.conf’

    11.分页  使用limit

           1)select  * from  userinfo3 limit  20,10; 表示从头扫到20行的位置,然后从它开始取10行显示;这种从头开始扫的方式进行分页效率很低

           2)分页进行优化的方式有,1.不让看,即有些页码掩藏,2.在索引表中扫

    在索引表中扫的a.记录当前页的最大或最小id

    1. 页面只有上一页,下一页

    #max_id

    #min_id

    下一页:

          Select * from userinfo3   where id>max_id   limit   10;表示先定位到id的位置.然后从该位置开始取10行

    上一页:  select *  from  userinfo3  where  id<min_id  order by  id desc   limit10;表示先定位到id的位置,然后按id倒序排列,在从该位置开始取10行

    1. 上一页   193  194  195  [196]   197  198   199   下一页,当前页码是196,如果选择199页码,则sql语句是:

           Select  *  from userinfo3 where id   in(

    Select  id  from  (select id from   userinfo3 where  id>max_id  limit30)  as n  order  by n.id  desc  limit  10)

     

    参考链接

    http://www.cnblogs.com/wupeiqi/articles/5716963.html

    转载于:https://www.cnblogs.com/IQ-Python/p/6994864.html

    展开全文
  • sqlite 增删改查

    2019-07-22 16:08:51
    主键:每个表可以存在一个主键,不能重复,不能为空。 唯一键:每个表可以存在多个,不能重复,可以为空。 外键:关联的字段。 基本语句 1. 新建或打开数据库。(如果此数据库不存在将新建一个,如果此数据库...

    概念

    主键:每个表可以存在一个主键,不能重复,不能为空。 

    唯一键:每个表可以存在多个,不能重复,可以为空。

    外键:关联的字段。

    基本语句

     1. 新建或打开数据库。(如果此数据库不存在将新建一个,如果此数据库存在,将打开此数据库)

    2. 查看数据库有什么表。(表名)

    3. 创建表

    Person为表名,括号里的内容为字段,此表为弱类型,即没有对数据进行限定。强类型写法为:

    create table Person(pid integer , name text , score integer);

    此写法创建重复的表会报错:

    如何重复创建表不报错(若无此表则创建,若此表存在则该语句无效,所以不会报错):

    4.删除表

    5.增:

    此为简写,完整写法为:

    如果数据没有与表中所有类型一一对应,将不可简写,必须写完整:

    6. 查:查询表中所有信息(所有信息将会打印)

    7.删:

    8.改:

    9.查:查询表中所有信息(所有信息将会打印)

    与6中的查询结果相同,6中 ‘ * ’就代表了表中所有类型。

    10. 查:只查询名字

    11.查:只想读取表中前三行

    12.查:原来的if条件,在这里用where.只想查分数大于93小于98的:

    13.查:由小到大排序,分数由小到大:

    14.查:由大到小:

    15.查:只想看分数最好的前三名:

    16.查:当前有几个人:

    17.查:所有人分数之和:

    18.查:平均分:

    Person表创建完成,下面我们再创建一个功夫表:

    primary key:设置为主键

    unique:设置为唯一键

    pid为外键,不用单独设置

    autoincrement:自增功能

    这里我们为kid设置了自增功能,以后添加数据时不用管kid,它会自增。

    我们为功夫表添加数据,添加功夫名称:

    创建好之后我们看见,我们并没有对kid进行设置,但它自动就添加了序号。

    到此,我们创建了两个表,Person表和Kungfu表,因为设置了外键pid,所以两个表相互之间有关联。

    那么如果综合查询两个表的数据呢:

    展开全文
  • 2、not null(不能为空)与default(默认值) 3、unique(唯一) 4、primary key(主键,不为空且唯一) 5、auto_incerment(自增id序号) 6、foreign key(外键,表之间的指向关系,关联关系) 一、介绍什么是...
  • 2、not null(不能为空)与default(默认值) 3、unique(唯一) 4、primary key(主键,不为空且唯一) 5、auto_incerment(自增id序号) 6、foreign key(外键,表之间的指向关系,关联关系) 一、介绍什么是...
  • 本章主要内容: 一、外键 二、表连接 三、子查询 ...1、什么是外键 ...主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, ...
  • 本章主要内容: 一、外键 二、表连接 三、子查询 四、索引 一、外键: ...主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复...
  • 本章主要内容: ...主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果...
  • 本章主要内容:html1、外键面试2、表链接sql3、子查询数据库4、索引ide1、外键:函数一、什么是外键工具二、外键语法性能三、外键的条件学习四、添加外键ui五、删除外键一、什么是外键:主键:是惟一标识一条记录,...
  • 本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据...
  • 本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据...
  • 本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据...
  • 本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据...
  • 本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据...
  • EF 如何更新部分列

    千次阅读 2017-09-15 11:01:01
    一、 为什么需要 在使用EF对数据库进行操作时... 新建需要更新的对象(千万别从数据库查,否则可能会出现部分字段不能为空的原因) Tentity entity = new Tentity() {/进行必要字段的赋值,主键为必须/}; 保存数
  • 本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据...
  • 另外需要注意的是,主键索引是一种特使的唯一索引,它还多了一个限制条件,要求键值不能为空。 全文索引(FullText):针对比较大的数据,比如存放的是消息内容。如果要解决查询like查询效率低的问题,可以创建全文...
  • else if (data.IS == "-2") { //json中的IS键对应的值-2,则说明数据库返回的主键不能转换成INT32类型 alert("数据库连接失败或访问失败!"); } else { alert("添加成功!"); $("#txtuserName").val(...
  • 答:string str = null 是给他分配内存空间,而string str = \"\" 给它分配长度为空字符串的内存空间。 25.请详述在dotnet中类(class)与结构(struct)的异同? 答:Class可以被实例化,属于引用类型,是分配在内存的...
  • 2009达内SQL学习笔记

    2010-02-10 19:46:58
    空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price="" 这种写法是错的(不要受到corejava的影响) prod_price=NULL 这种写法是错的(不要受到corejava的...
  •  //为什么要取第11个字符,因为第10个字符是空格字符  content=(temp.SubString(12,number-11)+'\n').c_str();  //余下的字符串将被作为写入的内容写入目标文件  FILE *fp=NULL;  char filename[20];  ...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

为什么主键内容不能为空