Home > Database > Mysql Tutorial > body text

MySQL的常用命令集锦_MySQL

WBOY
Release: 2016-05-30 17:10:33
Original
931 people have browsed it

下面是我们经常会用到且非常有用的MySQL命令。下面你看到#表示在Unix命令行下执行命令,看到mysql>表示当前已经登录MySQL服务器,是在mysql客户端执行mysql命令。
登录MySQL,如果连接远程数据库,需要用-h指定hostname。

登录MySQL,如果连接远程数据库,需要用-h指定hostname。

# [mysql dir]/bin/mysql -h hostname -u root -p
Copy after login

创建一个数据库。

mysql> create database [databasename];
Copy after login

列出所有数据库。

mysql> show databases;
Copy after login

切换到一个数据库。

mysql> use [db name];
Copy after login

显示一个数据库的所有表。

mysql> show tables;
Copy after login

查看数据表的字段格式。

mysql> describe [table name];
Copy after login

删除一个数据库。

mysql> drop database [database name];
Copy after login

删除一个数据表。

mysql> drop table [table name];
Copy after login

显示一个数据表的所有数据。

mysql> SELECT * FROM [table name];
Copy after login

返回指定数据表的各列信息。

mysql> show columns from [table name];
Copy after login

使用值“whatever”过滤显示选定的某些行。

mysql> SELECT * FROM [table name] WHERE [field name] = "whatever";
Copy after login

显示所有包含name为”Bob”和phone number为“3444444”的记录。

mysql> SELECT * FROM [table name] WHERE name = "Bob" AND phone_number = '3444444';
Copy after login

显示所有不包含name为”Bob”和phone number为“3444444”的记录,并以phone_number字段排序。

mysql> SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;
Copy after login

显示所有的name以字母“bob”开头和phone number为“3444444”的记录。

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';
Copy after login

显示name以字母“bob”开头和phone number为“3444444”的第1至第5条记录。

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444' limit 1,5;
Copy after login

使用正则表达式查找记录。使用“正则表达式二进制”强制区分大小写。此命令查找以a开头的任何记录。

mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";
Copy after login

返回唯一不同的记录。

mysql> SELECT DISTINCT [column name] FROM [table name];
Copy after login

以升序或降序显示选定的记录。

mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
Copy after login

返回行数。

mysql> SELECT COUNT(*) FROM [table name];
Copy after login

统计指定列值的总和。

mysql> SELECT SUM(*) FROM [table name];
Copy after login

联结表。

mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;
Copy after login

新建一个用户。以root登录。切换到mysql数据库,创建用户,刷新权限。

# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
mysql> flush privileges;
Copy after login

从unix命令行更改用户密码。

# [mysql dir]/bin/mysqladmin -u username -h hostname.blah.org -p password 'new-password'

Copy after login

从mysql命令行更改用户密码。以root登录,设置密码,更新权限。

# /etc/init.d/mysql stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
Copy after login

mysql> use mysql;
mysql> update user set password=PASSWORD("newrootpassword") where User='root';
mysql> flush privileges;
mysql> quit
Copy after login

# /etc/init.d/mysql stop
# /etc/init.d/mysql start
Copy after login

root密码为空时,设置root密码。

# mysqladmin -u root password newpassword
Copy after login

更新root密码。

# mysqladmin -u root -p oldpassword newpassword
Copy after login

允许用户“bob”从localhost以密码“passwd”连接服务器。以root登录,切换mysql数据库。设置权限,更新权限。

# mysql -u root -p
Copy after login
Copy after login

mysql> use mysql;
mysql> grant usage on *.* to bob@localhost identified by 'passwd';
mysql> flush privileges;
Copy after login

如果不想手工输入密码 请使用--password 参数

 mysqldump -h database_ip -u Username --password=123456 --opt databasename > backup-file.sql
 mysqldump -h database_ip -d -u Username --password=123456 databasename >database_structure.sql
Copy after login

为数据库db设置权限。以root登录,切换到mysql数据库,授予权限,更新权限。

# mysql -u root -p
Copy after login
Copy after login

mysql> use mysql;
mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;
Copy after login

或者

mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges;
Copy after login

更新已存在表的数据。

mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = 'user';
Copy after login

删除表中[field name] = ‘whatever'的行。

mysql> DELETE from [table name] where [field name] = 'whatever';
Copy after login

更新数据库的权限/特权。

mysql> flush privileges;
Copy after login

删除列。

mysql> alter table [table name] drop column [column name];
Copy after login

新增列到db。

mysql> alter table [table name] add column [new column name] varchar (20);
Copy after login

更改列名。

mysql> alter table [table name] change [old column name] [new column name] varchar (50);
Copy after login

增加唯一的列。

mysql> alter table [table name] add unique ([column name]);
Copy after login

设置列值大点。

mysql> alter table [table name] modify [column name] VARCHAR(3);
Copy after login

删除唯一列。

mysql> alter table [table name] drop index [colmn name];
Copy after login

导入一个CSV文件到表。

mysql> LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);
Copy after login

导出所有数据库到sql文件。

# [mysql dir]/bin/mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql
Copy after login

导出一个数据库。

# [mysql dir]/bin/mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql
Copy after login

从一个数据库导出一个表。

# [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
Copy after login

从sql文件还原数据库(数据表)。

# [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql
Copy after login

创建数据表例1。

mysql> CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));
Copy after login

创建数据表例2。

mysql> create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default 'bato');
Copy after login

将查询结果保存到文件

 select title from book into outfile '/tmp/outfile.txt';
Copy after login

查找表中多余的重复记录,重复记录是根据某个字段(peopleId)来判断

 select * from people where peopleId in (select peopleId from people group by 
 peopleId having count(peopleId) > 1);
Copy after login

查询表中不重复记录(排除重复记录)

 select * from phome_ecms_wma where title in (select distinct title from phome_ecms_wma);
Copy after login

删除表中重复记录,重复记录是根据某个字段(title)来判断

 select *,count(distinct title) INTO OUTFILE '/tmp/table.bak' from phome_ecms_wma group by title;
 delete from phome_ecms_wma;
 LOAD DATA INFILE '/tmp/table.bak' REPLACE INTO TABLE phome_ecms_wma character set utf8;
Copy after login

随机选取记录

 SELECT *FROM url ORDER BY RAND() LIMIT 5;
Copy after login

查询数据库当前编码

 mysql> show variables like "character_set%";
Copy after login

修改表字段类型

 mysql> alter table table_name change last_action last_action datetime NOT NULL default '0000-00-00 00:00:00';
Copy after login

给表添加一个新字段

 mysql> ALTER TABLE host ADD ks_mac VARCHAR(100);
Copy after login

从表中删除一个字段

 mysql> ALTER TABLE table_name DROP field_name; 
Copy after login

重命名表

 mysql>alter table t1 rename t2;
Copy after login

给字段加索引

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

加主关键字的索引

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

加唯一限制条件的索引

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

删除某个索引

 mysql>alter table tablename drop index emp_name;
Copy after login

远程访问mysql 设置

 mysql> GRANT ALL PRIVILEGES ON database_test.* to root@192.168.1.9 IDENTIFIED BY '123456';
 mysql> FLUSH PRIVILEGES;
Copy after login

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!