【MYSQL笔记】修改表
实例表:员工信息表: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笔记】修改表相关推荐
- mysql 修改表 引擎,mysql如何修改表类型(表引擎)
参考阅读:http://www.manongjc.com/article/1205.html 最近遇到一个修改 MySQL 表类型的问题,以前在 phpmyadmin 管理 mysql 数据库时,建立 ...
- MYSQL的修改表结构SQL语句
MYSQL的修改表结构SQL语句: -- 查看创表语句 SHOW CREATE TABLE t_login; -- 查看表结构 desc t_login1; -- 增加列 ALTER TABLE t_ ...
- mysql批量修改表名前缀
mysql中修改表名前缀的语句为:alert table 旧表名 rename to 新表名: mysql没有直接批量修改表名的方法,但是我们可以通过批量生成修改语句来达到批量修改表名的效果. 代码: ...
- MySQL 批量修改表名
MySQL 批量修改表名 1.执行查询SQL 2.执行修改SQL 功能: 将数据库 jeecg-boot 中的表名前缀是 ACT_ 开头的表名替换为 CAMUNDA_ACT_ 1.执行查询SQL -- ...
- mysql批量修改表名、删除表
mysql批量修改表名 第一步:得到所有需要修改的表名和对于得修改表名语句 SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', REPL ...
- MySQL学习-修改表结构
写在前面的话: 本章内容:已经假设已经安装好MySQL,且已经学会建立一张表 所学知识:如何去修改表名称,如何修改表的结构,如增加.删除.... 目录 1.首先,要创建一张表 1.1 bit数据类型 ...
- mysql怎么修改表的列名字_怎么修改mysql的表名和列名
怎么修改mysql的表名和列名 在mysql中,可以通过"ALTER TABLE 旧表名 RENAME 新表名;"语句来修改表名,通过"ALTER TABLE 表名 CH ...
- mysql中修改表结构语法_MySQL表结构修改详解
MySQL修改表的语法 ========================= 增加列[add 列名] ========================= ①alter table 表名 add 列名 列 ...
- mysql在线修改表结构大数据表的风险与解决办法归纳
整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需 ...
- mysql中修改表的默认编码和表中字段的编码
ALTER TABLE `table` DEFAULT CHARACTER SET utf8; 但是虽然修改了表的编码格式,但是字段的编码格式并没有修改过来,没有什么卵用 又发现一条语句,作用是修改字 ...
最新文章
- 凤凰网制作的 “中国挺住” 桌面与MSN,QQ头像下载
- stateful function用法记录(还没弄完)
- html-iframe_HTML iframe
- Linux Shell编程之脚本执行方式
- 宝塔面板的ftp无法使用解决
- javascript DOM事件总结
- 【转】android题目
- Paip.最佳实践-- Buildin variale 内建变量 ,魔术变量,预定义变量,系统常量,系统变量 1
- 渗透测试工程师的Linux学习之路
- 信用卡分销系统如何获客
- 谷粒学苑上传视频踩坑
- 线性不可分转可分----低维空间转高维空间
- 白浩然计算机学院,信息数理学院2015年上半年团员推优汇总表.doc-附件:.doc
- python类实例化 输入参数名字 下划线_Python 用下划线作为变量前缀和后缀指定特殊变量...
- node-telegram-bot-api 基于Nodejs的TG机器人
- Python Flask Web教程024:实战:博客登录和注册页面实现代码
- 【Python】为图片加上数字上标
- 企业数字化建设的三个典型误区
- vim编辑完之后无法切换到命令行模式
- 离线预渲染OPR:0成本接入 媲美SSR效果
热门文章
- Java面向对象 网络编程 上
- 电子商务平台的搭建技巧与成功案例资料集
- 马化腾:卓越领导者的五种习惯(作出表率尤为重要)
- Bailian2695 最大商【最值】
- POJ3359 UVA1209 LA3173 Wordfish【Ad Hoc】
- MySQL 基础 —— 数据类型、各种变量
- 摄动(Perturbation)
- Python debug —— invalid literal for int() with base 10
- VS 2013 统一修改所有工程的目录配置(以 boost、opencv3 的安装为例)
- vsan Linux 网络磁盘,理解vSAN中的磁盘空间占用