#1214. SQL语言
SQL语言
题目背景
SQL语言是一个后端工程师的必备技能,和数据库交互必须靠它。
最常用的命令,莫过于SELECT
, INSERT
和UPDATE
例如: SELECT (password, ip) FROM user WHERE username = 'admin';
这条语句用于查询数据库中username
为admin
的密码和登录ip,没错,所有的登录都是这么实现的。
SQL语言当然也要注意语法,否则轻则报错,重则出现SQL注入,全数据库的数据全都泄露。
你的任务,就是简单的检查要执行的sql语句中,是否存在语法错误或不规范的语法。
题目描述
给定 条查询语句。判断语法错误。 你需要检查的有:
- 括号是否匹配
- 单引号是否匹配
- 语句末是否以分号结尾
- 关键字是否大写
需要检测的关键字有: INSERT
, SELECT
, UPDATE
, INTO
, FROM
, WHERE
, SET
, VALUES
输入
共行。每行一个语句 。
输出
共行。
通过检测,输出No Error
括号不匹配, 输出Bracket mismatch
单引号不匹配,输出Single quote mismatch
未以分号结尾,输出Missing semicolon
关键字未大写,输出Keyword not capitalized
特别地,如果一条语句包含多种错误类型,请单行输出,以;
隔开错误提示
输出优先级为:Bracket mismatch
>Keyword not capitalized
>Missing semicolon
>Single quote mismatch
样例输入
6
SELECT (password, ip FROM user WHERE username = 'admin';
SELECT (password, ip FROM user WHERE username = admin';
SELECT (password, ip) FROM user WHERE username = 'admin';
SELECT (password) FROM user WHERE name = 'admin';
INSERT INTO user (username, password) VALUES ('admin', '123456');
UPDATE user SET password = '123456' WHERE username = 'admin';
样例输出
Bracket mismatch
Bracket mismatch;Single quote mismatch
No Error
No Error
No Error
No Error
数据规模与约定
提交请使用C++14(O2)
对于40%的数据,保证无错误。
对于80%的数据,保证错误数 个
对于100%的数据,保证,