mysql 常用命令
来源:互联网 发布:厦门海关网络自主申报 编辑:程序博客网 时间:2024/06/08 02:12
1、mysql的连接:
格式:mysql -h 主机地址 -uroot -p 密码 本地主机:mysql -uroot -p回车,输入密码
2、修改密码:
格式:mysqladmin -u用户名 -p旧密码 password新密码
给root添加个密码:mysqladmin -uroot password 123456
修改root密码为 111111 :mysqladmin -uroot -p123456 password111111
3、增加用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码";
增加一个test用户,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限:
grant select,insert,update,delete on *.* to [email=test@"%]test@"%[/email] identified by "abc"
这样就添加了一个对所有数据库都有操作权限,并且可以在任何主机登录的mysql用户,但是这样做是非常危险的,一般我们会把mysql用户的权限限制在某个数据库内,并且只运行通过本地(localhost)登录
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by "abc";
4、对数据库进行操作:
创建数据库:create database <数据库名>
创建数据库 mydb1,并为数据库分配数据库用户 test1:
create database mydb1;
grant select,insert,update,delete,create,drop,alter on mydb1.* to test1@localhost identified by "abc";
显示数据库:show databases;
删除数据库:drop database <数据库名>;
选择要使用的数据库:use <数据库名>;
显示数据库相关信息:
select database(); ----------------------显示当前正在使用的数据库名称
select version(); ------------------------显示当前mysql的版本
select now(); ----------------------------显示当前时间
select concat("aaaa","bbbb"); --------------------------------字符串连接 输出 aaaabbbb
5、对数据库表的操作:
创建数据库表:命令:create table <表名>(<字段1> <类型1>[<字段n> <类型n>]);
创建一个 myclass 的表:
create table myclass(
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
`sex` int(4) NOT NULL DEFAULT '0',
`degree` double(16,2) DEFAULT NULL,
PRIMARY KEY('id')
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
获取表的结构:命令:desc 表名 或者 show columns from 表名
使用MySQL数据库desc 表名时,我们看到Key那一栏,可能会有4种值,即' ','PRI','UNI','MUL'。
1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列;
2. 如果Key是PRI, 那么该列是主键的组成部分;
3. 如果Key是UNI, 那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL);
4. 如果Key是MUL, 那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL。
如果对于一个列的定义,同时满足上述4种情况的多种,比如一个列既是PRI,又是UNI,那么"desc 表名"的时候,显示的Key值按照优先级来显示 PRI->UNI->MUL。那么此时,显示PRI。
一个唯一性索引列可以显示为PRI,并且该列不能含有空值,同时该表没有主键。
一个唯一性索引列可以显示为MUL, 如果多列构成了一个唯一性复合索引,因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值,只要ID+NAME是唯一的即可。
删除表:命令:drop table <表名称>
插入表:命令: insert into <表名> ([字段1],[字段n])values ("<值1>","<值n>"); 注意:insert into每次只能向表中插入一条记录。
查询表:select [字段1],[字段2] from <表名> where <条件> limit 5 | 0,5
1)、查询所有行
命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
例如:查看表 MyClass 中所有数据
mysql> select * from MyClass;
2)、查询前几行数据
例如:查看表 MyClass 中前2行数据
mysql> select * from MyClass order by id limit 0,2;
select一般配合where使用,以查询更精确更复杂的数据。
删除表中数据:命令格式:delett from <表名> where <条件表达式>
修改表中数据:命令格式:update <表名> set 字段=“新值” where <条件表达式>; update MyClass set name='Mary' where id=1;
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。
对字段添加索引:
添加index索引:alter table 表名 add index 索引名 (字段名1[,字段名2 …]); alter table myclass add index emp_name(“name”);
添加unique索引:alter table 表名 add unique 索引名(字段名); alter table myclass add unique emp_name2(”name“);
添加主键索引:alter table 表名 add primary key ("字段名"); alter table myclass add primary key ("id");
删除索引: alter table 表名 drop index 索引名; alter table myclass drop index emp_name2;
增加字段:alter table 表名 add field_name field_type;
修改字段名称及类型:alter table 表名 change old_field_name new_field_name field_type;
删除字段: alter table 表名 drop field_name;
对数据表进行重命名:命令格式:rename table 原表名 to 新表名;
MyClass名字更改为YouClass:rename table MyClass to YouClass;
当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。
6、数据库备份:
导出整个数据库(导出的数据库默认存在mysql/bin目录下):
mysqldump -u 用户名 -p 密码 数据库名 > 导出的文件名; mysqldump -u root -p 123456 database_name > outfile_name.sql;
导出一个表:
mysqldump -u 用户名 -p 密码 数据库名 表名 > 导出的文件名; mysqldump -u root -p 123456 database_name table_name > outfile_name.sql
将数据库 /home/data/mysql 目录下的 数据库 aaa 备份到 /home/data/mysqlbak 目录下,文件名为 aaa_bak.sql
[root@test1 root]# cd /home/data/mysql
[root@test1 root]# mysqldump -u root -p 123456 aaa > /home/data/mysqlbak/aaa_bak.sql;
mysql 数据库文件恢复:
[root@test1 root]# cd /home/data/mysql
[root@test1 root]#mysql -u root -p aaa< /home/data/mysqlbak/aaa_bak.sql
Enter password:在这里输入密码
- MySQL常用命令
- MySql常用命令
- MySQL常用命令
- mysql常用命令
- mysql常用命令
- mysql常用命令
- Mysql常用命令
- MySQL常用命令
- mysql 常用命令
- MySQL常用命令
- mysql常用命令
- MySql常用命令
- MySQL常用命令
- mysql 常用命令
- mysql常用命令
- mysql常用命令
- mysql 常用命令
- MySQL常用命令
- hdu1213-How Many Tables
- 线程池原理和实现
- [jQueryUI]
- apt-get
- tesseract训练字库
- mysql 常用命令
- 完全的自定义组件详细
- 动态规划专项intermediate:UVa 11600
- POJ 1976 A Mini Locomotive
- top和ps命令cpu占用的区别
- POJ 1698 最大流
- Part3:CTetrad_Z 、CTetradFactory及CComboControl
- 如果让我重做一次研究生--王泛森院士
- HDOJ 1045 Fire Net