怎么知道网站关键词的搜索来源,吉林网站建设平台,广州番禺区男科医院,wordpress评论微信通知1.MySQL如何避免重复插入数据#xff1f; 2.CHAR 和 VARCHAR有什么区别#xff1f; 3.Text数据类型可以无限大吗#xff1f; 4.说一下外键约束 5.MySQL的关键字in和exist 6.mysql中的一些基本函数#xff0c;你知道哪些#xff1f; 7.SQL查询语句的执行顺序是怎么样的 2.CHAR 和 VARCHAR有什么区别 3.Text数据类型可以无限大吗 4.说一下外键约束 5.MySQL的关键字in和exist 6.mysql中的一些基本函数你知道哪些 7.SQL查询语句的执行顺序是怎么样的 8.sql题给学生表、课程成绩表求不存在01课程但存在02课程的学生的成绩 9.sql题给学生表、课程成绩表求不存在01课程但存在02课程的学生的成绩 10.给定一个学生表 student_scorestu_idsubject_idscore查询总分排名在5-10名的学生id及对应的总分? 11.执行一条SQL请求的过程是什么 1.MySQL如何避免重复插入数据
方式一建表的时候使用UNIQUE约束。 CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(255) UNIQUE, name VARCHAR(255)); 如果尝试插入重复的emailMySQL会返回错误。 方式二使用INSERT … ON DUPLICATE KEY UPDATE。 insert on duplicate key update 如果在insert into语句的末尾指定了on duplicate key update 字段更新则会在出现重复数据(根据主键或者唯一索引判断)的时候按照后面字段更新的描述对该信息进行更新操作。 插入SQL如下 insert into person (id,name,age,address) values(3,‘那谁’,23,‘甘肃省’) on duplicate key update name‘那谁’, age23, address‘甘肃省’; 首先我们将表中数据恢复然后在进行插入操作时发现id为3的数据发生了改变进行了更新操作。 我们可以根据自己的业务需求进行方法的选择。 方式三使用INSERT IGNORE。//如果id重复就直接忽略这个命令。 insert ignore into person (id,name,age,address) values(3,‘那谁’,23,‘甘肃省’),(4,‘我的天’,25,‘浙江省’); 方式四replace into。 replace into 首先尝试插入数据到表中 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据然后插入新的数据。 2. 否则直接插入新数据。 插入SQL如下 replace into person (id,name,age,address) values(3,‘那谁’,23,‘甘肃省’),(4,‘我的天’,25,‘浙江省’) 首先我们将表中数据恢复然后进行插入操作后发现id为3的数据发生了改变同时新增了id为4的数据。
2.CHAR 和 VARCHAR有什么区别
CHAR是固定长度的字符串类型。存储时会在末尾补足空格。 VARCHAR是可变长度的字符串类型实际存储时根据实际长度占用存储空间。
3.Text数据类型可以无限大吗
MySQL 3 种text类型的最大长度如下 TEXT64kb MEDIUMTEXT16Mb LONGTEXT4Gb。
4.说一下外键约束
外键约束的作用是维护表与表之间的关系确保数据的完整性和一致性。
5.MySQL的关键字in和exist
都是用于子查询的关键词。 **in( )**后面的子查询是返回结果集的换句话说执行次序和exists( )不一样。子查询先产生结果集然后主查询再去结果集里去找符合要求的字段列表去。符合要求的输出反之则不输出。
select * from A
where id in(select id from B)List resultSet[];
Array A(select * from A);
Array B(select id from B);
for(int i0;iA.length;i) {for(int j0;jB.length;j) {if(A[i].idB[j].id) {resultSet.add(A[i]);break;}}
}
return resultSet;**exists( )**后面的子查询被称做相关子查询他是不返回列表的值的。只是返回一个ture或false的结果其运行方式是先运行主查询一次再去子查询里查询与其对应的结果。如果是ture则输出反之则不输出。再根据主查询中的每一行去子查询里去查询。
select a.* from A a
where exists(select 1 from B b where a.idb.id)
List resultSet[];
Array A(select * from A)
for(int i0;iA.length;i) {if(exists(A[i].id) { //执行select 1 from B b where b.ida.id是否有记录返回resultSet.add(A[i]);}
}
return resultSet;null值的处理没理解。
6.mysql中的一些基本函数你知道哪些
字符串函数数值函数日期和时间函数聚合函数。
7.SQL查询语句的执行顺序是怎么样的
参考 说明从这个顺序中我们不难发现所有的查询语句都是从FROM子句开始执行的在执行过程中每个步骤都会为下一个步骤生成一个虚拟表这个虚拟表将作为下一个执行步骤的输入。 8.sql题给学生表、课程成绩表求不存在01课程但存在02课程的学生的成绩 9.给定一个学生表 student_scorestu_idsubject_idscore查询总分排名在5-10名的学生id及对应的总分? 10.存储引擎执行一条SQL请求的过程是什么
①你会先连接到这个数据库上这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。连接命令一般是这么写的
mysql -h$ip -P$port -u$user -p②连接建立完成后你就可以执行 select 语句了。执行逻辑就会来到第二步查询缓存 MySQL8.0 开始彻底没有这个功能了。。 ③如果没有命中查询缓存就要开始真正执行语句了。首先MySQL 需要知道你要做什么因此需要使用分析器对 SQL 语句做解析词法分析和语法分析。 ④优化器优化 SQL 具体执行的方案。比如索引的选择、join 的顺序等。 ⑤MySQL 通过分析器知道了你要做什么通过优化器知道了该怎么做于是就进入了执行器阶段开始执行语句。开始执行的时候要先判断一下你对这个表 T 有没有执行查询的权限如果没有就会返回没有权限的错误。如果有权限就打开表继续执行。打开表的时候执行器就会根据表的引擎定义去使用这个引擎提供的接口。 第一个问题没看懂。
参考
11.补充一题Spring MVC的五大组件分别是什么
1、DispatcherServlet 前端(核心)控制器 2、HandlerMapping 处理器映射器 3、Controller 处理请求的控制器 4、ModelAndView 封装数据和视图信息 5、ViewResolver 视图解析器
DispatcherServlet(前端控制器)接收来自客户端的URL请求。请求分发器借助处理器映射器(HandlerMapping)来查找对应的处理器Handler(控制器)分发本次请求。请求分发器利用处理器适配器(HandlerAdapter)来执行对应的处理器(控制器)。处理器调用方法处理本次请求返回模型视图对象(ModelAndView)。请求分发器借助视图解析器(ViewResolver)解析模型视图得到对应的视图(View)。请求分发器调用视图中的方法同时将数据模型交给视图对象完成给客户端的应答。