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

    结束:

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

  • 相关阅读:
    即将到来的“分布式云”(DPaaS):分布式计算+ DB +存储即服务
    【玩转MLS系列】基础教程
    【云速建站】微信公众平台中维护IP白名单
    基于华为云对话机器人技能平台的规则模板概述
    云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot
    Python一秒搭建ftp服务器,帮助你在局域网共享文件
    华为担纲建设基础软硬件国家新一代AI开放创新平台
    基于华为云区块链服务快速部署和搭建链上应用
    protobuf代码生成
    python的str()和repr()的区别
  • 原文地址:https://www.cnblogs.com/yuyoho/p/13187747.html
Copyright © 2020-2023  润新知