牛客网 MYSQL进阶挑战 详细知识点总结(一)

目录

前言:

 一.插入记录

 1.1普通插入(全字段):

 1.2普通插入(限定字段):

1.3多条一次性插入:

1.4从另一个表导入:

1.5 replace 

二.更新记录

2.1设置为新值:

                                                     图 2-1 2.2根据已有值替换:

2.3 更新满足某些条件的行:

三.删除记录

3.1根据条件删除:

3.2全部删除(表清空,包含自增计数器重置):

3.3TIMESTAMPDIFF

四.创建一张新表 

4.1 直接创建表:

4.2 从另一张表复制表结构创建表:

4.3 从另一张表的查询结果创建表:

五.修改表

5.1 修改表:ALTER TABLE 表名 修改选项

5.2删除表:

致谢: 


前言:

牛客网是一个提供IT技术学习、实践和交流的平台,其中包括了各种编程语言和技术的学习和挑战。MYSQL是其中的一个重要部分,对于想要深入学习MYSQL的人来说,牛客网提供了一系列的挑战题目。希望大家也可以通过本博客学习到自己需要的知识。


 一.插入记录

 1.1普通插入(全字段):

INSERT INTO table_name VALUES (value1, value2, ...)

                                                  如图 1-1 所示

   

                                                        图1-1

注:此处 describe是查询该表中数据类型的命令 

                                                如图 1-2 所示

                                                        图 1-2 

 1.2普通插入(限定字段):

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)

                                                如图 1-3 所示

                                                        图 1-3 

1.3多条一次性插入:

INSERT INTO table_name (column1, column2, ...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...

                                                如图 1-4 所示

                                                      图 1-4

1.4从另一个表导入:

INSERT INTO table_name SELECT * FROM table_name2 [WHERE key=value]

                                             如图 1-5 所示 

                                                 图 1-5 

1.5 replace 

replace into 跟 insert into功能类似,不同点在于:replace into 首先尝试插入数据到表中,

1.5.1如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;
1.5.2否则,直接插入新数据。

注意:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

                                              如图 1-6 所示

                                                    图 1-6 

注意如果插入的字段是自增字段的话 则可以选择以下几种方法 

方法一: 可以指定插入的列名,避开自增的列 ,让自增的列自增 

方法二 :把自增的值设置为NULL或0,这样MySQL会自己处理这个自增的i列

方法三:直接填入id值,不过仅针对插入数据不多的时候使用 

二.更新记录

2.1设置为新值:

UPDATE table_name SET column_name=new_value [, column_name2=new_value2] [WHERE column_name3=value3]

                                                   如图 2-1 所示

                                                     图 2-1 
2.2根据已有值替换:

UPDATE table_name SET key1=replace(key1, '查找内容', '替换成内容') [WHERE column_name3=value3]

                                                    如图 2-2 所示

                                                     图 2-2 

2.3 更新满足某些条件的行:

如果想仅更新满足某些条件的行,可以在语句末尾使用 WHERE 子句来指定条件。例如,如果只想更新地址中包含 "Street" 的行,可以添加以下条件:

                                                    如图 2-3 所示 

                                                     图 2-3 

三.删除记录

3.1根据条件删除:

DELETE FROM tb_name [WHERE options] [ [ ORDER BY fields ] LIMIT n ]

                                                    如图 3-1 所示

                                                      图 3-1


3.2全部删除(表清空,包含自增计数器重置):

TRUNCATE tb_name

                                                    如图 3-2 所示 

                                                      图 3-2 

3.3TIMESTAMPDIFF

TIMESTAMPDIFF(interval, time_start, time_end)可计算time_start-time_end的时间差,单位以指定的interval为准,常用可选:
SECOND 秒
MINUTE 分钟(返回秒数差除以60的整数部分)
HOUR 小时(返回秒数差除以3600的整数部分)
DAY 天数(返回秒数差除以3600*24的整数部分)
MONTH 月数
YEAR 年数

                                                      如图· 3-3 所示 

                                                      图 3-3 

四.创建一张新表 

4.1 直接创建表:


CREATE TABLE
[IF NOT EXISTS] tb_name -- 不存在才创建,存在就跳过
(column_name1 data_type1 -- 列名和类型必选
  [ PRIMARY KEY -- 可选的约束,主键
   | FOREIGN KEY -- 外键,引用其他表的键值
   | AUTO_INCREMENT -- 自增ID
   | COMMENT comment -- 列注释(评论)
   | DEFAULT default_value -- 默认值
   | UNIQUE -- 唯一性约束,不允许两条记录该列值相同
   | NOT NULL -- 该列非空
  ], ...
) [CHARACTER SET charset] -- 字符集编码
[COLLATE collate_value] -- 列排序和比较时的规则(是否区分大小写等)

                                                      如图 4-1 所示 

                                                      图 4-1 

注:register_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间'

(这是一个 MySQL 中创建表时的列定义语句,它表示创建一个名为 register_time 的列,数据类型为 DATETIME)


4.2 从另一张表复制表结构创建表:

CREATE TABLE tb_name LIKE tb_name_old

                                                       如图 4-2 所示 

                                                       图 4-2 

4.3 从另一张表的查询结果创建表:

CREATE TABLE tb_name AS SELECT * FROM tb_name_old WHERE options

                                                      如图 4-3 所示 

                                                       图 4-3 

五.修改表

5.1 修改表:ALTER TABLE 表名 修改选项


{ ADD COLUMN <列名> <类型>  -- 增加列
 | CHANGE COLUMN <旧列名> <新列名> <新列类型> -- 修改列名或类型
 | ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -- 修改/删除 列的默认值
 | MODIFY COLUMN <列名> <类型> -- 修改列类型
 | DROP COLUMN <列名> -- 删除列
 | RENAME TO <新表名> -- 修改表名
 | CHARACTER SET <字符集名> -- 修改字符集
 | COLLATE <校对规则名> } -- 修改校对规则(比较和排序时用到)

                                                      如图 5-1 所示 

                                                       图 5-1

5.2删除表:

DROP TABLE [IF EXISTS] 表名1 [ ,表名2]。

                                                      如图 5-2 所示

                                                        图 5-2 

 

致谢:


 

感谢您阅读本篇文章,希望我所提供的 SQL 知识总结能对您有所帮助。如果您对 SQL 面试还有其他疑问或需要进一步了解,欢迎随时与我联系。祝您在未来的 SQL 面试和学习中取得优异的成绩!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

岩土工程渗流问题之有限单元法:理论、模块化编程实现、开源程序应用

有限单元法在岩土工程问题中应用非常广泛&#xff0c;很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法。尽管各类商业软件使用方便&#xff0c;但其使用对用户来说往往是一个“黑箱子”。相比而言&#xff0c;开源的有限元程序计算方法透明、计算过程可控&#xff0c;…

制造行业大数据应用:四大领域驱动产业升级与智慧发展

一、大数据应用&#xff1a;制造行业的智慧引擎 随着大数据技术的不断突破与普及&#xff0c;制造行业正迎来一场前所未有的变革。大数据应用&#xff0c;如同智慧引擎一般&#xff0c;为制造行业注入了新的活力&#xff0c;推动了产业升级与创新发展。 二、大数据应用在制造行…

2.Windows平台Python的下载、安装和配置环境变量——跟老吕学Python编程

2.Windows平台Python的下载、安装和配置环境变量——跟老吕学Python编程 一、下载Windows版Python1.Python官网2.Windows版Python下载网址 二、在Windows安装Python1.全自动安装Python&#xff08;不推荐&#xff09;1.1 启动安装1.2 安装进度1.3 安装完成1.4 查看版本 2.自定义…

EMQX+InfluxDB+Grafana 构建物联网可视化平台

EMQXInfluxDBGrafana 构建物联网可视化平台 本文以常见物联网使用场景为例&#xff0c;介绍了如何利用 EMQ X MQTT 服务器 InfluxDB Grafana 构建物联网数据可视化平台&#xff0c;将物联网设备上传的时序数据便捷地展现出来。 在物联网项目中接入平台的设备数据和数据存储…

DataGrip工具使用技巧

文章目录 一、设置同时查看多个SQL控制台1.1、设置同时查看多个SQL控制台1.2、还原多个窗口为一个窗口 二、设置分别显示多次查询结果 以下整理DataGrip工具使用过程中的一些快捷方式或使用技巧。 一、设置同时查看多个SQL控制台 有时候我们需要同时查看多个SQL编辑器、SQL控制…

Java中出现中文乱码浅析与问题解决

一、编码介绍 字符编码是一种将字符映射到数字代码的规则或方式。在计算机中&#xff0c;所有的数据最终都以二进制形式存储&#xff0c;包括文本数据。因此&#xff0c;要在计算机中存储和处理文本&#xff0c;就需要将字符转换为对应的数字编码。 字符编码可以分为两种基本…

基于Java的高校学院网站(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学院院系模块2.2 竞赛报名模块2.3 教育教学模块2.4 招生就业模块2.5 实时信息模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学院院系表3.2.2 竞赛报名表3.2.3 教育教学表3.2.4 招生就业表3.2.5 实时信息表 四、系…

《中学数学》杂志简介及投稿须知

《中学数学》杂志简介及投稿须知 《中学数学》是2001年被评为湖北省优秀期刊、湖北省优秀科技期刊。创刊于1979年&#xff0c;经国家新闻出版总署备案批准&#xff0c;由湖北省教育厅主管&#xff1b;湖北大学主办的省级优秀学术期刊&#xff0c;1992年(第一版),1996年(第二版…

为什么defineProps宏函数不需要从vue中import导入?

前言 我们每天写vue代码时都在用defineProps&#xff0c;但是你有没有思考过下面这些问题。为什么defineProps不需要import导入&#xff1f;为什么不能在非setup顶层使用defineProps&#xff1f;defineProps是如何将声明的 props 自动暴露给模板&#xff1f; 举几个例子 我们…

Linux-gdb调试

文章目录 前言查看&#xff08;显示&#xff09;源代码 list/l运行程序run/r打断点b查看断点删除断点打开/关闭断点逐过程 逐语句查看变量常显示continuefinishuntil修改指定变量退出gdb 前言 GDB&#xff0c;即GNU调试器&#xff08;GNU Debugger&#xff09;&#xff0c;是G…

STL之deque容器代码详解

1 基础概念 功能&#xff1a; 双端数组&#xff0c;可以对头端进行插入删除操作。 deque与vector区别&#xff1a; vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低。 deque相对而言&#xff0c;对头部的插入删除速度回比vector快。 vector访问…

和泓海棠府——与阳光大海约会 悦享惬意生活

海南三亚海棠湾 四季如春的梦想在这里即可实现和泓海棠府 与阳光大海约会 悦享惬意生活 如果在三亚有一套房 你就可以把父母接过来一起住 尽己所能让老人圆一个海居梦 带着孩子一起在园林里探索自然 陪孩子度过每一个有趣的海边假期 你也可以随时沿着会唱歌的沙滩迎风漫…

【力扣白嫖日记】1341.电影评分

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1341.电影评分 表&#xff1a;Movies 列名类型movie_idinttitlevarchar movie_id 是这个表的主键(具有唯一…

制作图片马:二次渲染(upload-labs第17关)

代码分析 $im imagecreatefromjpeg($target_path);在本关的代码中这个imagecreatefromjpeg();函数起到了将上传的图片打乱并重新组合。这就意味着在制作图片马的时候要将木马插入到图片没有被改变的部分。 gif gif图的特点是无损&#xff0c;我们可以对比上传前后图片的内容…

上海亚商投顾:沪指震荡调整 飞行汽车概念股持续爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整&#xff0c;深成指走势稍强&#xff0c;创业板指一度涨超1%&#xff0c;黄白二线走势分化&a…

每3秒一例骨折!别把骨质疏松不当病,新设备「双能X线骨密度仪」为您的健康加“骨”劲

随着社会老龄化日益加剧&#xff0c;我国骨质疏松患者人数已居世界首位。骨质疏松症已成为对中老年健康构成严重威胁的慢性疾病&#xff0c;且存在诊断率低、治疗率低、长期药物治疗依从性低的三低问题。 很多人认为的骨质疏松是一种老化的自然现象不同&#xff0c;这其实是一种…

springboot267大学生科创项目在线管理系统的设计与实现

# 大学生科创项目在线管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装大学生科创项目在…

Spring Schedule:Spring boot整合Spring Schedule实战讲解定时发送邮件的功能

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

【C++教程从0到1入门编程】第九篇:STL中Vector类

一、vector的介绍 1.vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&…

如何处理爬虫代理的404错误

目录 前言 一、什么是404错误 二、处理404错误的方法 1. 重新尝试请求 2. 使用备用代理 3. 日志记录 总结 前言 在进行网络爬虫开发过程中&#xff0c;经常会遇到一些特殊的错误&#xff0c;例如404错误。当我们使用代理服务器进行网络爬取时&#xff0c;有时候会遇到4…