[数据库基础]——编码标准之格式

代码就像家里的各种物品,格式化就好比对家中物品的排放。家中的物品随便怎么放,物品都不会反对,房子也不会介意,但是物品的排放合理、规整,会让家里变得更具有美感。代码也是一样,代码写成什么样子,代码不会反对,计算机也不会介意(除非不能运行),但是毕竟还是会有人来欣赏、维护这些代码,这时候具有很好格式的代码就显得尤为重要了。

SQL关键字

所有的SQL关键字大写。

SELECT,UPDATE,DELETE,INSERT INTO,CRETAE DATABASE,ALTER DATABASE,CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX,LIKE,IN,INSERT、LEFT、RIGHT、FULL JOIN,CONSTRANIT,UNIQN,CHECK,VIEW等等。

1: CREATE DATABASE myDemo;
   2:  
   3: CREATE TABLE Orders
   4: {
   5:     [OrdersID] int NOT NULL,
   6:     [OrdersNo] int  NOT NULL,
   7:     [CreateDate] datetime NOT NULL DEFAULT GETDATE(),
   8:     [Decription] varchar(200),
   9:     [CustomersID]  int NOT NULL
  10: }
  11:  
  12: ALTER TABLE Orders
  13: ADD CONSTRAINT pk_OrdersID PRIMARY KEY ([OrdersID])
  14:  
  15: ALTER TABLE Orders
  16: ADD CONSTRAINT fk_Orders_Customers
  17: FOREIGN KEY ([CustomersID])
  18: REFERENCES Customers([Customers])
  19:  
  20: SELECT Customers.CustomersName, Orders.OrdersID
  21: FROM Customers
  22: INNER JOIN Orders
  23: ON Customers.CustomersID=Orders.CustomersID
  24: ORDER BY Customers.CustomersName

代码缩进

为了提高代码美感和可读性,代码缩进是必不可少的。一般的缩进的标准是以四个空格为单位或TAB键为单位

1: IF NOT EXISTS( SELECT [OrdersID] FROM [Orders]
   2:             WHERE [CustomersID] = @CustomersID AND
   3:             [OrdersNo] = @OrdersNo )
   4: BEGIN
   5:     INSERT INTO [Orders]
   6:     (
   7:         [OrdersID],
   8:         [OrdersNo],
   9:         [CreateDate],
  10:         [Decription],
  11:         [CustomersID]
  12:     )
  13:     VALUES
  14:     (
  15:         NEWID(),
  16:         @OrdersNo,
  17:         GETDATE(),
  18:         '',
  19:         @CustomersID
  20:     )
  21:     SET @error = @@ERROR
  22:     IF (@error <> 0) GOTO ExitPoint    
  23: END

注释

代码逻辑更易懂,最好添加表要的注释,这样对于codereview和维护都是有大大滴好处。

“--”:单行注释

“/*……*/”:多行注释

   1:  -- 创建名字为myDemo的数据库
   2:  CREATE DATABASE myDemo;
   3:  /* 
   4:  创建数据库表
   5:  表名为Orders
   6:  */
   7:  CREATE TABLE Orders
   8:  {
   9:      [OrdersID] int NOT NULL
  10:  }

括号

使用括号增加可读性

   1:  SELECT [OrdersID]
   2:  FROM [ORDERS]
   3:  WHERE 
   4:  (
   5:      CustomersID = '12345678' 
   6:      AND ([Description] LIKE '%computer%' OR [Description] LIKE '%phone%'
   7:  )

空格

SQL内算数运算符和逻辑运算符连接的两个元素须用空格分隔。逗号如果不是一行的结束,要在逗号后面加空格。

代码示例请参照上面的例子

应该还有很所关于格式化的规则,由于本人设计数据尚浅,接触的数据库也不是特别多,还希望大家帮忙补充

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏熊二哥

那些年我们写过的T-SQL(中篇)

中篇的重点在于,在复杂情况下使用表表达式的查询,尤其是公用表表达式(CTE),也就是非常方便的WITH AS XXX的应用,在SQL代码,这种方式至少可以提高一...

19570
来自专栏乐沙弥的世界

SQL基础-->分组与分组函数

使用group by column1,column2,..按columm1,column2进行分组,即column1,column2组合相同的值为一个组

17520
来自专栏小白安全

小白博客 MySQL日期时间函数大全

DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEE...

308100
来自专栏james大数据架构

你真的会玩SQL吗?透视转换的艺术

你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接、外连接 你真的会玩SQL吗?三范式、数据完整性 你真...

25460
来自专栏PHP在线

mysql

cross join :笛卡尔交集。 Inner join :内连接。 left join :只要满足左边表的需求就可以了,右表有无都可以。 right ...

37580
来自专栏栗霖积跬步之旅

第七章:数据过滤

表名:products 字段:product_id、product_name、product_price、vend_id(供应商) 为了提供更强的过滤控制...

196100
来自专栏章鱼的慢慢技术路

SQL数据查询之——嵌套查询

18930
来自专栏乐沙弥的世界

批量 SQL 之 FORALL 语句

    对PL/SQL而言,任何的PL/SQL块或者子程序都是PL/SQL引擎来处理,而其中包含的SQL语句则由PL/SQL引擎发送SQL语句转交到SQL引擎...

9520
来自专栏数据之美

图文并茂详解 SQL JOIN

Join是关系型数据库系统的重要操作之一,一般关系型数据库中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另...

29480
来自专栏me的随笔

T-SQL基础(一)之简单查询

SQL: Structured Query Language,结构化查询语言,是一种在关系型数据库中用于管理数据的标准语言。SQL是一种声明式编程语言,即只需表...

22220

扫码关注云+社区

领取腾讯云代金券