SQL语言alter用法

前言:

alter用于修改数据库结构,比如表的结构,索引或者约束等。而update用于修改数据库的数据。

用法实例:

删除列:

 ALTER TABLE 表名 DROP COLUMN 列名;

 增加列:

  ALTER TABLE 表名 ADD COLUMN 列名 属性 约束;

重命名列:

ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;

重命名表:

      ALTER TABLE 旧表名 RENAME TO 新表名;

删除主键:

ALTER TABLE 表名 DROP PRIMARY KEY;

添加主键:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (指定列);

添加索引:

ALTER TABLE 表名 ADD index 索引名 (列名);

修改列:

ALTER TABLE 表名 CHANGE 旧列名 TO 新列名 属性

修改列的属性:

 ALTER TABLE 表名 MODIFY COLUMN 列名 新属性;

修改列的默认值:

 ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT 默认值;

删除约束:

ALTER TABLE 表名 DROP CONSTRAINT 约束名;
SQL中,`ALTER`语句是数据定义语言(DDL)的一部分,用于修改数据库对象的结构。它可以对表、索引、视图等数据库对象进行更改操作,以适应不断变化的业务需求。以下是`ALTER`语句在不同数据库对象上的常见用法。 ### 修改表结构 `ALTER TABLE`语句SQL中最常用的`ALTER`操作之一,主要用于修改现有表的结构。常见的操作包括添加列、删除列、修改列的定义、重命名列、更改表名以及添加或删除索引等。 #### 添加新列 ```sql ALTER TABLE table_name ADD COLUMN new_column_name column_definition; ``` 例如,向`employees`表中添加一个名为`salary`的列: ```sql ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2); ``` #### 删除列 ```sql ALTER TABLE table_name DROP COLUMN column_name; ``` 例如,从`employees`表中删除`salary`列: ```sql ALTER TABLE employees DROP COLUMN salary; ``` #### 修改列的数据类型 ```sql ALTER TABLE table_name MODIFY column_name new_column_definition; ``` 例如,将`employees`表中的`salary`列从`DECIMAL(10, 2)`更改为`FLOAT`: ```sql ALTER TABLE employees MODIFY salary FLOAT; ``` #### 重命名列 ```sql ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition; ``` 例如,将`employees`表中的`salary`列重命名为`wage`: ```sql ALTER TABLE employees CHANGE salary wage FLOAT; ``` #### 更改表名 ```sql ALTER TABLE old_table_name RENAME TO new_table_name; ``` 例如,将`employees`表重命名为`staff`: ```sql ALTER TABLE employees RENAME TO staff; ``` #### 添加索引 - **主键**: ```sql ALTER TABLE table_name ADD PRIMARY KEY (column_list); ``` - **唯一索引**: ```sql ALTER TABLE table_name ADD UNIQUE index_name (column_list); ``` - **普通索引**: ```sql ALTER TABLE table_name ADD INDEX index_name (column_list); ``` - **全文索引**: ```sql ALTER TABLE table_name ADD FULLTEXT index_name (column_list); ``` #### 删除索引 ```sql ALTER TABLE table_name DROP INDEX index_name; ``` 例如,删除`employees`表上的`idx_name`索引: ```sql ALTER TABLE employees DROP INDEX idx_name; ``` ### 修改视图结构 `ALTER VIEW`语句用于修改现有视图的定义,而不必删除并重新创建视图。语法如下: ```sql ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] [DEFINER = user] [SQL SECURITY { DEFINER | INVOKER }] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]; ``` 例如,修改`employee_view`视图,使其只显示`department_id = 10`的员工: ```sql ALTER VIEW employee_view AS SELECT * FROM employees WHERE department_id = 10; ``` ### 修改数据库属性 除了表和视图外,`ALTER`语句还可以用于修改数据库本身的属性。这通常涉及更改数据库的字符集、排序规则或其他配置选项。不同的数据库管理系统(如MySQL、PostgreSQLSQL Server)对此的支持有所不同,但基本语法类似。 例如,在MySQL中,可以使用以下语句修改数据库的字符集和排序规则: ```sql ALTER DATABASE database_name CHARACTER SET charset_name COLLATE collation_name; ``` ### 实际开发技巧 - **备份数据**:在执行任何`ALTER`操作之前,建议先备份相关数据,以防意外发生。 - **测试环境验证**:尽量在测试环境中验证`ALTER`语句的效果,确保不会影响生产环境。 - **考虑性能影响**:某些`ALTER`操作(如添加或删除列、修改列的数据类型)可能会锁定表或导致性能下降,尤其是在处理大型表时。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值