MySql 数据库常用命令

Mysql常用命令集:

1、增加表

语法:
CREATE 表名(字段名1[,字段名2,字段名3,....])

  

DROP PROCEDURE
IF EXISTS schema_change;  
DELIMITER
CREATE PROCEDURE schema_change ()

BEGIN
DECLARE CurrentDatabase VARCHAR (100) ; SELECT
	DATABASE () INTO CurrentDatabase ;
IF NOT EXISTS (
	SELECT
		*
	FROM
		information_schema. TABLES
	WHERE
		table_schema = CurrentDatabase
	AND table_name = '表名'
) THEN
	CREATE TABLE 表名 (
		Id INT NOT NULL auto_increment,
		字段名 字段类型 [NOT NULL],
                [.....],
		PRIMARY KEY (Id)
	) DEFAULT CHARSET = utf8 ;
END
IF ;
END//  
DELIMITER ;
CALL schema_change ();

2、为已有表增加字段

语法:
ALTER TABLE 表名 ADD 字段名 字段类型 [COMMENT 描述];

 

DROP PROCEDURE
IF EXISTS schema_change;  
DELIMITER
CREATE PROCEDURE schema_change ()

BEGIN
DECLARE CurrentDatabase VARCHAR (100) ; SELECT
	DATABASE () INTO CurrentDatabase ;
IF NOT EXISTS (
	SELECT
		*
	FROM
		information_schema. COLUMNS
	WHERE
		table_schema = CurrentDatabase
	AND table_name = '表名'
	AND column_name = '字段名'
) THEN
	ALTER TABLE 表名 ADD 字段名 TINYINT (1) COMMENT '字段描述';
END
IF ;
END  
DELIMITER ;
CALL schema_change ();

 

3、为数据库表已有字段设置默认值

语法:
ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT '默认值';

  

DROP PROCEDURE
IF EXISTS schema_change;  
DELIMITER
CREATE PROCEDURE schema_change ()
BEGIN
DECLARE CurrentDatabase VARCHAR (100) ; SELECT DATABASE () INTO CurrentDatabase ; IF NOT EXISTS ( SELECT * FROM information_schema. COLUMNS WHERE table_schema = CurrentDatabase AND table_name = '表名' AND column_name = '字段名' ) THEN ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT '默认值'; END IF ; END DELIMITER ; CALL schema_change ();

  

4、删除表中字段的默认值

语法:
ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT;

 

DROP PROCEDURE
IF EXISTS schema_change;  
DELIMITER
CREATE PROCEDURE schema_change ()

BEGIN
    DECLARE
        CurrentDatabase VARCHAR (100) ; SELECT
            DATABASE () INTO CurrentDatabase ;
        IF EXISTS (
            SELECT
                *
            FROM
                information_schema. COLUMNS
            WHERE
                table_schema = CurrentDatabase
            AND table_name = '表名'
            AND column_name = '字段名'
        ) THEN
            ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT;
        END
        IF ;
        END
DELIMITER ;
CALL schema_change ();

5、删除表字段

语法:
ALTER TABLE 表名 DROP COLUMN 字段名;

 

DROP PROCEDURE
IF EXISTS schema_change;  
DELIMITER
CREATE PROCEDURE schema_change ()
BEGIN DECLARE CurrentDatabase VARCHAR (100) ; SELECT DATABASE () INTO CurrentDatabase ; IF EXISTS ( SELECT * FROM information_schema. COLUMNS WHERE table_schema = CurrentDatabase AND table_name = '表名' AND column_name = '字段名' ) THEN ALTER TABLE 表名 DROP COLUMN 字段名; END IF ; END DELIMITER ; CALL schema_change ();

  

6、修改字段名

语法:
ALTER TABLE 表名 RENAME COLUMN 原字段名 TO 新字段名;

 

DROP PROCEDURE
IF EXISTS schema_change;  
DELIMITER
CREATE PROCEDURE schema_change ()

BEGIN
	DECLARE
		CurrentDatabase VARCHAR (100) ; SELECT
			DATABASE () INTO CurrentDatabase ;
		IF EXISTS (
			SELECT
				*
			FROM
				information_schema. COLUMNS
			WHERE
				table_schema = CurrentDatabase
			AND table_name = '表名'
			AND column_name = '字段名'
		) THEN
			ALTER TABLE 表名 RENAME COLUMN 原字段名 TO 新字段名;
		END
		IF ;
		END
DELIMITER ;
CALL schema_change ();

  

7、修改字段类型

语法:
ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型 [NOT NULL|NULL];

  

DROP PROCEDURE
IF EXISTS schema_change;  
DELIMITER
CREATE PROCEDURE schema_change ()

BEGIN
	DECLARE
		CurrentDatabase VARCHAR (100) ; SELECT
			DATABASE () INTO CurrentDatabase ;
		IF EXISTS (
			SELECT
				*
			FROM
				information_schema. COLUMNS
			WHERE
				table_schema = CurrentDatabase
			AND table_name = '表名'
			AND column_name = '字段名'
		) THEN
			ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型 [NOT NULL|NULL];
		END
		IF ;
		END
DELIMITER ;
CALL schema_change ();

  

8、删除表(物理删除)

语法:
DROP TABLE [IF EXISTS] 表名1[ ,表名2, 表名3 ...];

  

9、删除表数据

TRUNCATE TABLE 表名;
或者
DELETE FROM 表名 [WHERE ...]

  

truncate 和 delete 的区别:

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。

2、truncate不能进行回滚操作。

3、truncate不触发任何delete触发器。

4、当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。

5、不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

    DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。

 

结束:

  先就写这么多吧,以后有更多的再补充。

posted @ 2020-06-24 15:46  yuyoho  阅读(279)  评论(0编辑  收藏  举报