Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 建议的SQL格式_Mysql_Sql - Fatal编程技术网

Mysql 建议的SQL格式

Mysql 建议的SQL格式,mysql,sql,Mysql,Sql,我正在处理我的SQL,我有以下声明: 1 SELECT c.credit_display, t.title, t.provider 2 FROM credits c 3 INNER JOIN title t 4 ON c.vendor_id = t.vendor_id 5 WHERE c.position = 'Director' and t.provider = 'Premiere' 6 INTO OU

我正在处理我的SQL,我有以下声明:

1    SELECT c.credit_display, t.title, t.provider
2       FROM credits c
3           INNER JOIN title t 
4           ON c.vendor_id = t.vendor_id
5       WHERE c.position = 'Director' and t.provider = 'Premiere'
6           INTO OUTFILE '/var/tmp/file.csv'
7           FIELDS TERMINATED BY ','

我想知道标签的正确格式是什么。何时缩进的建议做法是什么(例如,第三行是两个制表符还是三个?)

这都是个人偏好(或公司编码标准,取决于您的环境)。我倾向于这样写我的查询:

SELECT c.credit_display, t.title, t.provider
FROM credits c
INNER JOIN title t ON c.vendor_id = t.vendor_id
WHERE c.position = 'Director' AND t.provider = 'Premiere'
INTO OUTFILE '/var/tmp/file.csv'
FIELDS TERMINATED BY ','

其中查询的每一行都是对齐的。缩进取决于它在代码中的位置以及使用的语言。但同样,这取决于个人偏好或公司标准。

这都是非常主观的

由于
到OUTFILE
字段
选项属于整个
SELECT
语句,我可能不会在
WHERE
子句下面缩进它们,而是在最左边的位置(无缩进)

由于有多个
WHERE
条件,因此可以在新行中缩进每个条件。我会对
SELECT
列和
FROM
表应用相同的方法。
JOIN
中的
ON
子句缩进到它所应用的
JOIN
ed表下面

SELECT
   /* each column on its own line */
   /* unless it is only 1 column */
   c.credit_display, 
   t.title, 
   t.provider
FROM
   credits c
   INNER JOIN title t 
      /* ON clause indented beneath the join */
      ON c.vendor_id = t.vendor_id
WHERE 
   /* each condition on its own line */
   c.position = 'Director'
   AND t.provider = 'Premiere'
/* This apply to the entire statement so I would not indent them
INTO OUTFILE '/var/tmp/file.csv'
  /* You might indent this and other LINES TERMINATED BY options 
     beneath the OUTFILE line */
  FIELDS TERMINATED BY ','

缩进是一个非常主观的问题,最好的办法是与您的团队就如何缩进代码达成一致。

做任何可读性最好的事情。如果您正在处理团队项目,请确定供每个人使用的标准格式准则。与许多(但不是所有)语言一样,缩进在SQL中并没有造成功能上的差异。