MySQL语句的语法

2019-08-03
在阅读语句语法时,应该记住以下约定。

  • | 符号用来指出几个选择中的一个,因此,NULL | NOT NULL 表示或者给出 NULL或者给出 NOT NULL
  • 包含在方括号中的关键字或子句(如[like this])是可选的。
  • 即没有列出所有的MySQL语句,也没有列出每一条子句和选项。

1. ALTER TABLE

ALERT TABLE用来更新已经存在的表的模式。
输入:help alter table

ALTER TABLE table_name
  | ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
  | ADD [COLUMN] (col_name column_definition,...)
  | ADD {INDEX|KEY} [index_name]
        [index_type] (index_col_name,...) [index_option] ...
  | ADD [CONSTRAINT [symbol]] PRIMARY KEY
        [index_type] (index_col_name,...) [index_option] ...
  | ADD [CONSTRAINT [symbol]]
        UNIQUE [INDEX|KEY] [index_name]
        [index_type] (index_col_name,...) [index_option] ...
  | ADD FULLTEXT [INDEX|KEY] [index_name]
        (index_col_name,...) [index_option] ...
  | ADD SPATIAL [INDEX|KEY] [index_name]
        (index_col_name,...) [index_option] ...
  | ADD [CONSTRAINT [symbol]]
        FOREIGN KEY [index_name] (index_col_name,...)
        reference_definition
  | ALGORITHM [=] {DEFAULT|INPLACE|COPY}
  | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  | ALTER INDEX index_name {VISIBLE | INVISIBLE}
  | CHANGE [COLUMN] old_col_name new_col_name column_definition
        [FIRST|AFTER col_name]
  | [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]
  | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
  | {DISABLE|ENABLE} KEYS
  | {DISCARD|IMPORT} TABLESPACE
  | DROP [COLUMN] col_name
  | DROP {INDEX|KEY} index_name
  | DROP PRIMARY KEY
  | DROP FOREIGN KEY fk_symbol
  | FORCE
  | LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
  | MODIFY [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
  | ORDER BY col_name [, col_name] ...
  | RENAME COLUMN old_col_name TO new_col_name
  | RENAME {INDEX|KEY} old_index_name TO new_index_name
  | RENAME [TO|AS] new_tbl_name
  | {WITHOUT|WITH} VALIDATION
  | ADD PARTITION (partition_definition)
  | DROP PARTITION partition_names
  | DISCARD PARTITION {partition_names | ALL} TABLESPACE
  | IMPORT PARTITION {partition_names | ALL} TABLESPACE
  | TRUNCATE PARTITION {partition_names | ALL}
  | COALESCE PARTITION number
  | REORGANIZE PARTITION partition_names INTO (partition_definitions)
  | EXCHANGE PARTITION partition_name WITH TABLE tbl_name [{WITH|WITHOUT} VALIDATION]
  | ANALYZE PARTITION {partition_names | ALL}
  | CHECK PARTITION {partition_names | ALL}
  | OPTIMIZE PARTITION {partition_names | ALL}
  | REBUILD PARTITION {partition_names | ALL}
  | REPAIR PARTITION {partition_names | ALL}
  | REMOVE PARTITIONING
  | UPGRADE PARTITIONING

2.COMMIT

COMMIT用来将事务处理写到数据库。
输入:

COMMIT;

3.CREATE INDEX

CREATE INDEX用于在一个或多个列上创建索引。
输入:

CREATE INDEX indexname
ON tablename (column [ASC | DESC], ...);

4.CREATE PROCEDURE

CREATE PROCEDURE用于创建存储过程。
输入:

CREATE PROCEDURE procedurename( [parameters] )
BEGIN
...
END;

5.CREATE TABLE

CREATE TABLE用于创建新数据库表。为更新已经存在的表的结构,使用ALTER TABLE
输入:

CREATE TABLE [IF NOT EXISTS] tablename 
(
	column datatype [NULL | NOT NULL] [CONSTRAINTS],
	column datatype [NULL | NOT NULL] [CONSTRAINTS],
	...
);

创建列时如果不指定NOT NULL,则认为指定的是NULLNULL为默认值。
不要把NULL值与空串相混淆。NULL值是没有值,它不是空串。如果指定''(两个单引号,其间没有字符),这在NOT NULL列中是允许的。空串是一个有效的值,它不是无值。NULL值用关键字NULL而不是空串指定。

6.CREATE USER

CREATE USER用于向系统中添加新的用户账号。
输入:

CREATE USER username[@hostname]
[IDENTIFIED BY [PASSWORD] 'password'];

7.CREATE VIEW

CREATE VIEW用来创建一个或多个表上的新视图。
输入:

CREATE [OR REPLACE] VIEW viewname
AS
SELECT ...;

8.DELETE

DELETE从表中删除一行或多行,并不删除表本身。如果想从表中删除所有行,不要使用DELETE。可使用TRUNCATE TABLE语句,它完成相同的工作,但速度更快(TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据)。
输入:

DELETE FROM tablename
[WHERE ...];

9.DROP

DROP永久地删除数据库对象。
输入:

DROP DATABASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW
	itemname;

10.INSERT

INSERT给表增加一行。
输入:

INSERT INTO tablename [(columns, ...)]
VALUES(values, ...);

11.INSERT SELECT

INSERT SELECT插入SELECT的结果到一个表。
输入:

INSERT INTO tablename [(columns, ...)]
SELECT columns, ... FROM tablename, ...
[WHERE ...];

12.ROLLBACK

ROLLBACK用于撤销一个事务处理块。
输入:

ROLLBACK [TO savepointname];

13.SAVEPOINT

SAVEPOINT为使用ROLLBACK语句设立保留点。
输入:

SAVEPOINT sp1;

14.SELECT

SELECT用于从一个或多个表(视图)中检索数据。
输入:

SELECT columnname, ...
FROM tablename, ...
[WHERE ...]
[UNION ...]
[GROUP BY ...]
[HAVING ...]
[ORDER BY ...];

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)

15.START TRANSACTION

START TRANSACTION表示一个新的事务处理块的开始。
输入:

START TRANSACTION;

16.UPDATE

UPDATE更新表中的一行或多行。如果用UPDATE语句更新多行,并且在更新这些行中的一行或多行时出现一个错误,则整个UPDATE操作被 取消(错误发生前更新的所有行被恢复到它们原来的值)。即使是发生错误,也继续进行更新,可使用IGNORE关键字。
输入:

UPDATE [IGNORE] tablename
SET columnname = value, ...
[WHERE ...];

17.重命名表

RENAME TABLE oldTableName TO newTableName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值