小白学习MySQL Day6 20240820

一、ALTER 语句

用来修改 现有数据库的表结构

1、对列的操作  

(1)添加列

ALTER TABLE table_name ADD column_name Data_Type [col_options];

(2)删除列   

 ALTER TABLE table_name DROP COLUMN column_name;

(3)重命名列
ALTER TABLE table_name

CHANGE COLUMN old_name new_name Data_Type [col_options];

(4)修改列数据类型

ALTER TABLE table_name

MODIFY COLUMN column_name Data_Type [col_options];

2、对表约束的操作

(1)PRIMARY KEY

  • 添加主键

ALTER TABLE table_name

ADD PRIMARY KEY (column_name);

  • 删除主键

ALTER TABLE table_name DROP PRIMARY KEY;

主键唯一,不需要名字。

(2)FOREIGN KEY

  • 添加外键

ALTER TABLE table_name

ADD CONSTRAINT fk_name FOREIGN KEY (column_name)

REFERENCES parent_table(column_name);

  • 删除外键

ALTER TABLE table_name DROP FOREIGN KEY fk_name;

(3)INDEX

  • 添加索引

ALTER TABLE table_name ADD INDEX index_name (column_name);

  • 删除索引

ALTER TABLE table_name DROP INDEX index_name;

Can be used to drop unique keys. 常用DROP INDEX来删除UNIQUE KEY.
(4) CHKECK
  • 添加CHECK

ALTER TABLE table_name ADD CONSTRAINT chk_name CHECK (condition);

  • 删除CHECK

ALTER TABLE table_name DROP CHECK chk_name;

二、DROP语句  

DROP 语句 删除约束(内键、外键、索引、CHECK),表和数据库。

1、与DELETE语句的区别
  •      DELETE 语句 删除表中的行。不会删除表本身。

        删除某行:

                DELETE FROM table_name WHERE condition;
                如果不使用WHERE子句,将删除表中的所有行。

        删除所有行:

                DELETE * FROM table_name;

                可以在不删除表的情况下删除所有的行。表的结构、属性和索引都是完整的。

  • DROP 语句

        删除整个表,包括表的结构、定义、索引、约束以及表中的所有数据。

                DROP TABLE table_name;

                DROP TABLE [IF EXISTS ] table-name1, table-name2…;
2、当删除操作被外键约束的RESTRICT阻止时
Foreign Key constraints will prevent DROP under the default RESTRICT option,
to overcome this:
        • Remove the foreign key constraints first then drop the tables.
                首先移除外键约束,然后删除表。        
        • Drop the tables in the correct order (referencing table first).以正确的顺序删除表
                首先删除主表(引用表中的外键指向的表),然后再删除从表。
                这样,在删除从表之前,其所有的外键引用都已经被清除。
        • Turn off foreign key check temporarily.暂时关闭外键检查。
                关闭外键检查:
                        SET FOREIGN_KEY_CHECKS = 0;
                删除表:
                        DROP TABLE table_name;
                重新启用外键检查
                        SET FOREIGN_KEY_CHECKS = 1;
  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值