赛博错题本
机构抽象老师非得让我们整一个错题本,我寻思都学计算机了,还在整高中做题呢一套是什么意思呢,更何况考试也就一周一次,你整个本完完全全没有必要,整个赛博错题本得了。以后错题都会存在这里,基本上一周一更新吧。。大概。
正文:
- java中用()字指明继承关系,用()关键字指明对接口的实现。(C)B
A implements extends
B extends implements
C extend implement
D implement extend
这题纯没记住,被idea单词提示害了,嗯个tab建的事大费周章(
- 以下关于 abstract 关键字的说法,正确的是(B)D
A abstract可以与final 并列修饰同一个类。
B abstract类中不可以有private的成员。
C abstract类中必须全部是abstract方法。
D abstract方法必须在abstract类或接口中。
抽象类能有私有成员,abstract
方法必须在抽象类或接口中声明,不能在普通类中。
- 能用来修饰interface的有(D)B
A private
B public
C protected
D static
这题我审题出错了,我以为是接口类的成员能用来修饰的。
抽象类和接口有什么区别?
接口和抽象类的区别:
(1)抽象类可以有构造方法,接口中不能有构造方法。
(2)抽象类中可以有普通成员变量,接口中没有普通成员变量
(3)抽象类中可以包含静态方法,接口中不能包含静态方法
(4) 一个类可以实现多个接口,但只能继承一个抽象类。
(5)接口可以被多重实现,抽象类只能被单一继承
(6)如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接
- 在MySQL中,哪个命令用于删除表?(B)C
A. REMOVE TABLE B. DELETE TABLE C. DROP TABLE D. CLEAR TABLE
- 在MySQL中,哪个命令用于备份数据库?(A)B
A. BACKUP B. DUMP C. EXPORT D. COPY
什么是数据库三范式?
第一范式(1NF):确保每个表中的每个字段都是原子的,不可再分。即每个字段不能包含多个值或重复的值。这是数据库设计的基本要求,确保每个域都是原子数据项,不能是集合、数组或记录等非原子数据项。
第二范式(2NF):在1NF的基础上,非主键字段必须完全依赖于主键,不能仅依赖于主键的一部分。即消除部分依赖。这意味着每个非主键字段必须与主键有完全的依赖关系,不能存在仅依赖于主键一部分的情况。
第三范式(3NF):在2NF的基础上,非主键字段只能依赖于主键,而不能依赖于其他非主键字段。即消除传递依赖。这意味着每个非主键字段必须直接依赖于主键,不能存在非主键字段A依赖于非主键字段B,而B又依赖于主键的情况。
设计表时,有哪些数据完整些约束?
-
主键约束 (PRIMARY KEY)
- 主键用于唯一标识每一行记录,确保表中的每条记录都是唯一的。
- 主键字段不能为
NULL
,且每个表只能有一个主键。 - 主键通常由一个或多个字段组成(复合主键)。
-
外键约束 (FOREIGN KEY)
- 外键约束确保表之间的引用完整性,即一个表的外键列只能包含另一个表的有效主键值。
- 外键约束可以用来维护数据的一致性,比如防止删除一个被其他表引用的记录。
-
唯一约束 (UNIQUE)
- 唯一约束用于确保一个列或一组列中的所有值都是唯一的。
- 与主键类似,唯一约束可以防止重复数据,但与主键不同,唯一约束允许列值为
NULL
(具体取决于数据库的实现)。
-
非空约束 (NOT NULL)
- 非空约束确保列中的数据不能为
NULL
。这个约束通常用于确保在数据插入或更新时该列必须有值。
- 非空约束确保列中的数据不能为
-
检查约束 (CHECK)
- 检查约束用于限制列中的数据范围或数据模式。例如,可以定义一个检查约束,确保某列的值在一个特定的范围内(如年龄大于 0,价格大于 0 等)。
- 检查约束允许定义更复杂的规则,如字符串长度限制、正则表达式匹配等。
-
默认值约束 (DEFAULT)
- 默认值约束用于为列提供一个默认值,若插入数据时该列未提供值,则会使用默认值。
-
唯一索引 (UNIQUE INDEX)
- 虽然与唯一约束类似,但唯一索引允许对多个列组合进行唯一性验证,并且能够提高查询性能。
-
自增约束 (AUTO_INCREMENT / SERIAL)
- 自增约束通常用于主键列,自动为每一行生成唯一的标识符。自增字段会随着每次插入数据自动增长,避免了手动为主键赋值。
-
复合约束 (Composite Constraints)
- 复合约束是针对多个列的组合约束。比如,复合主键是由多个列组成的主键,复合唯一约束则是多个列的联合唯一性验证。
MySQL
都有哪些常用的数据类型?
常用的数据类型有:
整型(xxxint)
位类型(bit)
浮点型(float和double、real)
定点数(decimal,numeric)
日期时间类型(date,time,datetime,year)
字符串(char,varchar,xxxtext)
二进制数据(xxxBlob、xxbinary)
枚举(enum)
集合(set)
表连接可分为哪些?各自有什么特点?
内连接 (INNER JOIN)
- 特点:只返回两个表中符合连接条件的记录,即只有在连接字段匹配时才会返回结果。
- 用途:用于查询两个或多个表中都存在的数据。
- 返回结果:仅包含在两个表中都有匹配记录的行。
2. 左连接 (LEFT JOIN) 或 左外连接 (LEFT OUTER JOIN)
- 特点:返回左边表(
table1
)的所有记录,即使右边表(table2
)没有匹配记录。如果右边表没有匹配记录,结果中相应的右表列会返回NULL
。 - 用途:常用于查询某个表的所有记录以及其他表中匹配的记录,即使另一表没有对应的数据。
- 返回结果:包含左表所有记录和匹配的右表记录。如果右表没有匹配的记录,则右表部分为
NULL
。
3. 右连接 (RIGHT JOIN) 或 右外连接 (RIGHT OUTER JOIN)
- 特点:与左连接相反,返回右边表(
table2
)的所有记录,即使左边表(table1
)没有匹配记录。如果左边表没有匹配记录,结果中相应的左表列会返回NULL
。 - 用途:查询右表的所有记录以及左表中匹配的记录。
- 返回结果:包含右表所有记录和匹配的左表记录。如果左表没有匹配的记录,则左表部分为
NULL
。
4. 全连接 (FULL JOIN) 或 全外连接 (FULL OUTER JOIN)
- 特点:返回两个表中所有的记录。无论左表或右表是否有匹配记录,如果某一表没有匹配项,则该表的列会返回
NULL
。 - 用途:用于查询两个表中的所有数据,包括匹配的和不匹配的记录。
- 返回结果:返回两个表的所有记录,对于没有匹配的记录,另一表部分为
NULL
。
5. 交叉连接 (CROSS JOIN)
- 特点:返回左表和右表的笛卡尔积,即每个左表的记录都会与右表的每个记录组合,结果集的行数是左表行数乘以右表行数。
- 用途:适用于需要生成所有可能的组合的场景。
- 返回结果:返回左表的每一行与右表的每一行的所有组合。
6. 自连接 (SELF JOIN)
- 特点:表与自身进行连接,通常使用表的别名来表示同一张表的不同“角色”。
- 用途:常用于需要查找表中记录之间关系的场景,如查找员工与经理之间的关系。
- 返回结果:通过别名将表自身的记录进行关联,通常用于关联表中具有自引用关系的数据。
各连接方式的比较:
连接类型 | 结果集包含的记录 | 连接条件是否匹配 | 适用场景 |
---|---|---|---|
内连接 (INNER JOIN) | 仅包含两个表中匹配的记录 | 必须匹配 | 查询两个表中都有的数据。 |
左连接 (LEFT JOIN) | 包含左表所有记录和右表匹配记录;左表记录没有匹配时,右表部分为 NULL | 左表记录必须返回 | 查询左表的所有数据,右表有匹配则返回数据,否则返回 NULL 。 |
右连接 (RIGHT JOIN) | 包含右表所有记录和左表匹配记录;右表记录没有匹配时,左表部分为 NULL | 右表记录必须返回 | 查询右表的所有数据,左表有匹配则返回数据,否则返回 NULL 。 |
全连接 (FULL JOIN) | 包含两个表所有记录,匹配记录显示在一起,非匹配记录返回 NULL | 不需要匹配 | 查询两个表中的所有数据。 |
交叉连接 (CROSS JOIN) | 返回两个表的笛卡尔积,即左表行数 × 右表行数 | 无条件匹配 | 生成所有可能的组合,如生成排列组合表。 |
自连接 (SELF JOIN) | 表与表自身的连接,通常用于查找记录之间的关系 | 需要别名 | 查询表中记录之间的自引用关系,如查询员工和经理的关系。 |