MySQL面试题01

  • 创建一个表用的关键字是什么?

答:create 是创建的关键字
如何创建表的:
Create table 表名(
列名1 类型(如:int),
列名2 类型(如:char(10))
)

  • 分组函数(聚合函数)都有哪些

答:min() max() avg() sum() count()

  • 去掉重复的关键字是什么?

答:distinct 是去除重复信息

  • 查询的排序有几种,都是什么?及作用

答:升序 关键字ASC,从小到大的排序(默认) 如:order by name 默认是升序
降序 关键字 DESC,从大道小的排序
排序可以按照 字段进行排序,可以按照别名进行排序,可以按照数字进行排序

  • Having的作用是什么?

答:是针对分组之后的信息,再次进行筛选的作用

  • 分组的关键字是什么?

答:group by 分组的关键字

  • 视图是否可以修改表中的数据?

答:可以,但是不建议这样操作。

  • 索引的作用是什么?在什么字段上加索引比较合适

答:索引是增加查询的速度。主键上加索引,不太修改的字段信息上加索引

  • Mysql插入多行数据的方法是什么

答:插入数据的语法是什么?
Insert into 表名 (列名1,列名2,列名3.。。。。。。)vaules (值1,值2,值3.。。。。。。)
Insert into 表名 (列名1,列名2,列名3.。。。。。。)
vaules (值1,值2,值3.。。。。。。),
(值1,值2,值3.。。。。。。),
(值1,值2,值3.。。。。。。),
(值1,值2,值3.。。。。。。),
(值1,值2,值3.。。。。。。),
(值1,值2,值3.。。。。。。)

  • Delete和truncate和drop的区别是什么?

答:Delete 表示删除表中的数据,可以根据条件一条一条的进行删除,可以进行回滚,来回复数据。
Truncate 表示删除表中的数据,这个方法不能添加条件,并且会删除表中所有的数据,释放空间,并且不会回复数据。
Drop 表示删除表的结构,包括表中的数据,把整个表都删除掉。

  • 多行子查询有哪些?

In(主要) any all

  • 常用多表关联有几种?及格式

答:内连接,外连接 ,左连接 和 右链接

  • 排序中是否可以写 表达式?

可以写表达式

  • And和or的作用是什么?优先级?

答:and 表示 并且的意思 2>3 and 3>2 and两边的表达式,并且都是true的时候,返回的是true,不然有一个是false,那么这个表达式就是false
Or 表示 或者的意思 2>3 or 3>2 返回的是true or的意识是:or的两边 如果有一个是true,那么这整个的表达式都是true
优先级:and 大于 or

  • 删除一个表中的语句是什么?

答:Drop table 表名,这样就会 把整张表全部干掉

  • 修改的语句是什么?如果想修改多个列的语句是什么?说一个完整的语句

答:Update 表名 set 列名=值
Update 表名 set 列名1=值1,列名2=值2,。。。。[where 条件]

  • 插入语句中自增长的列是否可以不写

答:Insert into 表名 (列2,列3,列4) values(值2,值3,值4)
这种情况下,列1是自增长,那这样可以不写
Insert into表名 values(值1,值2,值3,值4)
这种情况下,自增长的列必须要写上。
在mysql中有自增长的概念,在oracle中 没有自增长(有序列)

  • 表的约束有哪些

答:1.主键约束
2.外键约束
3.非空约束
4.唯一约束

  • 什么是主外键约束?举例说明
    答:主外键约束,主要的作用是要保持数据的完整性,和一致性,一般都是从表中的一个字段和主表中的主键字段,做一个主外键约束,这样的做法是:不可以随意的修改数据和删除数据,因为这两个表已经存在了一定的关系。
  • mysql有检查约束吗?作用及写法?

答:Mysql中没有检查约束,oracle中有检查约束

  • 创建一个数据库的命令

答:create database 数据库的名字

  • 创建一个表的命令

答:create table 表名(列名 数据类型)

  • 创建一个视图的名字,视图是什么?

答:create view 视图的名字
视图是一个虚拟表,所有的数据都来源于真实的表结构中

  • 如何删除一个表

答:Drop table 表名

  • 如何删除一个表中所有数据

答:1.truncate table 表名 ,删除表中所有的数据
2.delete table 表名,不写where条件,这样就会删除表中所有的数据
注意:这两种写法 truncate的效率会更高,但是不能恢复数据

  • MySQL索引种类

答: 1. 普通索引:这是最基本的索引,它没有任何限制
2.唯一索引:索引列的值必须唯一,但允许有空值,如果是组合索引,则列值的组合必须唯一
3.全文索引:全文索引仅可用于 MyISAM 表,可以从CHAR、VARCHAR或TEXT列中作为CREATE TABLE语句的一部分被创建,或是随后使用ALTER TABLE 或CREATE INDEX被添加 (切记对于大容量的数据表,生成全文索引是一个非常消耗时间非常消耗硬盘空间的做法)

  1. 单列索引、多列索引:多个单列索引与单个多列索引的查询效果不同,因为执行查询时,MySQL只能使用一个索引,会从多个索引中选择一个限制最为严格的索引。
    5.组合索引(最左前缀):简单的理解就是只从最左面的开始组合(实在单列索引的基础上进一步压榨索引效率的一种方式)
  • 数据库导出命令

答:mysqldump -u用户名 -p密码 数据库名 > 导出的文件名   
例如:C:\Users\jack> mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql

  • 导入数据库

答:进入mysql数据库控制台,   
如mysql -u root -p   mysql>use 数据库   
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)   
mysql>source d:wcnc_db.sql

  • char和varchar的区别

答:char:定长,char的存取数度相对快
varchar:不定长,存取速度相对慢

  • 存储过程与触发器的区别

答:触发器与存储过程非常相似,触发器也是SQL语句集合,两者唯一的区别是触发器不能用EXECUTE语句调用,而是在用户执行SQL语句时自动触发(激活)执行。

  • 什么是存储过程?用什么来调用?

答:存储过程是一个预编译的SQL 语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL ,使用存储过程比单纯SQL 语句执行要快。可以用一个命令对象来调用存储过程。exec 调用存储过程

你可能感兴趣的:(MySQL面试题01)