Java----MySQL常见面试题(一)

目录

1.数据库、数据库管理系统、结构化查询语言?

2.RDBMS与NoSQL?

3.SQL语句的分类?

 4.MySQL数据库中的数据类型?

5.聚合函数?

6.SQL关键字?

7.SQL中where和having的区别?

8.SQL中SELECT语句完整的执行顺序?

9.MySQL数据库中的函数?

 10.MySQL中的约束?


1.数据库、数据库管理系统、结构化查询语言?

  1. 数据库(Database),简称DB。是按照一定的数据结构来组织、存储和管理数据的仓库。
  2. 数据库管理系统(Database Management System),是一种操纵和管理数据库的大型软件,用于创建、使用和维护数据库,简称DBMS。MySQL或者Oracle等就是属于这种数据库管理系统。
  3. 结构化查询语言(Structured Query Language),简称SQL。SQL是一种操作关系型数据库的编程语言,它定义了一套操作关系型数据库统一的标准。

2.RDBMS与NoSQL?

关系型数据库(RDBMS)的概念:关系型数据库,是建立在关系模型的基础上,由多张相互连接的二维表组成的数据库,比如有MySQL,Oracle等等。

特点:

1. 使用表来存储数据,格式统一,便于维护。 

2. 使用SQL语句操作,标准统一,使用方便。 

3. 数据存储在磁盘中,安全。 

非关系型数据库(NoSQL)概念:Not-Only SQL,泛指非关系型数据库,是对关系型数据库的一种补充。比如有Redis等等。 

特点: 

1. 数据结构灵活。

2. 伸缩性强。

3.SQL语句的分类?

Java----MySQL常见面试题(一)_第1张图片

 4.MySQL数据库中的数据类型?

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型

  1. 数值类型:常见的有,TINTINT(1个字节), SMALLINT(2个字节), INT(4个字节), BIGINT(8个字节), FLOAT(4个字节), DOUBLE(8个字节)。
  2. 字符串类型:常见的有,定长字符串CHAR(0~255),变长字符串VARCHAR(0~65535个字节)。
  3. 日期时间类型:DATE(格式:YYYY-MM-DD),TIME(格式:HH:MM:SS),YEAR(格式:YYYY),DATETIME(格式:YYYY-MM-DD HH:MM:SS)。

值得注意的是,日期时间类型和字符串类型使用的时候要加(单)引号。

5.聚合函数?

1.聚合函数:

将一列数据作为一个整体,进行纵向计算。SQL中提供的聚合函数可以用来统计、求和、求最值等等。值得注意的是,null值不参与所有聚合函数的运算。

2.分类:

COUNT:统计行数量。

SUM:获取单个列的合计值。

AVG:获取某个列的平均值。

MAX:获取列的最大值。

MIN:获取列的最小值。

6.SQL关键字?

Java----MySQL常见面试题(一)_第2张图片

 

重点:

1.分页:

MySQL的分页关键词limit。  

SELECT * FROM student LIMIT 2,6; 查询学生表中的数据,从第三条开始显示(注意记录从0开始算),一共显示6条。   

2.分组:  

MySQL的分组关键字:group by。    

SELECT sex, count(*) FROM student GROUP BY sex; 查询学生表中的数据,通过性别分组,展示男女各有多少人。

3.去重:   

去重关键字:distinct。

select DISTINCT NAME FROM student; 给查询出来的NAME字段下的记录去重。

7.SQL中where和having的区别?

Java----MySQL常见面试题(一)_第3张图片

 

  1. HAVING常常和分组查询关键字GROUP BY绑定到一起使用,用来对分组之后的结果进行过滤。而WHERE是在分组之前进行过滤,不满足WHERE条件的,不会参与到分组之中。所以这两者的执行时机不同。
  2. WHERE不能对聚合函数进行判断,因为WHERE的执行顺序先于聚合函数的执行顺序。但是HAVING可以,因为聚合函数的执行顺序先于HAVING的执行顺序。

8.SQL中SELECT语句完整的执行顺序?

Java----MySQL常见面试题(一)_第4张图片

 

查询中用到的关键词主要包含如下展示,并且他们的顺序依次为

form...on...left join...where...group

by...avg()/sum()...having..select...

order by...asc/desc...limit...

重点解释:

from:表示需要从哪个数据库表中检索数据。

where:表示过滤掉表中数据的条件。

group by:表示如何将上面过滤出的数据分组然后得出结果(分组关键字)。

order by:表示需要按照什么样的顺序来返回数据(默认为ASC自然排序)。

9.MySQL数据库中的函数?

函数:是指一段可以直接被另一段程序调用的程序或代码。函数有着良好的封装性和复用性。

Java----MySQL常见面试题(一)_第5张图片

 10.MySQL中的约束?

Java----MySQL常见面试题(一)_第6张图片

 重点:外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

你可能感兴趣的:(mysql,数据库,oracle)