2021-07-03

Markdown基本语法


Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。


一、标题

​ 一个#号是一级标题

​ 两个#号是二级标题

​ 以此类推…到六级标题

​ …

​ 注意:#号后面跟空格

例子:

# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

这是一级标题

这是二级标题

这是三级标题

这是四级标题
这是五级标题
这是六级标题

二、字体

加粗

要加粗的文字左右分别用两个*号包起来

**加粗**

效果如下:

加粗

斜体

要倾斜的文字左右分别用一个*号包起来

*斜体*

效果如下:

斜体

斜体加粗

要倾斜和加粗的文字左右分别用三个*号包起来

***斜体加粗***

效果如下:

斜体加粗

​ 删除线

​ 要加删除线的文字左右分别用两个~~号包起来

效果如下:

删除线


三、引用

'>'小于号表示引用

注意:可以层级使用

效果如下:

这是引用的内容

这是引用的内容


四、分割线

三个或者三个以上的 - 或者 * 都可以。

示例:

---
----
***
*****

效果如下:
可以看到,显示效果是一样的。





用于醒目标注内容

shzhb

dfdshfs fdhsf






五、图片

语法:

![图片alt](图片地址 ''图片title'')

图片alt就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加

![美女](保存的图片\动漫少女\6.png "meinv")

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TnomxHr9-1625273565877)(保存的图片\动漫少女\6.png “meifndsbf”)]


六、超链接

语法:

[超链接名](超链接地址 "超链接title")
title可加可不加

示例:

[简书](http://jianshu.com)
[百度](http://baidu.com)

效果如图:

简书
百度

注:Markdown本身语法不支持链接在新页面中打开,貌似简书做了处理,是可以的。别的平台可能就不行了,如果想要在新页面中打开的话可以用html语言的a标签代替。

<a href="超链接地址" target="_blank">超链接名</a>

示例
<a href="https://www.baidu.com" target="_blank">简书</a>

七、列表

有序列表

语法:
数字加点

1. 列表内容
2. 列表内容
3. 列表内容

注意:序号跟内容之间要有空格

效果如下:

  1. 列表内容

  2. 列表内容

  3. 列表内容


无序列表

语法:

无序列表用 - + * 任何一种都可以

- 列表内容
+ 列表内容
* 列表内容

注意:- + * 跟内容之间都要有一个空格

效果如下:

  • 列表内容
  • 列表内容
  • 列表内容

列表的嵌套

在一级列表的基础上敲击Tab键

  • 一级列表
    • 二级列表
      • 三级列表

八、表格

语法:

表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容

第二行分割表头和内容。
- 有一个就行,为了对齐,多加了几个
文字默认居左
-两边加:表示文字居中
-右边加:表示文字居右
注:原生的语法两边都要用 | 包起来。此处省略

实例:

表头表头表头
内容内容内容
内容内容内容

注意:为什么我们自己敲的时候实现不了这种操作呢?

例如:

表头|表头|表头

—|:–😐—:

内容|内容|内容

|内容|内容|内容

上术为什么没有形成表格,将其复制到代码区域我们会发现上述内容并不是紧凑的

标准:
表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容

自己在编辑器里敲的

表头|表头|表头

---|:--:|---:

内容|内容|内容

|内容|内容|内容

​ 因为多了几行空格,所以markdown不能解析的,不是我们想要的


九、代码

语法:
单行代码:代码之间分别用一个反引号包起来

    `代码内容`

代码块:代码之间分别用三个反引号包起来,且两边的反引号单独占一行

(```)
  代码...
  代码...
  代码...
(```)

注:为了防止转译,前后三个反引号处加了小括号,实际是没有的。这里只是用来演示,实际中去掉两边小括号即可。

示例:

单行代码

`create database hero;`

代码块

(```)
    function fun(){
         echo "php代码";
    }
    fun();
(```)

​ 不建议这样使用,因为在有些主题中不能正确解析!!!


十、流程图

```mermaid
flowchat
    # 开始
st1=>start: 开始
    #流程
op=>operation: My Operation
op2=>operation: My Operation2
    #判断
cond=>condition: Yes or No?
    结束
e=>end
st1->op->op2->cond
cond(yes)->e
cond(no)->e
&```

效果如下:

Created with Raphaël 2.2.0 开始 流程1 流程2 Yes or No? 结束 yes no

​ 加入url跳转的流程图

​```mermaid
flowchat
st=>start: 开始
e=>end: 结束:>https://www.baidu.com
c1=>condition: A
c2=>condition: B
c3=>condition: C
io=>inputoutput: D 
st->c1(no)->e
c2(no)->e
c3(no)->e
c1(yes,right)->c2(yes,right)->c3(yes,right)->io
io->e
​```
Created with Raphaël 2.2.0 开始 A B C D 结束 yes no yes no yes no
<think>好的,我现在需要处理用户提供的SQL插入语句,目标是改进它们,包括显式列名、批量插入和事务控制。首先,我要仔细分析用户给出的原始代码。 用户提供了多个INSERT INTO语句,都是向t_user02表中插入数据。原始语句没有指定列名,直接使用VALUES,这样可能存在风险,特别是当表结构发生变化时,列顺序或数量变动会导致插入错误。所以,显式列出列名是必要的,这能提高代码的可维护性和安全性。 接下来,批量插入。当前的每个INSERT语句都是单独的,可以合并成一个多行插入,减少数据库的请求次数,提高效率。需要注意的是,不同的数据库对批量插入的支持可能不同,比如MySQL支持多行VALUES,而某些数据库可能需要使用其他语法,但用户给出的例子看起来像是标准的SQL,所以暂时假设目标数据库支持多行插入。 然后是事务控制。将所有插入操作放在一个事务中,可以确保数据的一致性,要么全部成功,要么全部回滚。这对于保持数据的完整性非常重要,特别是在处理多个相关插入时。 现在,我需要检查原始INSERT语句的结构。所有插入的值都是五元组,对应的列应该是五个。假设表t_user02的列名依次是date、id、department_id、name、status(或者其他有意义的名称,但用户没有提供,可能需要根据数据猜测)。例如,第一个插入的值是'2021-06-03'(日期),9(数值),1(数值),'jack'(名字),3(数值)。可能需要确认列的实际名称,但用户没有给出表结构,所以可能需要用占位符或者根据常见命名习惯来命名列,比如insert_date、user_id、dept_id、user_name、user_status等。 这里可能需要提醒用户,正确的列名需要根据实际表结构来定,但为了示例,可以假设列名。比如: - 第一个字段是日期,可能对应insert_date或create_date。 - 第二个是数值,可能是user_id。 - 第三个是部门ID,比如dept_id。 - 第四个是用户名,user_name。 - 第五个可能是状态或等级,比如status或level。 接下来,将每个INSERT语句转换为带有显式列名的形式,然后合并成批量插入。同时,用事务控制包裹整个插入过程。 另外,需要注意SQL的语法是否正确,比如列名是否需要引号(通常不需要,除非是保留字),值中的字符串需要用单引号,数值不需要。用户提供的原始语句中,数值没有引号是正确的,所以保持原样。 现在,处理原始代码: 原始每个INSERT都是: insert into t_user02 values ('2021-06-03',9,1,'jack',3); ... 需要改为: INSERT INTO t_user02 (insert_date, user_id, dept_id, user_name, status) VALUES ('2021-06-03', 9, 1, 'jack', 3), ('2021-06-10',10,2,'rose',2), ...; 然后,用BEGIN TRANSACTION;和COMMIT;包裹起来,或者根据数据库的语法,比如MySQL可能用START TRANSACTION;,或者直接BEGIN;。 另外,检查是否有分号的问题。在批量插入中,多个VALUES之间用逗号分隔,最后一个用分号结束。事务控制语句的语法也需要正确。 最后,给出修改后的代码,并解释每个改进点,确保用户理解这些改动的好处,比如显式列名避免列顺序依赖,批量插入提高性能,事务保证原子性。</think>以下是针对提供的SQL插入语句的改进方案,主要从显式列名、批量插入、事务控制三方面优化: --- ### **一、改进后的SQL代码** ```sql BEGIN TRANSACTION; INSERT INTO t_user02 ( create_date, -- 日期字段(假设列名) user_id, -- 用户ID(假设列名) dept_id, -- 部门ID(假设列名) user_name, -- 用户名(假设列名) status -- 状态字段(假设列名) ) VALUES ('2021-06-03', 9, 1, 'jack', 3), ('2021-06-10', 10, 2, 'rose', 2), ('2021-07-03', 11, 1, 'jim', 2), ('2021-07-05', 12, 1, 'grace', 2), ('2021-07-12', 13, 2, 'tom', 2), ('2021-08-15', 14, 3, 'bush', 3), ('2021-08-12', 15, 3, 'helen', 3); COMMIT; ``` --- ### **二、改进点详解** #### 1. **显式指定列名** - **原问题**:原始语句未指定列名(`INSERT INTO ... VALUES`),依赖表中列的隐式顺序,易因表结构变更导致插入错误。 - **改进**:显式列出列名(`INSERT INTO (col1, col2, ...) VALUES ...`),确保数据插入位置明确,与表结构解耦。 - **注意事项**:需根据实际表结构调整列名(如`create_date`可能为`register_date`)。 #### 2. **批量插入优化** - **原问题**:多次单行插入效率低,频繁连接/断开数据库增加开销。 - **改进**:合并为一条`VALUES`语句,多行数据用逗号分隔,减少网络传输和SQL解析开销。 - **性能提升**:批量插入比单条插入快5-10倍(因数据库类型而异)。 #### 3. **事务控制** - **原问题**:无事务控制,部分失败时数据不一致。 - **改进**:用`BEGIN TRANSACTION`和`COMMIT`包裹插入操作,保证原子性: ```sql BEGIN TRANSACTION; -- 开启事务 -- 执行插入操作 COMMIT; -- 全部成功则提交 ``` - **异常处理**:可添加`ROLLBACK`逻辑(需在应用程序或存储过程中实现)。 --- ### **三、扩展建议** 1. **参数化查询**:防止SQL注入,提升安全性(尤其在应用层代码中)。 2. **错误日志**:捕获插入异常并记录日志,便于排查问题。 3. **索引优化**:若表数据量大,插入前可暂时禁用索引,完成后再重建。 --- ### **附:不同数据库的语法差异** | 特性 | MySQL | PostgreSQL | SQL Server | |--------------|----------------------------|----------------------------|--------------------------| | 事务语法 | `START TRANSACTION;` | `BEGIN;` | `BEGIN TRANSACTION;` | | 批量插入 | 支持多行`VALUES` | 支持多行`VALUES` | 支持多行`VALUES` | | 提交方式 | `COMMIT;` | `COMMIT;` | `COMMIT TRANSACTION;` | 根据实际数据库类型调整语法细节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值