MySQL 回顾

193 阅读5分钟

MYSQL_回顾

一、填空题

  1. 数据库的英文写法是database,简写db
  2. 列举常用的3种数据库MYSQL,SqlServer,Oracle
  3. 在数据库中,表的列被称之为字段,行被称之为记录
  4. 数据库中的数据类型,整数int,小数float,字符charvarchar,日期date,时间time
  5. SQL叫结构化查询语言
  6. 现在使用对管理MySQL数据库的工具是navicat
  7. MySQL默认的数据库管理员用户名是root,默认端口号3306
  8. 创建表时,没有指定字段是否允许为空的情况下,该字段是 (允许) 为空
  9. 表中的自动增长字段,数据类型必须为整型,且该字段应该是当前表的主键,一个表中最多可以有1个自动递增字段
  10. 当给表中添加记录时,如果某些字段在没有为其指定数据的情况下,仍旧有值自动填充,则需要为这些字段设置默认值
  11. 为了确保表中不会出现完全相同的两条记录,应该为表创建主键
  12. 要求表中的某个字段数据,必须来自于另外一张表的某个字段值,则当前表的字段应该设置成外键,另外那张表的字段应该是表中的主键字段
  13. 表的引用完整性要求子记录必须有父记录,那么从表中的子记录 (可以) 随意删除,主表中的父记录 (不可以) 随意删除或修改
  14. 向表中添加记录的命令:insert,修改记录的命令update,删除记录的命令delete
  15. 查询命令select,指定从哪张表进行查询的子句是from,指定查询命令的条件是where,将查询结果排序的子句是order by,指定正序排序是asc关键字,降序使用desc关键字,截取查询结果的指定记录数使用limit关键字,去除查询结果的重复记录,使用distinct关键字,为查询结果的列名指定别名,使用as关键字,分组统计查询中,用group by表示分组的字段
  16. 多表连接查询分为内连接外连接自连接交叉连接;其中,被称为笛卡尔积的是交叉查询;返回两张表在公共字段上的相同值的记录,使用内连接查询,在上述功能返回的记录基础上,追加两张表中所有剩余的记录,使用全外连接查询
  17. 嵌套查询中,如果外层查询的条件使用比较运算符,那么内层查询的结果要求只能返回一个值,否则,外层查询的条件需要使用in。内层查询和外层查询如果使用的是不同的表,则select后面的字段可以是两张表中的字段/只能是外层表中的字段

二、简答题

  1. 添加记录时,列举可以使用default的情况?

    有默认值的字段、允许为空的字段、自动递增的字段

  2. 写出where条件可以使用的所有运算符?

    比较运算符:>,<,>=,<=,!=

    逻辑运算符:and、or、like、between...and...、is null、in........

  3. 描述什么是嵌套查询,并分析为什么嵌套查询的效率比较低?

    嵌套查询是指,在一个查询中嵌套另外一个查询,成为嵌套查询

    外层查询每搜索一条记录,内层查询都要重新计算一次

  4. 为什么要进行多表连接查询?描述进行多表连接查询时,两张表的公共字段有什么要求?

    查询需要的数据来自于多张表,所以进行多表连接查询

    字段名可以不同,数据类型必须相同

  5. 列举5个聚合函数,并说明其作用?

    sum(字段):对指定字段下的数据求和;

    avg(字段):对指定字段下的数据求平均值;

    max(字段):对指定字段下的数据求最大值;

    min(字段):对指定字段下的数据求最小值;

    count(字段):对指定字段下的数据求个数;

    count(*):对表的记录数求和

  6. 对比where和having的区别

    where:分组之前的排序,不可以使用聚合函数

    having:分组之后的排序,可以使用聚合函数

  7. 什么是主键?主键的作用是什么?主键和唯一约束有什么区别

    主键是表中的一个特殊字段

    主键可以用来确保表中不会出现完全相同的记录

    主键不允许为空,一个表最多只能有一个主键

    唯一约束字段可以为空,一个表可以同时有多个唯一约束的字段

  8. 描述一下date类型和datetime类型的区别

    date:只能显示年月日

    datetime:可以显示年月日时分秒

  9. 由以上表employee,有一个工资字段salary,有一个字段depart,编写SQL命令实现将技术部的所有员工的工资上调40%

     update employee
     set salary=salary*(1+0.4)
     where depart='技术部'
    
  10. 使用SQL命令,包含字段编号、姓名、年龄、入职日期、编号为主键

     create table employee
     ( id int not null,
      name varchar(20) not null,
      age int not null,
      joindate daet null,
      constraint pk_employee_id primary key(id)
      
     )