Just preparing for the test on ANSI SQL, gathered all statements together.
- SELECT
- INSERT
- UPDATE
- CREATE
- GRANT
- ANY, IN, SOME, ALL
- LIKE
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] [FOR UPDATE | LOCK IN SHARE MODE]] SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name = t2.name; SELECT t1.name, t2.salary FROM employee t1, info t2 WHERE t1.name = t2.name; SELECT college, region, seed FROM tournament ORDER BY 2, 3; SELECT COUNT(col1) AS col2 FROM t GROUP BY col2 HAVING col2 = 2;
INSERT - 3 ways
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name,...)] [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr [, col_name=expr] ... ] INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name,...)] SET col_name={expr | DEFAULT}, ... [ ON DUPLICATE KEY UPDATE col_name=expr [, col_name=expr] ... ] INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name,...)] [(col_name,...)] SELECT ... [ ON DUPLICATE KEY UPDATE col_name=expr [, col_name=expr] ... ] INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15); INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9); insert into Citylist (cityname) VALUES ('St. John\'s') INSERT INTO t2 (b, c) VALUES ((SELECT a FROM t1 WHERE b='Chip'), 'shoulder'), ((SELECT a FROM t1 WHERE b='Chip'), 'old block'), ((SELECT a FROM t1 WHERE b='John'), 'toilet'), ((SELECT a FROM t1 WHERE b='John'), 'long,silver'), ((SELECT a FROM t1 WHERE b='John'), 'li''l');
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] //examples UPDATE t1 SET col1 = col1 + 1, col2 = col1; UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
CREATE
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] select_statement create_definition: col_name column_definition | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_type] | {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_type] | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_type] | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) [index_type] | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition | CHECK (expr) column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'] [reference_definition] CREATE TABLE IF NOT EXISTS `s chema`.`Employee` ( `idEmployee` V ARCHAR(45) NOT NULL , `Name` V ARCHAR(255) NULL , `idAddresses` V ARCHAR(45) NULL , PRIMARY KEY (`idEmployee`) , CONSTRAINT `fkEmployee_Addresses` FOREIGN KEY `fkEmployee_Addresses` (`idAddresses`) REFERENCES `s chema`.`Addresses` (`idAddresses`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level TO user_specification [, user_specification] ... [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}] [WITH with_option ...] CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost'; GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90; GRANT ALL ON *.* TO 'someuser'@'somehost'; GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost'; GRANT ALL ON mydb.* TO 'someuser'@'somehost'; GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'somehost'; GRANT SELECT (col1), INSERT (col1,col2) ON mydb.mytbl TO 'someuser'@'somehost';
operand comparison_operator ANY (subquery) operand IN (subquery) operand comparison_operator SOME (subquery) SELECT s1 FROM t1 WHERE s1 > ANY ( SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 = ANY ( SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 IN ( SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 <> ANY ( SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 <> SOME ( SELECT s1 FROM t2); /*ALL, which must follow a comparison operator, means return TRUE if the comparison is TRUE for ALL of the values in the column that the subquery returns.*/ SELECT s1 FROM t1 WHERE s1 > ALL ( SELECT s1 FROM t2); SELECT * FROM t1 WHERE 1 > ALL ( SELECT MAX(s1) FROM t2); //same expressions SELECT s1 FROM t1 WHERE s1 <> ALL ( SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 NOT IN ( SELECT s1 FROM t2);
LIKE - SQL pattern matching enables you to use '_' to match any single character and '%' to match an arbitrary number of characters
SELECT * FROM pet WHERE name LIKE 'b%'; SELECT * FROM pet WHERE name LIKE '_____';//contain 5 chars SELECT * FROM pet WHERE name REGEXP '^b';//beginning with “b”
Leave a Comment