SQL语言书写规范(持续更新)

本文探讨了SQL语言在不同平台上的书写规范差异,特别是在Windows与Linux平台间Mysql表名大小写敏感性的区别。文章提出了多个推荐遵守的SQL书写规范,包括表名和列名的小写使用、连接符的空格使用、明确指定插入和选择字段等,旨在提高代码的阅读性和跨平台移植性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

  这周在帮同事的安装程序中嵌入Mysql时,遇到在Linux平台移植DML脚本错误的问题,具体定位到是Mysql在window平台默认对表名大小写不敏感,而Mysql在Linux平台默认表面是大小写敏感的。

  由于SQL语言没有官方的书写规范,因此每个人在编写存储过程中遵循的都是不同的规则,而差的SQL语言书写规范会导致阅读性变差,跨平台性变差。 因此,我开始准备着手收集一些优秀的SQL语言书写规范,其中打钩的,是推荐遵守的。

参考:

https://blog.youkuaiyun.com/qq_34100655/article/details/82904797

https://www.cnblogs.com/yangkunlisi/archive/2011/09/14/2176773.html

https://www.runoob.com/mysql/mysql-insert-query.html

SQL书写规范:

0、SQL语言应正确、规范、高效和最优;(书写目标)√

1、在同一个项目中,SQL遵守同一书写规范;(提高代码阅读性)√

2、建议SQL的表名、列明小写,系统保留字、内置函数大写;(不同数据库或者平台,对大小写敏感设置都是不同的,提高SQL移植性)√

3、or、and、in等连接符前后加上空格;(提高代码阅读性)

4、使用INSERT语句时,应指定插入的字段名,不建议直接插入VALUES;(防止数据错位)√

INSERT INTO runoob_tbl 
(runoob_title, runoob_author, submission_date)
 VALUES
("学习 PHP", "菜鸟教程", NOW());

5、使用SELECT语句时,应指定列名,不建议使用*代替;(提高SQL运行速度)√

SELECT 
	list.manifest_no,
	list.bill_no,
    stat.list_stat
FROM
mft_list list,
list_stat stat
WHERE 
list.manifest_no = stat.manifest_no
AND list.bill_no = stat.list_no;

6、表数据尽量使用英文、当确定表数据会出现中文时,应当建表时设置好字符集-utf8;(提高容错性)√

CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值