MYSQL基础问题

一.DBMS 是什么

DBMS(Database Management System),数据库管理系统,是一种操纵和管理 数据库的大型软件,用于建立、使用和维护数据库。对数据库进行统一的管理和 控制,以保证数据库的安全性和完整性。

二、实体和实体之间的关系有哪些,外键上应该如何体现

一对一:外键字段放在使用频率高的表上,比如一个用户对应一个病人信息, 一个病人对应一个用户

一对多:外键字段放在多的一方,比如一个班级对应多个学生

多对多:建在关系表中,比如一个学生可以选择多个课程,一个课程可以被 多个学生选择,学生和课程之间就是多对多

三、 数据库三大范式是怎么样的

第一范式: 每列保证原子性,属性不可分割,每个属性都是不可分割的原子项

第二范式: 首先满足第一范式; 必须要有一个主键; 如果主键是复合主键,除了主键以外的其他列必须完全依赖于主键列, 不能只依赖主键的一部分;

第三范式: 满足第二范式 除了主键以外的其他列必须直接依赖于主键,不能间接依赖于主键

四.什么样的列适合建立主键
  1. 选择尽量更新少的列作为主键,尽量选择没有业务含义的列作为主键

  2. 一个表只有一个主键约束,但主键约束可以使组合键,但组合键尽量少用

  3. 主键不能为 null

五、主键约束和唯一约束有什么区别

1.同一张表可以有多个唯一约束,但只能有一个主键;

2.主键字段不能为 null,但唯一约束可以为 null;

3.主键字段可以作为其他表的外键,但唯一约束字段不可以作为其他表的 外键。

六.TRUNCATE TABLE 和 delete from 有什么区别 1

1.语句格式: Delete From: Delete from 表名(where 条件); Truncate table:truncate table 表名;

2.删除表数据不同 Delete from:可以删除整张表数据或删除指定条件的记录行; Truncate table:只能删除整张表数据,不能删除指定的行;

3.释放空间不同

delete from:删除数据后,不会释放表所占用的内存空间,删除后可撤销,删除操作会做日志记录

Truncate table:删除数据后,会释放表占用的内存空间,删除后不可撤销,删除操作不会记录日志

4.执行速度不同 Delete from:速度慢 Truncate table:速度快

七、sql 语句的分类有哪些

1.DQL(数据查询语言)select

2.DML(数据库操作语言) insert、delete、update

3.DDL(数据库定义语言)创建数据库中的各种对象,创建删除修改表结构

4.DCL(数据控制语句)授予或回收访问数据库的某种特权,并控制数据库 操纵事务发生的时间及效果,对数据库进行实时监视

八、mysql 中,char 和 varchar 有什么区别(看笔记找答案)
1.场景区别:char适合存放定长字符串,varchar存放长度可变的字符串
2.后面的数字:字符个数,char后面最多可以写到255,varchar:一行数据最多占65535个字节(除去Bolb类的数据类型)除去其他列所占的空间,剩余的空间和varchar后面写的字符个数有关系,编码不同,一个字符 所占用的存储空间也不一样,所以也会影响varchar后字符个数3.char是固定长度,char(5),如果存放了3个字符,也会按照5个字符占用存储空间varchar(5):可变长度,如果存储了3个字符,会按照3个字符占用存储空间。
4.速度区别:char优于varchar
5.空格的处理:char会消灭掉字符后自己插入的空格,varchar不会
九.mysql 中,dataTime 和 timestamp 有什么区别

相同点:存储格式相同 datetime 和 timestamp 两者的时间格式都是 YYYY-MMDD HH:MM:SS

不同点:存储范围不同,datetime 的范围是 1000-01-01 到 9999-12-31,而 timestamp 是从 1970-01-01 到 2038-01-19,即后者的时间范围很小。

与时区关系:datetime 是存储服务器当前的时区,而 timestamp 类型,是将服务 器当前时间转换为 UTC(世界时间)来存储,即 datetime 与时区无关,存什么, 返回什么,而 timestamp 存储的时间,返回的时间会随着数据库的时区不同而 发生改变。

九.mysql 中,enum 和 set 有什么区别
enum和set的区别:enum只能从列出来的值中选择一个作为数据,set可以从列出来的值中选择多个值作为数据
十、mysql 中的这些函数,能说出来一些
select  if(1>2,2,3)
select ifnull(title,0)   from book
#如果两个表达式补相等,返回表达式1,否则返回null
select nullif('abc','abc1')
#将参数进行连接(必然会使用)
select  concat('a','*','b')
select  concat(title,',',type,',',bookid) from book
#第一个参数为分隔符
select CONCAT_WS('*',title,type,bookid) from book
​
#字符串截取,索引从1开始(字符串,开始位置,长度)
select substring('abcde',2,2)
​
#去掉字符串收尾的空格
select trim('   bcde  ')
create table test4(t_id int primary key auto_increment,t_name varchar(20)
)
​
insert into test4(t_name)values("amdin")
#返回最后一次插入的自增列的值(非常实用)
select LAST_INSERT_ID() 
select  CURDATE()
select  CURRENT_DATE()
select  CURTIME()
select CURRENT_TIME()
SELECT NOW()
select DATE_ADD(NOW(),INTERVAL -6 MONTH); 
select DATE_ADD(CURRENT_DATE,INTERVAL 6 DAY); 
​
select DATE_ADD(CURRENT_DATE,INTERVAL 6 HOUR); 
​
select DATE_ADD(CURRENT_DATE,INTERVAL 6 YEAR); 
select DATE_ADD(now(),INTERVAL 6 MINUTE); 
select DATE_ADD(now(),INTERVAL 6 SECOND); 
select DATE_ADD(CURRENT_DATE,INTERVAL 6 WEEK); 
SELECT  DATE_SUB(CURRENT_DATE,INTERVAL -6 MONTH);
SELECT MONTH(now())  获取时间的月份
SELECT year(now())  获取时间的年份
#y代表两MONTH(NO)位年份 Y代表4位年份  h代表12小时制 H代表24小时制
​
select DATE_FORMAT(CURRENT_TIMESTAMP(),'%y/%m/%d %h:%i:%s')
​
select DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y/%m/%d %H:%i:%s')
十一、mysql 中的自然连接是怎么会事情,举个例子说明下 natural join

自然连接 条件:两张连接的表中作为联合条件的列的列名称和类型完全一致
create table bookType(type_id int auto_increment primary key,type_name varchar(20)
)
​
create table books(book_id int auto_increment primary key,book_name varchar(20),type_id INT,foreign key(type_id) REFERENCES bookType(type_id)
)
select * from bookType
insert into bookType(type_name)values('计算机类'),('文学类')
​
insert into books(book_name,type_id)values('JAVA基础',1),('JAVA编程思想',1),
('西游记',2),('三国演义',2)
​
insert into books(book_name,type_id)values('JAVA基础',null)
#自然连接,条件:需要联合条件所涉及的列的列名需要一样
#自然内连接
select * from books  NATURAL join bookType  
#自然左连接
select * from books NATURAL left join bookType
#自然右连接
select * from books NATURAL right join bookType
#交叉连接
select * from books  cross  join bookType on  books.type_id=bookType.type_id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—33. 搜索旋转排序数组【中等】

2024每日刷题&#xff08;一百一&#xff09; Leetcode—33. 搜索旋转排序数组 实现代码 class Solution { public:int search(vector<int>& nums, int target) {int n nums.size();int l 0, r n - 1;while(l < r) {int m l (r - l) / 2;if(nums[m] targe…

将结构体中的浮点数数据提取出来并发送至串口屏显示

1、由于项目中定义了一个结构体如下&#xff1a; typedef struct {uint16_t number;uint16_t LocationData;uint16_t PersonData; // _calendar_obj calendar; // uint16_t LiuLiang_Value;float LiuLiang_Value;_calendar_obj calendar_records; } Frame; 现需要将其中的flo…

STM32CAN2进入bus off 模式

工作遇到的问题记录 无人机CAN2整个进不了中断&#xff0c;通过查看寄存器判定出CAN节点进入了bus off mode 为何进入bus off &#xff0c;最后通过示波器看到整个CAN2总线波形就不对&#xff0c;总线出现了错误 Busoff的产生是一定是因为节点自身识别到自己发送错误&#xff…

基于SpringBoot Vue学生成绩管理系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…

带你了解JAVA中的AQS介绍(AbstractQueuedSynchronizer)

一、AQS 介绍 AQS的全称为&#xff08;AbstractQueuedSynchronizer&#xff09;&#xff0c;这个类在java.util.concurrent.locks包下面。 AQS是一个用来构建锁和同步器的框架&#xff0c;使用AQS能简单且高效地构造出应用广泛的大量的同步器&#xff0c;比如我们提到的Reen…

了解野指针与assert断言 拿捏指针的使用!

目录 1.野指针 野指针的成因&#xff1a; 2.规避野指针 3.assert断言 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们有帮助的话&#xff0c;别忘了给个免费的赞哟~ 1.野指针 概念&#xff1a;野指针就是指针指向的位置是不可知的&#xff08;随机的、不正确的…

【安装指南】maven下载、安装与配置详细教程

&#x1f33c;一、概述 maven功能与python的pip类似。 Apache Maven是一个用于软件项目管理和构建的强大工具。它是基于项目对象模型的&#xff0c;用于描述项目的构建配置和依赖关系。以下是一些关键的 Maven 特性和概念&#xff1a; POM&#xff08;Project Object Model&…

【leetcode】完全背包总结

本文内容参考了代码随想录&#xff0c;并进行了自己的总结。 完全背包 关键点 ● 每件物品有若干种状态&#xff1a;不选、选 1 件、选 2 件、…、选 n 件 代码 在代码上&#xff0c;只有重量的遍历方向和 01 背包不一样&#xff1a; for(int i 0; i < nums.length; i…

echarts中绘制3D三维地球

简介 echarts中的三维地球&#xff0c;需要用到世界地图json数据&#xff0c;我把json文件放到我的资源中&#xff0c;有需要的自行下载。 安装插件 // 安装echats npm install echarts --save npm install echarts-gl --save 项目中引用 1&#xff0c;引入安装的echarts…

Three.js学习2:页面引入 Three.js

一、关于 Three.js 的版本 随着页面3D化应用越来越多&#xff0c;近两年 Three.js 处于飞速发展之中。现在 Three.js 几乎每个月都会发布一个新的版本&#xff0c;会增加新的 API&#xff0c;废掉一些旧的功能之类的。 可以从 Three.js 官网 Three.js – JavaScript 3D Libra…

【gcc】webrtc发送侧 基于丢包更新码率

参考大神的分析1 rtt 有问题:网络拥堵,直接下调码率 G:\CDN\rtcCli\m98\src\modules\congestion_controller\goog_cc\send_side_bandwidth_estimation.hRttBasedBackoff RttBasedBackoff rtt_backoff_;class RttBasedBackoff {public:explicit RttBasedBackoff(const WebRtcK…

C#代码添加脚本头

目录 前言 代码展示 前言 创建脚本的时候添加脚本的介绍 代码展示 using System.IO;/// <summary> /// 创建脚本自动添加头注 /// </summary> public class CommentFirst : UnityEditor.AssetModificationProcessor {/// <summary>/// 在资源创建生成.me…

【linux】校招中的“熟悉linux操作系统”一般是指达到什么程度?

这样&#xff0c;你先在网上找一套完整openssh升级方案&#xff08;不是yum或apt的&#xff0c;要源码安装的&#xff09;&#xff0c;然后在虚拟机上反复安装测试&#xff0c;直到把他理解了、背下来。 面试的时候让你简单说说linux命令什么的&#xff0c;你就直接把这个方案…

基于SpringBoot开发的校刊投稿系统[附源码]

基于SpringBoot开发的校刊投稿系统[附源码] &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系统 &#x1f…

Nicn的刷题日常之打印菱形

目录 1.题目描述 2.解题思路 3.解题 1.题目描述 用C语言在屏幕上输出以下图案&#xff1a; 2.解题思路 仔细观察图形&#xff0c;可以发现&#xff0c;此图形中是由空格和*按照不同个数的输出组成的。 上三角&#xff1a;先输出空格&#xff0c;后输出*&#xff0c;每…

maven工程的依赖介绍(2023版idea--2024年最全最详细)

搭建maven工程 我们在右上角打开对应的设置结构之后 然后我们进行对应的maven仓库以及路径配置 然后新建项目 然后我们构建系统选择对应的maven就可以啦 maven依赖管理 我们配置对应的依赖文件是针对的pom.xml文件 也就是这个结构&#xff0c;真正的是groupid到version这三个…

【Java】面向小白的Spring Framework注解开发学习笔记

目录 简介 IoC&DI 纯注解实现 定义 Bean Bean 的作用范围和生命周期管理 依赖注入 管理第三方 Bean 为第三方 Bean 注入资源&#xff08;例如数据库连接池&#xff09; AOP 纯注解实现 工作流程 切面示例 切入点表达式示例 通知类型示例 Before&#xff08;…

谷粒商城【成神路】-【3】——三级分类

目录 &#x1f37f;1.查询三级分类 &#x1f9c2;2.前端页面搭建 &#x1f35f;3.添加网关 &#x1f373;4.解决跨域 &#x1f9c7;5.显示分类 &#x1f95e;6.显示复选框 1.查询三级分类 1.controller 直接调用service层的接口 RequestMapping("/list/tree&qu…

营养之源:新生儿补充烟酸的关键知识

引言&#xff1a; 烟酸&#xff0c;作为维生素B族的一员&#xff0c;对新生儿的生长发育和健康至关重要。它在细胞的新陈代谢、能量的产生等方面发挥着重要作用。本文将深入探讨烟酸的作用、新生儿补充的必要性&#xff0c;以及在补充烟酸时应该注意的事项&#xff0c;为父母提…

力扣热门100题刷题笔记 - 3.无重复字符的最长子串

力扣热门100题 - 3.无重复字符的最长子串 题目链接&#xff1a;3. 无重复字符的最长子串 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例&#xff1a; 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字…