本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!