mysql建表实例
第一步创建一个表格,要求有primary key,有unique key,有index key。
1.创建表格
create table alldata(
jobnum int(10) unsigned not null auto_increment, //jobname定义为自动增值的int类型。10表示最大显示宽度。
date int(50) unsigned not null, //date定义为无符号的int类型。
username varchar(50) not null, //username定义为varchar类型(下面类似)
jobname varchar(50) not null,
scafile varchar(50) not null,
wavelength int(10) unsigned not null,
overallcc int(10) unsigned not null,
mainchaincc int(10) unsigned not null,
sig2noi int(10) unsigned not null,
primary key (jobnum), //(将jobnum定义为主键,用来区分每条记录)
unique key (jobname), //(将jobname定义为唯一建,避免记录出现重复)
index ind(overallcc,mainchaincc,sig2noi) ) //(定义普通键ind,对应的列为overallcc,mainchaincc,sig2noi,用于快速索引)
2.显示已创建表格
desc alldata;
select * from alldata;
第二步:对表格中的不合理定义进行修改
1:修改列类别
alter table alldata modify date datetime not null;
alter table alldata modify overallcc float unsigned not null;
alter table alldata modify mainchaincc float unsigned not null;
alter table alldata modify sig2noi float(10) unsigned not null;
2:修改索引类别
(1)删除错误的索引类别
alter table alldata drop index ind
(2)增加正确的索引类别
alter table alldata add index overallcc(overallcc);
alter table alldata add index mainchaincc(mainchaincc);
alter table alldata add index sig2noi(sig2noi);
目的是为不同的列设置不同的索引名称。但事实上,可以为多个列设置同一个索引名称:
alter table alldata add index index(overallcc,mainchaincc,sig2noi);
或
create index index on alldata(overallcc,mainchaincc,sig2noi)
3:显示修改后的索引:
show index from alldata;
第三步;利用bash脚本将数据写入表格
#!/bin/bash
date=20110531093054
username="user"
jobname="test1-mjgts"
scafile="Liu-PJa-short-123.sca"
wavelength="2.0"
overallcc="0.4469"
mainchaincc="0.6134"
sig2noi="2.29615"
mysql -uroot -pxxxxxxx <
use ins;
insert into alldata(date,username,jobname,scafile,wavelength,overallcc,mainchaincc,sig2noi) values("$date","$username","$jobname","$scafile","$wavelength","$overallcc","$mainchaincc","$sig2noi");
eof
第四步:删除无用数据 单列删除:delete from alldata where jobnum=4; 全部删除,计数清零:truncate alldata