如何修改数据库

1)修改表明

alter table <old tablename> rename <net tablename>;

范例

alter table t1 rename t4;

2)修改字段的数据类型

alter table <table name> modify <column name> <data type>;

当表中已有数据是,慎用(特表数据量大)。

alter table t1 modify name varchar(20);

3)修改字段名

当表中已有数据是,慎用(特表数据量大)。

alter table <table name> change <old column name> <new column name>

alter table t1 change name uname varchar(20);

4)添加字段

当表中数据量很大时,慎用

alter table <table name> add <new column name> <new data type> [check] [first|after old_column_name]

alter table t1 add `location` varchar(20) -- 字段增加到最后列
alter table t1 add `age` int not null after uname; -- uname后面增加
alter table t1 add `colnum ` int first; -- 第一列增加一个字段

5)删除字段

alter table <table name> drop <column name>;

当表中数据量很大时,慎用

alter table t1 drop location;

6)修改字段排列位置

alter table <table name> modify <column name1> <data type> first|after <column name2>

当表中数据量很大时,慎用

alter table t1 modify name varchar(20) after uid;
alter table t1 modify location varchar(30) after uname;

7)更改表的存储引擎

alter table <table name> engine=<new engine>;

当表中的数据量很大时,慎用

alter table t1 engine=innodb;
alter table t1 engine=MYISAM;

8)删除标的外键约束

alter table <table name> drop foreign key <foreign key name>;

删除所有的外键之后,才能删除对应的主键所以在的表。

drop table t2;
ERROR 1217 (3000):Cannot delete or update a parent row: a foreign key constraint fails;
alter table t3 drop foreign key fk_1;
show create table t3\G;
drop table t2;

总结:

1)关系型数据库中突出强调利用数据之间的关系设计表,用表作为数据容器。

2)表设计要综合考虑多种因素,参考三范式合理规划。

3)存储引擎作用于表,不是作用于库。

4)大表慎用alter语句。

时间: 2024-07-28 21:30:38

如何修改数据库的相关文章

gitlab连接并批量修改数据库账号邮箱地址(上)

最近,由于公司的域名发生变化,导致需要批量修改gitlab的账号.这个工作对于运维人员来说,工作量还是相对较大的.因此,尝试通过脚本修改数据库的方式进行批量修改. 整个过程大致分为几个阶段: 1)搞清楚gitlab的数据库结构 2)使用Python对相关的字段进行修改,若发现以@xxx结尾的域名,自动替换为@aaa的域名 注:本文中所采用的gitlab安装方式为官方默认的yum安装 1)gitlab的数据库采用的是postgresql,连接库时需要修改pg_hba.conf文件的相关配置 vim

Ubuntu 安装 mysql 并修改数据库目录

. . . . . 今天折腾了一下午的时间,恢复了无数次虚拟机快照,终于在 Ubuntu 上把 mysql 安装好了. mysql 是从官网下载的:mysql-server_5.7.16-1ubuntu12.04_i386.deb-bundle.tar 系统是 32 位 Ubuntu 12.04 LTS. 首先把下载好的 mysql-server_5.7.16-1ubuntu12.04_i386.deb-bundle.tar 放到虚拟机的 ~/tmp 目录下,然后进入该目录开始安装. [emai

玩转SSH--Hibernate(三)---手动修改数据库,前台查询信息不同步更新问题解决方法

在用hibernate时遇到一个挺纠结的问题,就是我在手动修改数据库的信息后,前台页面查询到的信息还是之前的结果,一开始以为是缓存的问题,经过多次修改和在网上查询资料,最终发现可能是hibernate自身的连接池存在问题,通过下面方法配置C3P0连接池就可以解决这个问题. 首先在hibernate.cfg.xml中加入下面代码: <!-- C3P0连接池 可以应对手动修改数据库后前台不更新的问题--> <property name="hibernate.connection.p

修改数据库最大链接数

背景叙说: 多个应用在同一数据库在建立多个用户,并进行访问的时候.这时,我们需要注意数据库的最大链接数. 第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码 1. 查看processes和sessions参数 SQL> show parameter processes NAME                                 TYPE        VALUE db_writer_processes                 integer    

修改数据库和表的字符集

2修改数据库和表的字符集 alter database maildb default character set utf8;//修改数据库的字符集 alter table mailtable default character set utf8;//修改表的字符集

修改数据库用户名--CMD环境执行有效

--CMD环境执行有效 --修改数据库用户名 select * from user$ where name='aa'; update user$ set name='bb' where name = 'aa'; --commit: 用户名更改后需要清楚缓存数据字典信息. SQL> alter system checkpoint;    ----强制写入数据文件 System altered. SQL> alter system flush shared_pool;  ----清楚缓存数据字典信

mysql数据库修改数据库编码,字段编码与表编码(转)

最近看了一下KIGG框架,发现在用EF + MYSQL数据库时,数据出现了乱码,用工具(Navicat )查看一下表category的结构发现 KIGG 数据库的默认情况是用latin1编码的(DEFAULT CHARSET=latin1), 如下: CREATE TABLE `category` ( `Id` binary(16) NOT NULL, `UniqueName` varchar(64) NOT NULL, `Name` varchar(64) NOT NULL, `Created

mysql数据库导入导出及修改数据库名命令

概述 mysql 数据库导入导出,有两种方式 1)先导出SQL脚本,再导入(导入导出又分两种:1. 命令. 2. 工具.这里我们只介绍命令). 2)直接拷贝数据库文件(此方法不推荐). 一.mysql数据库导入 1.  已有数据库,可以直接用mysql命令 命令格式 mysql -u用户名 -p密码 数据库名 <  sql文件路径 示例:mysql -uroot -p12345678  test <  /root/test.sql 2.  创建新数据导入 mysql -uroot -p1234

创建和修改数据库的架构名

--创建架构名: CREATE SCHEMA [架构名] --修改数据库表架构名 ALTER SCHEMA [新架构名] TRANSFER [旧的架构名].[对象名] 创建和修改数据库的架构名,码迷,mamicode.com

SQL Server修改数据库对象所有者(Owner)浅析

在SQL Server数据库中如何修改数据库对象(表.视图.存储过程..)的所有者(Owner)呢?一般我们可以使用系统提供的系统存储过程sp_changeobjectowner来修改. 我们先看看sp_changeobjectowner在MSDN的文档介绍吧 更改当前数据库中对象的所有者.         重要提示:此存储过程只针对 Microsoft SQL Server 2000 中可用的对象进行.后续版本的 Microsoft SQL Server 将删除该功能.请避免在新的开发工作中使