[first|afterColName] 数据库约束 5种完整性约束 1、NOT NULL:非空约束,指定某列不能为空。...Sname, Spass) REFERENCES 主表名(Fname, Fpass) ); 2、级联删除(定义当删除主表记录时,从表记录也会随之级联删除/从表记录的外键设置为null) CREATE...创建索引: 1、自动 当在表上定义主键约束、唯一约束、外键约束时,系统自动创建对应的索引。...2、手动 CREATE INDEX 索引名 ON 表名(name, pass); 删除索引: 1、自动 数据表被删除时,该表上的索引自动被删除。...出现在from语句后当成数据表; 出现在where条件后作为过滤条件的值; 子查询要用括号括起来; 把子查询当成数据表时,可以为该子查询起别名。
6.1、主键约束 主键约束的特点有:非空、唯一、被引用 当表的某一列被指定为主键后,该列就不能为空,不能有重复值出现。 1....主键自增长 因为主键列的特点是:必须唯一,不能为空,所以我们通常会指定主键类为整型,然后设置其自动增长,这样可以保证在插入数据时主键列的唯一和非空特性。...; ü 子查询和父查询可以针对不同张表; ü 子查询与父查询在传统参数时,数量要相同 ü 父查询的条件要与子查询的结果,在参数数量、类型、含义上要相同 查询部门名为‘SALES’的员工信息(多表查询...父查询用=//>=/<=来比较 多行子查询:子查询会返回多个结果,例如20,30,父查询用in/any/all来比较 查询部门名为‘ACCOUNTING’或‘SALES’的员工信息(多行子查询,使用...to 新表名 注意:修改表时,不会影响表中原有的数据 三、JDBC基础 1、什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,简单来说,就是用Java
,而且禁止使用临时表 --2.数据表的存储引擎只能为InnoDB /* 3.外键列和参照列必须具有相似的数据类型。...必须保证子表列没有指定NOT NULL) 3.RESTRICT:拒绝对父表的删除或更新操作 4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同 --例子 CREATE...,而且禁止使用临时表 --2.数据表的存储引擎只能为InnoDB /* 3.外键列和参照列必须具有相似的数据类型。...--或者tb_name alias_name 赋予别名 --table_subquery 可以作为子查询使用在FROM子句中,这样的子查询必须为其赋予别名 --内连接,显示左表及右表符合连接条件的记录...B(在没有指定WHERE条件的情况下) 如果数据表A的某条记录符合WHERE条件,但是在数据表B不存在符合连接条件的记录,将生成一个所有列为空的额外的B行 */ --左外连接,显示左表的全部记录及右表符合连接条件的记录
自动增长的,每条数据,自动在上一个记录数上加1(默认) 通常设置主键,且必须是整数类型 可以自定义设置主键自增的起始值和步长 2.4.4 null 和 not null null ,如果不填写值,默认就是...null not null,如果不填写值就会报错 2.4.5 业务中每个表必须存在的5个字段 字段名 说明 id 主键 version 乐观锁 is_delete 逻辑删除 gmt_create 创建时间...count(*),效率第 -- 推荐使用count(1),或者 count(主键列) -- 强调:使用count(非主键列),如果当前列值允许为空,统计时遇到值为空的记录时,不会计数 select count...值跟任何数运算结果都是null,而我们有时候又需要对null进行计算; -- 语法: ifnull(数据列,如果为null的默认值),这个时mysql特有的,oracle没有,它里面是nvl() -...-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 --> maxWait=60000 #JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] #注意
: com.mysql.cj.jdbc.Driver 否则运行测试用例的时候会有 WARN 信息 2、连接地址url MySQL5.7版本的url: jdbc:mysql://localhost...ID 批量删除) * * @param idList 主键ID列表(不能为 null 以及 empty) */ int deleteBatchIds(@Param(...@TableName 在使用MyBatis-Plus实现基本的CRUD时,我们无需指定要操作的表,只需在Mapper接口继承BaseMapper时,设置了泛型(User),由BaseMapper的泛型决定...@TableId MyBatis-Plus在实现CRUD时,会默认将id作为主键列,并在插入数据时,默认基于雪花算法的策略生成id,若实体类和表中表示主键的不是id,而是其他字段,例如uid,MyBatis-Plus...中仍旧能看到此条数据记录 使用场景:可以进行数据恢复 在数据库表中首先添加字段表示逻辑删除 测试删除功能,真正执行的是修改,当再次查询时,被逻辑删除的数据默认不会被查询 UPDATE t_user
FROM test; -- 结论:如不指定Where则删除该表的所有列数据,自增当前值依然从原来基础上进行,会记录日志. -- 删除表数据(truncate) TRUNCATE TABLE test.../* 自连接 数据表与自身进行连接 需求:从一个包含栏目ID , 栏目名称和父栏目ID的表中 查询父栏目名称和其他子栏目名称 */ -- 创建一个表 CREATE TABLE `category...,子栏目名称) -- 核心思想:把一张表看成两张一模一样的表,然后将这两张表连接查询(自连接) SELECT a.categoryName AS '父栏目',b.categoryName AS '子栏目...-- count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。...-- count(*) 包括了所有的列,相当于行数,在统计结果的时候,包含字段为null 的记录; -- count(1) 用1代表代码行,在统计结果的时候,包含字段为null 的记录 。
-126 42829 不能为一个UPDATE语句指定ORDER BY语句 -127 42905 在子选择中DISTINCT只能指定一次 -128 42601 SQL谓词中NULL使用不当 -129 54004...可改变主健列值的更新语句不能在同一时刻用于更新多行 -535 21502 当从自我引用表中删除数据或者更新主健列时,不能指定WHERE CURRENT OF。...BYDEFAULT属性的ROWID列 -542 42831 可以为空的列不允许作为主健的一部分包含在内 -543 23511 因为该表是指定了SET NULL删除规则的参照约束的父表而且检查约束不允许...42613 指定语句时相互排斥的(例如,不能分区一个分段的表空间) -629 42834 因为该外健不能包含空值,所以SET NULL无效 -630 56089 不能为1型索引指定WHERE NOT NULL...表的记录长度超过了页面的大小 -671 53040 不能更改指定的表空间的缓冲池,因为这将改变表空间的页面大小 -672 55035 在命名的表上不允许DROP -676 53041 只有4KB的缓冲池可被用于一个索引
: 行为 说明 NO ACTION 当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。...(与 RESTRICT 一致) 默认行为 RESTRICT 当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。...(与 NO ACTION 一致) 默认行为 CASCADE 当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则 也删除/更新外键在子表中的记录。...SET NULL 当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表 中该外键值为null(这就要求该外键允许取null)。...SET DEFAULT 父表有变更时,子表将外键列设置成一个默认的值 (Innodb不支持) 外键约束条件修改代码: ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN
1.1.6 单行处理函数 ifnull(可能为null的数据被当作什么处理):属于单行处理函数分组。 1.1.7 结果集的去重 distinct 关键字去除重复记录(只能出现在所有字段的最前面)。...1.2.1 简单连接 连接查询实际是通过表与表之间相互关联的列进行数据的查询,对于关系数据库来说,连接是查询最主要的特征。...in (select * isbn from brrowrecord where reader_id='201801'); 1.3.2 带有比较运算符的子查询 指父查询与子查询之间用比较运算符连接...where reader_id="201801"); 1.3.4 带有EXISTS谓语的子查询 EXISTS谓语的子查询不返回任何数据,是一个布尔值(true或false)逻辑判断。...## 删除所有记录 delete from test where pid==123; #删除id为123的这条记录。
数字类型不匹配:如果通过ODBC或JDBC提供了无效的双精度数,则会出现SQLCODE-104错误。 每个字段值必须将显示传递到逻辑模式转换。...试图将子查询指定为字段值将导致SQLCODE -144错误。 插入操作 Privileges 要将一行或多行数据插入到表中,您必须拥有该表的表级特权或列级特权。...可以使用%CHECKPRIV来确定是否具有适当的列级特权。 快速插入 当使用JDBC在表中插入行时 IRIS默认情况下会自动执行高效的Fast Insert操作。...快速插入必须在表上执行。 不能在可更新视图上执行。 当表具有以下任何特征时,不执行快速插入: 该表使用嵌入式(嵌套)存储结构(%SerialObject)。 该表是一个链接的表。 该表是子表。...(3)在事务期间应用表锁,不执行记录锁。
,不能满足海量数据的高效率读写 不节省空间。...添加一列 alter table 表名 add 列名 数据类型 修改列名称 类型 alter table 表名 change 列名 新列别 新数据类型 删除列 alter table 表名 drop...值不能为null 创建表时添加约束 create table 表名( 字段 类型 not null ); 创建表完后,添加非空约束 alter table 表名 modify 字段...类型 not null 删除字段的非空约束 alter table 表名 modify 字段类型 唯一约束:unique,值不能重复 注意 唯一约束可以有null值,但是只能有一条记录为...null 在创建表时,条件唯一约束 create table 表名( 字段 类型 unique ); 删除唯一约束 alter table 表名 drop index 字段 在表创建完后
,将错误代码格式化成标准的JDBC错误代码。...JDBC中执行SQL语句可以使用Statement接口以及其子接口PreparedStatement接口,下面分别使用不同接口来举例简单说明其用法: 5.1.Statement接口方法创建表: /**...void rollback() 撤销对数据库执行的添加、删除或者修改记录等操作,并释放此Connection对象当前持有的所有数据库锁。...是Statement的子接口。 创建PreparedStatement对象时需传入一个SQL语句,该SQL语句已预编译并存储在PreparedStatement对象中。...为实现最大的可移植性,应按从左到右的顺序读取每一行中的结果集列,并且每一列只能读取一次。 getter方法用列名检索时传入的列名称不区分大小写。 当多个列具有相同的名称时,将返回第一个匹配列的值。
1.关于表 表示数据库存储数据的基本单位。一个表可以包含若干个字段或者是记录。表的操作包括创建表、修改表、删除表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性约束的过程。...2.3使用外键: 外键用来在两个数据表之间建立连接,它可以是一列,也可以是多列; 语法: 在创建表的时候添加 字段1 数据类型 [完整性约束], 字段2 数据类型 [完整性约束], 字段N...注意; 1.关联的父表列,一定是父表的主键列 2.关联的父表如果为联合主键是,先关联联合主键中的第一个字段 3.关联父表时,被关联的外键的数据类型要和父表主键的数据类型一致,否则关联失败 4.关联父表时...5.要避免书写错误 6.如果两个表之间有外键关联,如果我们想要删除父表,必须先解除外键的关系,或者先删除掉子表, 否则无法删除父表 2.4使用非空约束 非空约束指字段的值不能为空 语法: 在创建表时...3.9 删除数据表; 语法 : drop table 表1,表2,表N… [IF EXISTS]:不加这个,如果我们要删除的表不存在就会报错,加上呢,不存在也会执行删除操作,不会返回错误信息 注意
删除列 alter table 表名 drop 列名; 4....删除数据: * 语法: delete from 表名 where 条件; -- 删除具体某一行数据 注意: 如果不加条件,则删除表中所有记录; 如果要删除所有记录: 1.delete from 表名;...有多少条记录就会执行多少次删除操作,效率低; 2.truncate table 表名; --推荐使用,效率更高;先删除表,然后再创建一张一模一样的表。...null值; 解决方案: 选择不包含非空的列进行计算; ifnull函数。...三大范式: 第一范式(1NF):每一列都是不可分割的院子数据项(只要能表能出来,都符合第一范式); 第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的函数部分依赖
1.关于表 表示数据库存储数据的基本单位。一个表可以包含若干个字段或者是记录。表的操作包括创建表、修改表、删除表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性约束的过程。...表名 ADD PRIMARY KEY (字段名) 2.3使用外键: 外键用来在两个数据表之间建立连接,它可以是一列,也可以是多列; 语法: 在创建表的时候添加 字段1 数据类型 [完整性约束...,一定是父表的主键列 2.关联的父表如果为联合主键是,先关联联合主键中的第一个字段 3.关联父表时,被关联的外键的数据类型要和父表主键的数据类型一致,否则关联失败 4.关联父表时,父表和子表的存储引擎必须为...5.要避免书写错误 6.如果两个表之间有外键关联,如果我们想要删除父表,必须先解除外键的关系,或者先删除掉子表, 否则无法删除父表 2.4使用非空约束 非空约束指字段的值不能为空 语法: 在创建表时...: drop table 表1,表2,表N… [IF EXISTS]:不加这个,如果我们要删除的表不存在就会报错,加上呢,不存在也会执行删除操作,不会返回错误信息 注意:如果我们要删除的表是另一个设置了外键的表的父表
可以把列修改为不使用NULL,这需要在创建表时使用关键字NOT NULL。 创建表时使用DEFAULT,可于日后输入缺乏部分数据的记录时自动的填入默认值。...有办法确定外键已经连接到父键了吗? A:外键为NULL,表示在父表中没有相符的主键。但我们可以确认外键包含有意义、已经存储在父表中的值,请通过约束实现。...不能单纯的使用另一张表的键,称之为外键,而不加上约束吗? A:其实可以,但创建成外键约束后,就只能插入已经存在于父表中的值,有助于加强两张表间的连接。 加强连接?是什么意思?...如果我们试着删除主键表中的行或者是改变主键值,而这个主键是其他表的外键约束时,你就会收到错误警告。 所以上面说的那种,我就不能删除了是吗? A:还是可以的,先移除外键行即可。...内联接 INNER JOIN利用条件判断中的比较运算符结合两张表的记录。只有联接记录符合记录条件时才会返回列。
-- 元素用于指定生成一组对象的环境。例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。...,基本上都是的子元素,这些子元素(有严格的配置顺序)包括: (0个或多个) (0个或多个) (0个或...该元素有两个必选属性: driverClass:访问数据库的JDBC驱动程序的完全限定类名 connectionURL:访问数据库的JDBC连接URL 该元素还有两个可选属性: userId...这是一个独立于数据库获取标识列中的值的方法。 重要: 只有当目标运行为MyBatis3时才会产生正确的代码。 如果与iBATIS2一起使用目标运行时会产生运行时错误的代码。...这将标志MBG从插入列表中删除该列。默认值是false。
不能设置无法比较大小的列,例如:boolean/bit。如果不指定,则参照表中所有的列来查询全量数据,这会对性能产生影响。...点击“->”继续配置MySQL连接: 在弹出的页面中填入: 连接MysqlURL: jdbc:mysql://192.168.179.5:3306/mynifi?...characterEncoding=UTF-8&useSSL=false MySQL驱动类:com.mysql.jdbc.Driver MySQL jar包路径:需要提前在NiFI集群各个节点上创建对应目录并上传...如果传入的FlowFile不包含任何记录,则输出一个空JSON对象。...Null Value Representation(Null值表示) empty string empty string the string 'null' 指定结果为空值时的表示形式。
可以这样理解,子查询实际上是通过未知表进行查询后的条件判断, 而自连接时通过已知的自身数据表进行条件哦按段, 因此在大部分DBMS中都对自连接处理进行了优化。...约束等级 Cascade方式:在父表上update/delete记录时,同步update/delete掉子表的匹配记录。...Set null方式 :在父表上update/delete记录时,将子表上匹配记录的列设为null,但是要注意子表的外键列不能为not null。...注意点 注意,如果在子表中定义了外键约束,并且外键指定了ON UPDATE/DELETE CASCADE/SET NULL子句,此时修改父表被引用的键值或删除父表被引用的记录行时,也会引起子表的修改和删除操作...“ON DELETE SET NULL”子句,那么如果此时删除父表部门表(t_department)在子表员工表(t_employee)有匹配记录的部门记录时,会引起子表员工表(t_employee)匹配记录的部门编号
领取专属 10元无门槛券
手把手带您无忧上云