实例表:员工信息表:id(varchar(10)),name(varchar(100)),age( int )

修改列的数据类型:

alter table 表名 modify 列名 数据类型;

例:列name修改字符数不超过100个

alter table tb modify name varchar(100);

注:储存了开头不是0且仅由数值字符组成的数据的列能按照int类型,varchar->int进行修改。

但是如果列中存在数据,原则上就不应该再修改列的数据类型了。

添加列:

alter table 表名 add 列名 数据类型;

例:添加能够输入员工出生日期的datetime类型的列birth

alter table tb add birth datetime;

把列添加到最前面:

使用alter table add新建的列会添加到表的最后面。如果在该命令的基础上加上first,新建的列就会添加到最前面。

例:将datetime类型的列birth添加到tb的最前面

alter table tb add birth datetime first;

把列添加到任意位置:

使用after能够把列添加到指定的位置。

alter table tb add birth datetime after id;

修改列的顺序:

使用Modify也可以修改列的位置

例:把最后面的birth换到最前面的位置

alter table tb modify borth datetome first;

 修改列名同时修改列的据类型:

alter table 表名 change 修改前的列名 修改后的列名 修改后的数据类型;

例:把表tb的birth修改为date类型,同时把列名修改为birthday,修改后显示列的结构。

alter table tb change birth birthday date;
desc tb;

删除列:

alter table 表名 drop 列名;

例:删除表tb的列birthday

alter table tb drop birthday;

不仅仅是列,对数据库和表执行操作时也会使用drop命令。

删除列的情况下,该列保存的数据也会被删除。这项操作不会影响到其他列。

设置主键:

唯一:创建了数据库后,就需要想办法从大量的数据中只确定一个符合条件的记录。例如让每个员工都有一个独一无二的ID。这种只会确定一个的独一无二的状态,称为唯一。

主键:在多条记录中用于确定一条记录时使用的标识符。

为了可以严密地确定某条记录,主键需要具备(1)没有重复的值(2)不允许输入空值(null)

在创建表的时候设置主键:

create table 表名(列名 数据类型 primary key ...)

例:创建表tb1,由作为主键的列为int类型,列b为varchar(10)类型

create table tb1(a int primary key,b varchar(10));

主键的列中不允许插入重复的值和空值null

唯一键:可以设置“不允许重复但可以为空”的唯一键

create table tb(a int unique,b varchar(10));

使列具有自动连续编号功能:

对于名单或者列表的序号等,我们每次都要输入数字作为列的数据,这不仅麻烦,还容易出错。

所以,如果能够自动输入1,2,3,4这样的连续序号,就会方便许多。

具有自动连续编号功能的列的定义:

定义列的时候,进行以下设置:

(1)数据类型为int:(tinyint或 smallint),既然是连续编号,数据类型自然是整数。

(2)加上auto_increment:用于声明连续编号。

(3)设置primary key使列具有唯一性:具有自动连续编号功能的列具有唯一性,是不重复不空的,这样的 列非常时候作为主键使用。

create table tb (a int auto_increment primary key, b varchar(10));

使用自动连续编号功能插入记录:

因为自动连续编号的列会自动输入编号,使用只要在其他的列输入数据。

或者采用输入0或者null

insert into tb (b) values('a'),values('b'),values('c');

设置连续编号的初始值:

拥有自动连续编号功能的列还可以设置任意的值。

insert into tb values(100,'aa');

列a中会输入值100,然后从101开始分配连续的编号,即从已经输入的最大值+1开始分配值。

由于设置了primary key属性,所以不能输入重复的值。

连续编号的初始化:

如果把表的所有记录都删除,然后重新输入记录,编号不会从1开始分配,而是从既有最大值+1的值开始分配。

如果想把所有的记录都删掉,并且让编号从1开始连续输入(初始化)

alter table 表名 auto_increment=1;

当表中存在数据时,如果设置的编号比已经存在的值大,也可以通过上面的语句重新设置编号的初始值。

设置列 的默认值:

create table 表名(列名 数据类型 default 默认值...);

例:添加 如果不在姓名列中输入任何值,就会自动输入‘未输入姓名’的功能

alter table tb modify name varchar(10) default '未输入姓名';

创建索引:

在表tb的列id上创建名为my_id的索引:

create index my_id on tb(id);

 显示索引:

show index from 表名;

删除索引:

drop index 索引名 on 表名;

【MYSQL笔记】修改表相关推荐

  1. mysql 修改表 引擎,mysql如何修改表类型(表引擎)

    参考阅读:http://www.manongjc.com/article/1205.html 最近遇到一个修改 MySQL 表类型的问题,以前在 phpmyadmin 管理 mysql 数据库时,建立 ...

  2. MYSQL的修改表结构SQL语句

    MYSQL的修改表结构SQL语句: -- 查看创表语句 SHOW CREATE TABLE t_login; -- 查看表结构 desc t_login1; -- 增加列 ALTER TABLE t_ ...

  3. mysql批量修改表名前缀

    mysql中修改表名前缀的语句为:alert table 旧表名 rename to 新表名: mysql没有直接批量修改表名的方法,但是我们可以通过批量生成修改语句来达到批量修改表名的效果. 代码: ...

  4. MySQL 批量修改表名

    MySQL 批量修改表名 1.执行查询SQL 2.执行修改SQL 功能: 将数据库 jeecg-boot 中的表名前缀是 ACT_ 开头的表名替换为 CAMUNDA_ACT_ 1.执行查询SQL -- ...

  5. mysql批量修改表名、删除表

    mysql批量修改表名 第一步:得到所有需要修改的表名和对于得修改表名语句 SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', REPL ...

  6. MySQL学习-修改表结构

    写在前面的话: 本章内容:已经假设已经安装好MySQL,且已经学会建立一张表 所学知识:如何去修改表名称,如何修改表的结构,如增加.删除.... 目录 1.首先,要创建一张表 1.1 bit数据类型 ...

  7. mysql怎么修改表的列名字_怎么修改mysql的表名和列名

    怎么修改mysql的表名和列名 在mysql中,可以通过"ALTER TABLE 旧表名 RENAME 新表名;"语句来修改表名,通过"ALTER TABLE 表名 CH ...

  8. mysql中修改表结构语法_MySQL表结构修改详解

    MySQL修改表的语法 ========================= 增加列[add 列名] ========================= ①alter table 表名 add 列名 列 ...

  9. mysql在线修改表结构大数据表的风险与解决办法归纳

    整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需 ...

  10. mysql中修改表的默认编码和表中字段的编码

    ALTER TABLE `table` DEFAULT CHARACTER SET utf8; 但是虽然修改了表的编码格式,但是字段的编码格式并没有修改过来,没有什么卵用 又发现一条语句,作用是修改字 ...

最新文章

  1. 凤凰网制作的 “中国挺住” 桌面与MSN,QQ头像下载
  2. stateful function用法记录(还没弄完)
  3. html-iframe_HTML iframe
  4. Linux Shell编程之脚本执行方式
  5. 宝塔面板的ftp无法使用解决
  6. javascript DOM事件总结
  7. 【转】android题目
  8. Paip.最佳实践-- Buildin variale 内建变量 ,魔术变量,预定义变量,系统常量,系统变量 1
  9. 渗透测试工程师的Linux学习之路
  10. 信用卡分销系统如何获客
  11. 谷粒学苑上传视频踩坑
  12. 线性不可分转可分----低维空间转高维空间
  13. 白浩然计算机学院,信息数理学院2015年上半年团员推优汇总表.doc-附件:.doc
  14. python类实例化 输入参数名字 下划线_Python 用下划线作为变量前缀和后缀指定特殊变量...
  15. node-telegram-bot-api 基于Nodejs的TG机器人
  16. Python Flask Web教程024:实战:博客登录和注册页面实现代码
  17. 【Python】为图片加上数字上标
  18. 企业数字化建设的三个典型误区
  19. vim编辑完之后无法切换到命令行模式
  20. 离线预渲染OPR:0成本接入 媲美SSR效果

热门文章

  1. Java面向对象 网络编程 上
  2. 电子商务平台的搭建技巧与成功案例资料集
  3. 马化腾:卓越领导者的五种习惯(作出表率尤为重要)
  4. Bailian2695 最大商【最值】
  5. POJ3359 UVA1209 LA3173 Wordfish【Ad Hoc】
  6. MySQL 基础 —— 数据类型、各种变量
  7. 摄动(Perturbation)
  8. Python debug —— invalid literal for int() with base 10
  9. VS 2013 统一修改所有工程的目录配置(以 boost、opencv3 的安装为例)
  10. vsan Linux 网络磁盘,理解vSAN中的磁盘空间占用