MySQL 常用命令

mysql -uroot -pXXXXXXXXX     //登陆mysql

mysqladmin -u 用户名 -p 旧密码 password 新密码

创建数据库并分配用户

create database <数据库名> //创建数据库

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';

SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');

show databases //显示数据库

drop database <数据库名> //删除数据库

use <数据库名> //连接数据库

select database();  //当前选择的数据库

select version();  //显示mysql版本

select now();  //显示当前时间

SELECT DAYOFMONTH(CURRENT_DATE);  //显示日

SELECT MONTH(CURRENT_DATE);   //显示月

SELECT YEAR(CURRENT_DATE);   //年

SELECT "welecome to my blog!";   //显示字符串

show create table 表名; //查看表结构

select CONCAT(f_name, " ", l_name)  AS Name from employee_data where title = 'Marketing Executive'; ; //拼接字符串

创建表

create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);  //创建表

例如,建立一张名为MyClass的表

字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值
id int 4 primary key auto_increment
name char 20
sex int 4 0
degree double 16
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));

删除表

drop table <表名>  //删除表

例如,删除表名为 MyClass 的表

 drop table MyClass;

DROP TABLE用于取消一个或多个表。您必须有每个表的DROP权限。所有的表数据和表定义会被取消,所以使用本语句要小心!

注意:对于一个带分区的表,DROP TABLE会永久性地取消表定义,取消各分区,并取消储存在这些分区中的所有数据。DROP TABLE还会取消与被取消的表有关联的分区定义(.par)文件。

对与不存在的表,使用IF EXISTS用于防止错误发生。当使用IF EXISTS时,对于每个不存在的表,会生成一个NOTE。

RESTRICT和CASCADE可以使分区更容易。目前,RESTRICT和CASCADE不起作用。

插入数据

insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];  //插入数据

例如:往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为Tom的成绩为96.45, 编号为2 的名为Joan 的成绩为82.99, 编号为3 的名为Wang 的成绩为96.5。

insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

注意:insert into每次只能向表中插入一条记录。

查询表中的数据

select  × from < 表名 > where < 表达式 >  //查询表中的数据

删除表中的数据

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

例如:删除表 MyClass中编号为1 的记录

delete from MyClass where id=1;

修改表中的数据

update MyClass set name='Mary' where id=1; //修改表中的数据

例子1:单表的MySQL UPDATE语句:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

例子2:多表的UPDATE语句:

UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

UPDATE 语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有 的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。

增加字段

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

例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0

alter table MyClass add passtest int(4) default '0'

加索引

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

例子:

 alter table employee add index emp_name (name);

加主关键字的索引

alter table 表名 add primary key (字段名);

例子:

  alter table employee add primary key(id);

加唯一限制条件的索引

alter table 表名 add unique 索引名 (字段名);

例子:

 alter table employee add unique emp_name2(cardnumber);

删除某个索引

alter table 表名 drop index 索引名;

例子:

alter table employee drop index emp_name;

增加字段

ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及类型

ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

删除字段

MySQL ALTER TABLE table_name DROP field_name;

修改表名

rename table 原表名 to 新表名;  //修改表名

例如:在表MyClass名字更改为YouClass

 rename table MyClass to YouClass;

当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。
RENAME TABLE 在 MySQL 3.23.23 中被加入。

备份数据库

1.导出整个数据库
导出文件默认是存在mysql\bin目录下

mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql

2.导出一个表

 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
 mysqldump -u user_name -p database_name table_name > outfile_name.sql

3.导出一个数据库结构

  mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

4.带语言参数导出

  mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

例如,将aaa库备份到文件back_aaa中:

 cd /home/data/mysql
 mysqldump -u root -p --opt aaa > back_aaa
原文地址:https://www.cnblogs.com/shiqing/p/6229128.html