1.CREATE TABLE Statement
Reference resources: https://www.techonthenet.com/mysql/tables/create_table.php
(simple form)
CREATE TABLE table_name ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ... );
(complete form)
CREATE [ TEMPORARY ] TABLE [IF NOT EXISTS] table_name ( column1 datatype [ NULL | NOT NULL ] [ DEFAULT default_value ] [ AUTO_INCREMENT ] [ UNIQUE KEY | PRIMARY KEY ] [ COMMENT 'string' ], column2 datatype [ NULL | NOT NULL ] [ DEFAULT default_value ] [ AUTO_INCREMENT ] [ UNIQUE KEY | PRIMARY KEY ] [ COMMENT 'string' ], ... | [CONSTRAINT [constraint_name]] PRIMARY KEY [ USING BTREE | HASH ] (index_col_name, ...) | [INDEX | KEY] index_name [ USING BTREE | HASH ] (index_col_name, ...) | [CONSTRAINT [constraint_name]] UNIQUE [ INDEX | KEY ] [ index_name ] [ USING BTREE | HASH ] (index_col_name, ...) | {FULLTEXT | SPATIAL} [ INDEX | KEY] index_name (index_col_name, ...) | [CONSTRAINT [constraint_name]] FOREIGN KEY index_name (index_col_name, ...) REFERENCES another_table_name (index_col_name, ...) [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE { RESTRICT | CASCADE | SET NULL | NO ACTION } ] [ ON UPDATE { RESTRICT | CASCADE | SET NULL | NO ACTION } ] | CHECK (expression) {ENGINE | TYPE} = engine_name | AUTO_INCREMENT = value | AVG_ROW_LENGTH = value | [DEFAULT] CHARACTER SET = charset_name | CHECKSUM = {0 | 1} | [DEFAULT] COLLATE = collation_name | COMMENT = 'string' | DATA DIRECTORY = 'absolute path' | DELAY_KEY_WRITE = { 0 | 1 } | INDEX DIRECTORY = 'absolute path' | INSERT_METHOD = { NO | FIRST | LAST } | MAX_ROWS = value | MIN_ROWS = value | PACK_KEYS = {0 | 1 | DEFAULT} | PASSWORD = 'string' | RAID_TYPE = { 1 | STRIPED | RAIDO } RAID_CHUNKS = value RAID_CHUNKSIZE = value | ROW_FORMAT = {DEFAULT | DYNAMIC | FIXED | COMPRESSED} | UNION = (table1, ... ) );
PS: the whole form is a bit scary, but in fact most of it is not commonly used.
2. Create table as statement
Reference resources: https://www.techonthenet.com/mysql/tables/create_table_as.php
CREATE TABLE [ IF NOT EXISTS ] new_table [ AS ] SELECT expressions FROM existing_tables [WHERE conditions];
PS: this method can be used to quickly generate a sub table from a table with data or a complex associated query, for example, it can be used for quick data backup.
3.ALTER TABLE Statement
Reference resources: https://www.techonthenet.com/mysql/tables/alter_table.php
ALTER TABLE table_name ADD new_column_name column_definition [ FIRST | AFTER column_name ], ADD new_column_name column_definition [ FIRST | AFTER column_name ], ... ;
4.DROP TABLE Statement
DROP [ TEMPORARY ] TABLE [ IF EXISTS ] table_name1, table_name2, ... [ RESTRICT | CASCADE ];
5.VIEW
Reference resources: https://www.techonthenet.com/mysql/views.php
-CREATE
CREATE [OR REPLACE] VIEW view_name AS SELECT columns FROM tables [WHERE conditions];
-Update
ALTER VIEW view_name AS SELECT columns FROM table WHERE conditions;
-Drop
DROP VIEW [IF EXISTS] view_name;
PS: there are many functions of view, such as report query and data cleaning;