您的位置:首页 > 数据库 > MySQL

mysql常用命令(自己用的比较多的)

2011-03-17 17:48 387 查看
1、导出表结构、不导出数据

mysqldump -d --default-character-set=latin1 -h Host -P Port -u UserName -p PassWord DBName (tablename)> databaseStr.txt

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

2、连接数据库

mysql -h Host -u UserName -p PassWord -P Port DBName

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

3、导出数据库记录到文件

mysql -h Host -PPort -uUserName -pPassWord DBName -e "select msg,ip,time from wall_09 where owner_id='13333333365' \G" >> wall_1717297865.txt

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

4、基本操作命令

mysql -hhost -uuser -ppassword -Pport dbname
连接数据库

show databases;
显示数据库

   create database name;
创建数据库

   use databasename;
选择数据库

   drop database name
直接删除数据库,不提醒

   show tables;
显示表

   describe(desc) tablename;
显示具体的表结构

   mysqladmin drop databasename
删除数据库前,有提示。

   select version(),current_date;
显示当前mysql版本和当前日期

  

Select[ALL|DISTINCT|DISTINCTROW|TOP]

  {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}

   FROM tableexpression[,…][IN externaldatabase]

   [Where…]

   [GROUP BY…]

   [HAVING…]

   [ORDER BY…]

   [WITH OWNERACCESS OPTION] distinct去除重复字段

delete from 表名 where 表达式;
删除表中数据

update 表名 set 字段=新值,… where 条件;
修改表中数据

   alter table 表名 add字段 类型 其他;
在表中增加字段

   rename table 原表名 to 新表名;
更改表名

delete from 表名;
将表中记录清空

   show create table table_name
显示当前表的建表语句

mysqladmin -u用户名 -p旧密码 password 新密码
修改数据库密码

show processlist;
显示mysql进程

\q 、quit
退出  

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

5、示例

mysqldump

备份数据库

   shell> mysqldump -h host -u root -p --default-character-set=latin1 dbname >dbname_backup.sql

  

导出一个数据库结构

   shell> mysqladmin -u root -p -d -add-drop-table databasename > a.sql

   注:-d 表结构 -add-drop-table 在每个create语句之前增加一个drop table

   如果只想获得插入数据的sql命令,而不需要建表命令,则命令如下:

   shell> mysqladmin -u root -p -t databasename > a.sql

  那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?

   mysqldump -T ./ dbname tablename ???

   其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定tablename表,则将卸出整个数
据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。

恢复数据库

A:常用source 命令

   进入mysql数据库控制台

   mysql>use 数据库

   然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

   mysql>source db.sql

   B:使用mysqldump命令

   shell> mysqladmin -h myhost -u root -p create dbname

   shell> mysqldump -h host -u root -p dbname < dbname_backup.sql

   C:使用mysql命令

   mysql -u username -p -D dbname < filename.sql

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

修改mysql中root的密码:

   shell>mysql -h localhost -u root -p //登录

   mysql> update user set password=password("xueok654123") where user='root';

   mysql> flush privileges //刷新数据库

  mysql>use dbname; 打开数据库:

   mysql>show databases; 显示所有数据库

   mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后

   mysql>describe user; 显示表mysql数据库中user表的列信息;

mysql>insert into tablename (字段,字段,字段) values(值,值,值),(值,值,值);

mysql>select <字段1,字段2,...> from < 表名 > where < 表达式 >;

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

 

  为用户授权grant

  创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个

  mysql> grant all privileges on *.* to user@localhost identified by ’something’ with

  增加新用户

  格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

  GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;

  GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;

  删除授权:

  mysql> revoke all privileges on *.* from root@”%”;

  mysql> delete from user where user=”root” and host=”%”;

  mysql> flush privileges;

 

==============================================================================================================

mysql 新增字段 添加字段 删除字段 修改字段 级联删除 级联更新 等

//主键

alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);

//删除列

alter table t2 drop column c;

//重命名列

alter table t1 change a b integer;

//改变列的类型

alter table t1 change b b bigint not null;

alter table infos change list list tinyint not null default '0';

//重命名表

alter table t1 rename t2;

//加索引

mysql> alter table tablename change depno depno int(5) not null;

mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);

mysql> alter table tablename add index emp_name (name);

//加主关键字的索引

mysql> alter table tablename add primary key(id);

//加唯一限制条件的索引

mysql> alter table tablename add unique emp_name2(cardnumber);

//删除某个索引

mysql>alter table tablename drop index emp_name;

//增加字段:

mysql> ALTER TABLE table_name ADD field_name field_type;

//修改原字段名称及类型:

mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

//删除字段:

mysql> ALTER TABLE table_name DROP field_name;

//级联更新 和 删除(红色部分,不区分大小写 )

DROP TABLE IF EXISTS `mail_model`;

create table mail_model(

id varchar(50) primary key not null ,

mail_filename varchar(200),

content varchar(2000)

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `mail_model_extend`;

create table mail_model_extend(

id int(6) auto_increment not null primary key,

rid varchar(50) not null,

content varchar(2000),

INDEX (RID),

FOREIGN KEY (RID) REFERENCES mail_model(ID) ON DELETE CASCADE ON UPDATE CASCADE

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: