excelperfect Q:数据放置在列A中,我要得到这些数据中任意3个数据的所有可能组合。如下图1所示,列A中存放了5个数据,要得到这5个数据中任意3个数据的所有可能组合,如列B中所示。...如何实现? ? 图1 (注:这是无意在ozgrid.com中看到的一个问题,我觉得程序编写得很巧妙,使用了递归的方法来解决,非常简洁,特将该解答稍作整理后辑录于此与大家分享!)...Dim n AsLong Dim vElements As Variant Dim lRow As Long Dim vResult As Variant '要组合的数据在当前工作表的列...,有兴趣的朋友可以使用F8键逐语句运行代码观察代码效果,来理解实现过程。...代码的图片版如下: ? 如果将代码中注释掉的代码恢复,也就是将组合结果放置在多列中,运行后的结果如下图2所示。 ? 图2
default(sex) from people; comment 用来给列加注释,最多255个字符,注释会保存到数据字典中 id int not null primary key comment '...stu_comment’ 在CREATE TABLES语句中的表选项 engine:指定表使用的存储引擎 存储引擎:决定了数据如何存储以及如何访问,还有事务如何处理 show engines 用来查询所有支持的存储引擎...中,可以通过该表查询约束信息 常见的约束类型 not null非空,指定某列不为空(注意区分空和空格的关系) unique:唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,...指定某列的数据不能重复,唯一 foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条记录 check:检查,指定一个表达式,用于检验指定数据 primary key = not null...+ unique 主键是用来唯一标识表中的每一行,类型一般为整型或者字符串 具有主键约束的列不允许有null值,不允许有重复值 每个表最多只允许一个主键,可定义联合主键,主键名总是PRIMARY 联合主键
例如,学生信息表中的学号是唯一的。 唯一约束 唯一约束用于保证指定列或指定列组合不允许出现重复值。 例如,在用户信息表中,要避免表中的用户名重名,就可以把用户名列设置为唯一约束。...主键是用于唯一标识表中每一行的一个或多个列的组合。这些列的值必须唯一且不为空。 index_option:这是可选的部分,用于指定主键索引的选项。...这些选项可以包括 USING(指定索引类型)、KEY_BLOCK_SIZE(指定索引块大小)、COMMENT(为索引添加注释)等。...这意味着 id 列将唯一标识表中每一行。 创建唯一约束 建表时在字段后使用 UNIQUE 创建唯一约束。 例如,在用户信息表中,要避免表中的用户名重名,就可以把用户名列设置为唯一约束。...CREATE TABLE users ( id INT, name VARCHAR(255) UNIQUE ); 可以创建一个多列唯一约束,以确保多个列的组合值在表中是唯一的。
可以使用DESCRIBE命令,该命令可以显示出表中所有列的名称、数据类型、默认值、空值约束、键约束等信息。...注意: 在使用 ALTER TABLE 命令修改列时,如果省略了数据类型,会报错,因为必须指定新的数据类型。...要将列移动到表的最后位置,可以使用 AFTER 关键字指定该列所要移动到的列的名字。...其他(按照索引列数量分类) 单列索引 组合索引:组合索引的使用,需要遵循最左前缀匹配原则(最左匹配原则)。一般情况下在条件允许的情况下使用组合索引替代多个单列索引使用。...如果要查看特定约束的详细信息(例如包含的列),可以使用INFORMATION_SCHEMA.KEY_COLUMN_USAGE表进行查询。
create tables选项 定义列的时候,指定列选项 约束的概念 对表中的数据进行限定,保证数据的正确性。...有效性和完整性DEFAULT 定义列的默认值 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值,如果没有为null sex char(1) default ‘m’ COMMENT...用来给列添加注释,最多255个字符,注释保存到数据字典中 创建带有列注释的表stu_comment create table stu_comment( id int not null primary...from information_schema.columns where table_name=’stu_comment’ 常见的约束类型 not null 非空类型,指定某列不为空 unique...唯一约束,指定某列和几列组合的数据不能重复 primary key 主键约束,指定某列的数据不能重复 foreign key 外键,指定该列记录属于主表中的一条记录,参照另一条数据 check 检查,指定一个表达式
SQL的3个高级特性: 约束constraint 索引index 触发器trigger 约束 约束是管理如何插入或者处理数据库数据的规则。...DBMS通过在数据库表上施加约束来实施引用完整性。 1、主键 主键是一种特殊的约束,用来保证一列(或者一组列)中的值是唯一的。...唯一约束用来保证一列中的数据是唯一的,可以通过关键词UNIQUE来定义。...它和主键的区别在于: 表中可以包含多个唯一约束,但是只能有一个主键 唯一约束列可以包含NULL值 唯一约束列可以修改或者更新 唯一约束列的值可以重复使用 与主键不同,唯一约束不能用来定义外键 4、检查约束...检查约束用来保证一列(或者一组列)中的数据满足一组指定的条件,常见的用途有: 检查最大值或者最小值 指定数据的范围 只允许特定的值,例如性别字段中只允许M或者F CREATE TABLE OrderItems
所有的表都是由一个或者多个列组成的。 数据库中的每个列都应该是具有的相同数据类型datatype。数据类型定义了列可以存储哪些数据类型。...SQL的3个高级特性: 约束constraint 索引index 触发器trigger 约束 约束是管理如何插入或者处理数据库数据的规则。...DBMS通过在数据库表上施加约束来实施引用完整性。 1、主键 主键是一种特殊的约束,用来保证一列(或者一组列)中的值是唯一的。...唯一约束用来保证一列中的数据是唯一的,可以通过关键词UNIQUE来定义。...它和主键的区别在于: 表中可以包含多个唯一约束,但是只能有一个主键 唯一约束列可以包含NULL值 唯一约束列可以修改或者更新 唯一约束列的值可以重复使用 与主键不同,唯一约束不能用来定义外键 4、检查约束
高级特性包含下面几点: 约束 索引 触发器 数据库安全 约束和索引 约束指的是针对某个字段的限制,而索引则是约束的具体实现。多数时候可能比较模糊的是唯一索引和唯一约束区别,主键索引和唯一索引的区别。...唯一索引和唯一约束的不同点: 唯一约束通过唯一索引实现。 删除唯一约束可以删除约束但是对应的索引结构不会一并删除,所以对应列在删除约束之后依然不能删除,但是如果约束和索引一起删除就可以插入重复值。...主键约束和唯一约束的区别: 表可包含多个唯一约束,但每个表只允许一个主键。 唯一约束列可包含 NULL 值。 唯一约束列可修改或更新。 唯一约束列的值可重复使用,主键值则不可以二次使用。...要在 Oracle中使用别名,可以不用 AS ,简单 地指定列名即可(因此,应该是 Customers C ,而不是 Customers AS C )。...组合查询 组合查询一般指的是union查询,对于union查询我们会疑问是使用union all还是单纯的使用 union,对于这两种用法的主要区别是: union:会对组合的列结果自动进行去重和排序。
索引有三种类型 1.唯一索引:唯一索引通过确保表中没有两行数据具有相同的键值来帮助维护数据完整性。定义主键时,可以自动应用唯一索引。它确保索引键列中的值是唯一的。...SQL中可用的约束有哪些? SQL中的一些约束包括–主键,外键,唯一键,SQL非空,默认,检查和索引约束。 38.什么是唯一约束? 使用唯一约束来确保字段/列中没有重复值。 39.什么是主键?...一个PRIMARY KEY 约束唯一标识数据库表中的记录。 参与主键约束的所有列均不得包含NULL值。 40.一个表可以包含多个PRIMARY KEY吗?...简短的答案是“否”,一个表不允许包含多个主键, 但是它允许一个包含两个或更多列的复合主键。 41.什么是复合 主键? 复合主键是在表中的多个列(多个字段的组合)上创建的主键。 42.什么是外键?...让我们看一下重要的SQL查询以进行面试 76.如何从表中获取唯一记录?
多数时候可能比较模糊的是唯一索引和唯一约束区别,主键索引和唯一索引的区别。 「唯一索引和唯一约束的不同点」: 「唯一约束通过唯一索引实现」。...「主键约束和唯一约束的区别」: 表可包含「多个唯一约束」,但每个表「只允许一个主键」。 「唯一约束列可包含 NULL 值。」 唯一约束列可修改或更新。...唯一约束列的值可重复使用,主键值则不可以二次使用。 与主键不一样,「唯一约束不能用来定义外键」。...要在 Oracle中使用别名,可以不用 AS ,简单 地指定列名即可(因此,应该是 Customers C ,而不是 Customers AS C )。...组合查询 组合查询一般指的是union查询,对于union查询我们会疑问是使用union all还是单纯的使用 union,对于这两种用法的主要区别是: union:会对组合的列结果「自动进行去重和排序
,指定某列不能为空,只能作为列级约束使用,只能使用列级约束语法定义。 ...; #取消非空约束,并指定默认值 alter table t_test modify name varchar(255) default 'abc' null; 2.UNIQUE: 唯一约束,指定某列或者几列组合不能重复...同一个表内可创建多个唯一约束,唯一约束也可有多列组合而成。 当为某列创建唯一约束时,MySQL会为该列创建唯一索引, 如果不给唯一约束起名,该唯一约束默认与列名相同。...唯一约束可以使用列级语法建立,也可以使用表级语法建立。 如果是为多列建立组合约束,或者需要为约束指定约束名,则只能使用表级语法。...test2_uk unique (pass) ); #创建表时,使用表级语法建立组合列的唯一约束 create table unique_test3 ( id int not null,
唯一性约束 3.1 作用 用来限制某个字段/某列的值不能重复。 3.2 关键字 UNIQUE 3.3 特点 同一个表可以有多个唯一约束。 唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。...唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。 唯一性约束允许列值为空。 在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同 MySQL会给唯一约束的列上默认创建一个唯一索引。...删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样 如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同;如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。...删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样 如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同; 如果是组合列,那么默认和()中排在第一个的列名相同。 也可以自定义唯一性约束名。...,可列自增长列约束的列必须是键列(主键列,唯一键列)自增约束的列的数据类型必须是整数类型 如果自增列指定了 0 和 null,会在当前最大值的基础上自增; 如果自增列手动指定了具体值,直接赋值为具体值
唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。 唯一性约束允许列值为空。 在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同。...删除唯一约束只能通过删除唯一索引的方式删除。 删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样。...如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同;如果是组合列,那么默认和() 中排在第一个的列名相同。也可以自定义唯一性约束名。...+非空约束的组合,主键约束列不允许重复,也不允许出现空值。...主键约束对应着表中的一列或者多列(复合主键) 如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。 MySQL的主键名总是PRIMARY,就算自己命名了主键约束名也没用。
【重学 MySQL】六十四、主键约束的使用 在MySQL中,主键约束(PRIMARY KEY)用于唯一标识表中的每一行数据。...主键约束的特性 唯一性:主键约束列的值必须是唯一的,不能有重复的值。 非空性:主键约束列的值不能为空(NULL)。...自动索引:当创建主键约束时,系统默认会在所在的列或列组合上建立对应的唯一索引,从而加快数据检索速度。 主键约束的创建 创建单列主键 单列主键是指主键约束只作用于一个列。...主键约束的特点 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值。 一个表最多只能有一个主键约束,建立主键约束可以在列级别创建,也可以在表级别上创建。...主键约束与自增长约束 在MySQL中,主键约束通常与自增长约束(AUTO_INCREMENT)一起使用。自增长约束用于在插入新记录时自动生成一个唯一的值(通常是整数),这个值会自动填充到主键列中。
模式(schema) - 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。...列(column) - 表中的一个字段。所有表都是由一个或多个列组成的。 行(row) - 表中的一个记录。 主键(primary key) - 一列(或一组列),其值能够唯一标识表中每一行。...可以在 WHERE 子句中使用的操作符 运算符 描述 = 等于 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !...约束类型 NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。...CHECK - 保证列中的值符合指定的条件。 DEFAULT - 规定没有给列赋值时的默认值。
模式(schema) - 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。...可以在 WHERE 子句中使用的操作符 运算符 描述 = 等于 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !...ASC :升序(默认) DESC :降序 可以按多个列进行排序,并且为每个列指定不同的排序方式 指定多个列的排序方向 SELECT * FROM products ORDER BY prod_price...约束类型 NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。...CHECK - 保证列中的值符合指定的条件。 DEFAULT - 规定没有给列赋值时的默认值。
约束的分类 非空约束 关键字 NOT NULL 特点 默认,所有的类型的值都可以是NULL,包括INT、FLOAT等数据类型 非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空...唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。 唯一性约束允许列值为空。在创建唯一约束的时候, 如果不给唯一约束命名,就默认和列名相同。...MySQL会给唯一约束的列上默认创建一个唯一索引。 添加唯一约束 举例: 删除唯一约束 添加唯一性约束的列上也会自动创建唯一索引。 删除唯一约束只能通过删除唯一索引的方式删除。...删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样。 如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同;如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。...,也可以是多个字段, #如果是多个字段的话,是复合主键 删除主键约束 自增列:AUTO_INCREMENT 作用 某个字段的值自增 关键字 auto_increment 如何指定自增约束
特点:主键值必须唯一,且不能为NULL。每个表中只能有一个主键,但可以由一个或多个列组合而成。...特点:检查约束可以确保列中的值在指定的范围内或满足特定的条件。例如,可以使用检查约束确保年龄必须大于0或日期必须在有效范围内内。...默认值约束(Default Constraint) 定义:为表中的某一列指定默认值,当插入新行时未指定该列的值时,将使用默认值。...常见的表级约束包括: 唯一约束(UNIQUE): 当唯一约束涉及多个列时,它必须在表级定义。这可以确保这些列的组合在表中是唯一的。...NULL, order_date DATE NOT NULL, UNIQUE (customer_id, order_date)); 在这个例子中,customer_id 和 order_date 列的组合被指定为唯一约束
在用 UNION 组合查询时,只能使用一条ORDER BY 子句,它必须出现在最后一条SELECT语句之后 SELECT INTO 语句 我们可以复制所有的列插入到新表中: SELECT * INTO...在 SQL 中,我们有如下约束: NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。...NOT NULL 约束 强制列不接受 NULL 值。 建表的时候指定 NOT NULL ... LastName varchar(255) NOT NULL, ......KEY 约束 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。...否则指定的变更后信息将全量覆盖变更前的信息。 SQL AUTO INCREMENT 字段 Auto-increment 会在新记录插入表中时生成一个唯一的数字。
关键字:UNIQUE 同一个表可以有多个唯一约束。 唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。 唯一性约束允许多列值为空。...删除唯一约束只能通过删除唯一索引的方式删除。 删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样。...如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同; 如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。...关键字:primary key 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值。 如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。...) 自增约束的列的数据类型必须是整数类型 如果自增列指定了 0 和 null,会在当前最大值的基础上自增;如果自增列手动指定了具体值,直接 赋值为具体值。
领取专属 10元无门槛券
手把手带您无忧上云