Skip to content

大小写敏感

规范

创建语句 (CREATE DATABASE/TABLE)

数据库名,表名和列名在创建时,会保留原始大小写:

示例:

sql

lightning> CREATE DATABASE UserDB;
Query OK, 0 rows affected (0.01 sec)

-- 库名的大小写保留
lightning> SHOW DATABASES ;
+----------------+
| Databases      |
+----------------+
| UserDB         |
+----------------+
sql
lightning> CREATE TABLE UserInfo (UserID int);
Query OK, 0 rows affected (0.01 sec)

-- 表名的大小写保留
lightning> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| UserInfo       |
+----------------+
1 row in set (0.00 sec)
sql
-- 列名的大小写保留
lightning> SHOW COLUMNS FROM UserInfo;
+--------+---------+
| Field  | Type    |
+--------+---------+
| UserID | int(11) |
+--------+---------+
1 row in set (0.00 sec)

但不允许创建仅大小写不同的库名/表名/列名:

示例:

sql
-- 不允许创建仅大小写不同的列名
lightning> CREATE TABLE UserInfo (UserID int, userid int);
ERROR: Duplicate column name 'userid'

lightning> CREATE TABLE UserInfo (UserID int);
Query OK, 0 rows affected (0.01 sec)

-- 不允许创建仅大小写不同的表名
lightning> CREATE TABLE userinfo (userid int);
ERROR: Table 'userinfo' already exists

查询语句 (SELECT) / 插入语句 (INSERT) / 更新语句 (UPDATE) / 删除语句 (DELETE)

关键字、数据库名、表名、列名、别名、变量名、函数名等标识符,不区分大小写。

示例

以下查询语句是等价的:

sql
lightning> select vin from vehicle_info;
lightning> SELECT VIN FROM VEHICLE_INFO;
lightning> select vehicle_info.vin from vehiCLE_INFO;
lightning> select v.vin from vehicle_info v;

注意事项

  • 在返回的字段名中,用户输入的大小写和空格会被保留。

    示例:

    sql
    -- 这里的 userid 和 UserID 是同一个字段
    lightning> SELECT userid, UserID FROM UserInfo;
    +--------+--------+
    | userid | UserID |
    +--------+--------+
    |      1 |      1 |
    +--------+--------+
    1 row in set (0.00 sec)

参考