mysql 添加列 修改列 删除列,MySQL 添加列,修改列,删除列
发布日期:2021-06-24 01:39:00 浏览次数:6 分类:技术文章

本文共 3032 字,大约阅读时间需要 10 分钟。

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。

查看列:desc 表名;

修改表名:alter table 旧表名 rename to

新表名;

添加列:alter table 表名 add column 列名

varchar(30);

---------------------------------------------------

如果想新建一个列,且在表的最前面,用first

//格式alter table 表名 add 列名 first;

mysql> alter table m1 add pid int not null default 0

first;

发现gender性别列忘加了.想加上,而且要加在username后

//格式alter table 表名 add 列名 after username

mysql> alter table m1 add gender char(1) not null

default '' after username;

-------------------------------------------------------

删除列:alter table 表名 drop column 列名;

修改列名MySQL: alter table

表名 change 旧列名 新列名

int;

//修改列名SQLServer:exec

sp_rename't_student.name','nn','column';

//修改列名Oracle:lter table bbb rename column nnnnn to hh

int;

修改列属性:alter table 表名 modify name

varchar(22);

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。

-------------------------------------------------------------

修改表之增加主键alter table tbName add primary

key(主键所在列名);

例:alter table goods add primary key(id)

该例是把主键建立在id列上

修改表之删除主键

alter table tbName drop primary key;

-------------------------------------------------------------

zerofill zero是零,fill是填充,代表0代表,M必须和zerofill配合才有意义.

1,给学员增加一个学号,学号不能为负,

2,学号一般位数相同,即使不同,00013,01238

即不够倍数,用0填充.

mysql> alter table class add snum

smallint(5) zerofill not null default 0;

mysql> select * from class;

+-------------+-----+-------+------+-------+

|

sname | age | score | age1 | snum |

+-------------+-----+-------+------+-------+

|

刘备 | 28

| 0 | 0 | 00000

|

|

小孩 | 0

| 0 | 0 | 00000

|

|

树妖 | 127

| 0 | 0 | 00000

|

|

张飞 | 0

| 0 | 0 | 00000

|

|

蛇妖 | 0

| 255

| 0 | 00000

|

|

M的意思 | 0

| 0 | 3 | 00000

|

|

再看M的意思 | 0

| 0 | 99 | 00000 |

+-------------+-----+-------+------+-------+

mysql> insert into class (sname,snum) values

('吕布',1);

mysql> insert into class (sname,snum) values

('廖化',15);

mysql> select * from class;

+-------------+-----+

|

sname |

snum|

+-------------+-----+-

|

吕布 |

00001 |

|

廖化 |

00015 |

+-------------+-----+

snum统一补0,而且补到5位.为什么补到5位,因为M为5

总结: M表示补0宽度,和zerofill配合使用才有意义.

观察snum的类型,可知zerofill则同时必是unsigned类型.

---------------------------------------------------

列类型学习

mysql三大列类型

数值型

整型

Tinyint/ smallint/ mediumint/int/ bigint

小数型

Float(M,D),decimal(M,D) //D是小数点后面的位数,M是小数总位数。

//float有时会损失精度.如果像账户这样的敏感字段,建议用decimal

字符串型

Char(M)

//定长,不够M个长度,用空格在尾部补够N个长度,浪费了尾部.速度上:定长速度快点。

Varchar(M) //变长类型,不用空格补齐,但列内容前,有1-2个字节来标志该列的内容长度

char(M),varchar(M)中的M都是限定的字符数,不是字节数.

Text文本类型 //文本类型,一般用来储存文章内容,新闻内容等.搜索速度稍慢

声明text列时,不必给默认值.

日期时间类型

Date日期

//1998-12-31

范围: 1000/01/01 ,9999/12/31

Time时间 //13:56:23 范围: -838:59:59 -->838:59:59

Datetime日期时间类型 //1998-12-31 13:56:23 范围: 1000/01//01 00:00:00 ---> 9999:12:31 23:59:59

Year年类型 //Year 年(1字节) 95/1995, [1901-2155],在insert时,可以简写年的后2位,但是不推荐这样.

即:填2位,表示1970 - 2069

时间戳:

是1970-01-01 00:00:00到当前的秒数.

一般存注册时间,商品发布时间等,并不是用datetime存储,而是用时间戳.

因为datetime虽然直观,但计算不便

concat 连接字符串用的

tee '路径/文件名' //创建一个文件存放操作记录

把一张表的内容导入到另一张表里面

#把ecshop中的商品表数据批量导入测试goods表

insert into test.goods

select goods_id,cat_id,goods_sn,goods_name,click_count,goods_number,market_price,shop_price,add_time,is_best,is_new,is_hot

from gyshop.goods;

转载地址:https://blog.csdn.net/weixin_29306261/article/details/115885941 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Mysql数据库测试面试,测试人员数据库面试:必问的 MySQL 查询语句简明总结
下一篇:fis3 php cgi,fis3-smarty 安装使用详解

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月15日 07时20分26秒