132 lines
2.5 KiB
Text
132 lines
2.5 KiB
Text
-- Samples of MySQL parsing
|
|
|
|
|
|
-- Comments
|
|
# standalone comment line
|
|
-- standalone comment line
|
|
SELECT 1; -- trailing comment
|
|
SELECT 1; # trailing comment
|
|
SELECT 1; /* trailing comment */
|
|
SELECT /* interruption */ /**/ 1;
|
|
/*
|
|
Multiline / * / comment
|
|
*/
|
|
/* /* MySQL does not support nested comments */
|
|
SELECT 'If this line is a comment then nested commenting is enabled (and therefore broken).';
|
|
|
|
|
|
-- Optimizer hints
|
|
SELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ 1;
|
|
SELECT /*+ SET_VAR(foreign_key_checks=OFF) */ 1;
|
|
|
|
|
|
-- Literals
|
|
SELECT
|
|
-- Integers
|
|
123,
|
|
|
|
-- Floats
|
|
.123, 1.23, 123.,
|
|
|
|
-- Exponents
|
|
1e10, 1e-10, 1.e20, .1e-20,
|
|
|
|
-- Hexadecimal
|
|
X'0af019', x'0AF019', 0xaf019,
|
|
|
|
-- Binary
|
|
B'010', b'010', 0b010,
|
|
|
|
-- Temporal literals
|
|
{d'2020-01-01'}, { d ' 2020^01@01 ' },
|
|
{t'8 9:10:11'}, { t ' 09:10:11.12 ' }, { t ' 091011 ' },
|
|
{ts"2020-01-01 09:10:11"}, { ts ' 2020@01/01 09:10:11 ' },
|
|
|
|
-- Strings
|
|
'', 'abc', '1''2\03\%4\_5\\6\'7\"8',
|
|
"", "abc", "1""2\03\%4\_5\\6\'7\"8",
|
|
;
|
|
|
|
|
|
-- Variables
|
|
SET @a = 1, @1 = 2, @._.$ = 3;
|
|
SET @'?' = 1, @'abc''def"`ghi' = 2;
|
|
SET @"#" = 1, @"abc""def'`ghi" = 2;
|
|
SET @`^` = 1, @`abc``def'"ghi` = 2;
|
|
SELECT
|
|
@@timestamp,
|
|
@@global.auto_increment_offset,
|
|
@@session.auto_increment_offset,
|
|
@@auto_increment_offset
|
|
;
|
|
|
|
|
|
-- Prepared statements
|
|
SELECT POW(?, 3) AS cubed;
|
|
|
|
|
|
-- Constants
|
|
SELECT TRUE, FALSE, NULL, UNKNOWN;
|
|
|
|
|
|
-- Data types
|
|
CREATE TABLE table1 (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(20) NOT NULL,
|
|
birthyear YEAR
|
|
);
|
|
|
|
|
|
-- Keywords
|
|
INSERT INTO table1 (person, birthyear) VALUES ('abc', 2020);
|
|
|
|
WITH RECURSIVE example (n) AS (
|
|
SELECT 1
|
|
UNION ALL
|
|
SELECT n + 1 FROM example
|
|
WHERE n < 10
|
|
)
|
|
SELECT n FROM example;
|
|
|
|
SELECT 17 MEMBER OF ('[23, "abc", 17, "ab", 10]');
|
|
|
|
|
|
-- Functions
|
|
SELECT CONCAT('function');
|
|
SELECT MAX(quantity) FROM example;
|
|
|
|
|
|
-- Schema object names
|
|
CREATE TABLE basic (
|
|
example INT,
|
|
股票编号 INT,
|
|
`select` INT,
|
|
`concat(` INT
|
|
);
|
|
|
|
SELECT e1.`apple` AS a, `example2`.b
|
|
FROM example1 AS e1
|
|
JOIN example2 e2
|
|
ON `example1`.`a``b` = e2.`123`;
|
|
|
|
|
|
-- Operators
|
|
SELECT 1 + 2 - 3 << 2;
|
|
SELECT 1::DECIMAL(5, 2);
|
|
SET @a = 1;
|
|
SET a := 1;
|
|
SELECT c->>'$.name' FROM example;
|
|
|
|
|
|
|
|
-- Exceptions
|
|
CREATE TABLE t1
|
|
(
|
|
c1 VARCHAR(5) CHARACTER SET latin1,
|
|
c2 SET('r', 'g', 'b')
|
|
);
|
|
|
|
|
|
-- Introducers
|
|
SELECT _latin1'abc';
|
|
SELECT _binary'abc';
|