[size=medium]
还真需要有个mysql常用命令参考在手边,脑袋太小,信息太多
[b]1.建立数据库/删除数据库[/b]
mysql> create database db_name default charset utf8;
mysql> drop database db_name;
[b]2.选择数据库/utf8编码[/b]
对于数据相关的操作,需要先选择数据库
mysql> use db_name
如果相关操作涉及中文,先执行
mysql> set names utf8;
[b]3.建立表/删除表[/b]
mysql> create table tbl_name(
#表定义,举一些比较常见的字段定义
id int auto_increment,
#自增值,一般从1开始,此时id必须是键值(key),而且只有一个auto_increment字段
name varchar(32) not null default '' comment 'user name',
#如果insert时有name这个字段,那么值不能为null,如果没有的话则为空''
lastLog datetime not null,
#这个字段在insert时如果不存在,它的值为0000-00-00 00:00:00
#这种值对应用程序是有害的.如果去掉not null,它的值则为null
nowtime timestamp,
#如果发生insert,update操作,这个字段的值会变为当前的时间值.
primary key(id),#定义主键
key(name), #定义键值(会有相应的索引)
unique(name) #定义唯一值
)Engine=InnoDB default charset=utf8 comment='sample';
#engine是定义表引擎,InnoDB支持事务,myisam不支持事务,但比较快
#charset定义表的默认编码,如果没指定,使用数据库的编码
删除表就容易多了
mysql> drop table tbl_name;
[b]4.修改表结构[/b]
(1).增加字段
mysql> alter table tbl_name add [column] col_name col_definition [first|after o_col]
(2).修改字段定义
mysql> alter table tbl_name modify [column] col_name col_definition [first|after o_col]
(3).修改字段定义包括字段名字
mysql> alter table tbl_name change [column] old_col_name new_col_name col_definition [first|after o_col]
(4).修改表名
mysql> alter table tbl_name rename [to] new_tbl_name
(5).删除字段
mysql> alter table tbl_name drop [column] col_name
(6).删除主键
mysql> alter table tbl_name drop primary key
[b]5.复制表结构和数据[/b]
(1).复制表结构和数据到新表
mysql> create table new_tbl_name select * from old_tbl_name;
(2).只复制表结构不要数据
mysql> create table new_tbl_name select * from old_tbl_name where 1=2;
#是的,只是让它不成立
(3).复制旧表数据到新表(假设表结构一致)
mysql> insert into new_tbl_name select * from old_tbl_name;
(4).复制部分字段值
mysql> insert into new_tbl_name(col1,col2) select col1,col2 from old_tbl_name;
[b]6.damn忘记root密码[/b]
1).kill 掉当前运行的mysqld进程
2).重新启动 /path/to/mysqld --skip-grant-table
3).以root用户空密码登录
4).抓紧时间修改密码
mysql>update mysql.user set password=PASSWORD('newpasswd') where user='root';
mysql>flush privileges;
5).再kill掉mysqld进程, 使用正常方式重新启动mysqld
6).done
[/size]
还真需要有个mysql常用命令参考在手边,脑袋太小,信息太多
[b]1.建立数据库/删除数据库[/b]
mysql> create database db_name default charset utf8;
mysql> drop database db_name;
[b]2.选择数据库/utf8编码[/b]
对于数据相关的操作,需要先选择数据库
mysql> use db_name
如果相关操作涉及中文,先执行
mysql> set names utf8;
[b]3.建立表/删除表[/b]
mysql> create table tbl_name(
#表定义,举一些比较常见的字段定义
id int auto_increment,
#自增值,一般从1开始,此时id必须是键值(key),而且只有一个auto_increment字段
name varchar(32) not null default '' comment 'user name',
#如果insert时有name这个字段,那么值不能为null,如果没有的话则为空''
lastLog datetime not null,
#这个字段在insert时如果不存在,它的值为0000-00-00 00:00:00
#这种值对应用程序是有害的.如果去掉not null,它的值则为null
nowtime timestamp,
#如果发生insert,update操作,这个字段的值会变为当前的时间值.
primary key(id),#定义主键
key(name), #定义键值(会有相应的索引)
unique(name) #定义唯一值
)Engine=InnoDB default charset=utf8 comment='sample';
#engine是定义表引擎,InnoDB支持事务,myisam不支持事务,但比较快
#charset定义表的默认编码,如果没指定,使用数据库的编码
删除表就容易多了
mysql> drop table tbl_name;
[b]4.修改表结构[/b]
(1).增加字段
mysql> alter table tbl_name add [column] col_name col_definition [first|after o_col]
(2).修改字段定义
mysql> alter table tbl_name modify [column] col_name col_definition [first|after o_col]
(3).修改字段定义包括字段名字
mysql> alter table tbl_name change [column] old_col_name new_col_name col_definition [first|after o_col]
(4).修改表名
mysql> alter table tbl_name rename [to] new_tbl_name
(5).删除字段
mysql> alter table tbl_name drop [column] col_name
(6).删除主键
mysql> alter table tbl_name drop primary key
[b]5.复制表结构和数据[/b]
(1).复制表结构和数据到新表
mysql> create table new_tbl_name select * from old_tbl_name;
(2).只复制表结构不要数据
mysql> create table new_tbl_name select * from old_tbl_name where 1=2;
#是的,只是让它不成立
(3).复制旧表数据到新表(假设表结构一致)
mysql> insert into new_tbl_name select * from old_tbl_name;
(4).复制部分字段值
mysql> insert into new_tbl_name(col1,col2) select col1,col2 from old_tbl_name;
[b]6.damn忘记root密码[/b]
1).kill 掉当前运行的mysqld进程
2).重新启动 /path/to/mysqld --skip-grant-table
3).以root用户空密码登录
4).抓紧时间修改密码
mysql>update mysql.user set password=PASSWORD('newpasswd') where user='root';
mysql>flush privileges;
5).再kill掉mysqld进程, 使用正常方式重新启动mysqld
6).done
[/size]