Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL的常用命令集锦_MySQL

WBOY
Freigeben: 2016-05-30 17:10:33
Original
931 Leute haben es durchsucht

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

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

# [mysql dir]/bin/mysql -h hostname -u root -p
Nach dem Login kopieren

创建一个数据库。

mysql> create database [databasename];
Nach dem Login kopieren

列出所有数据库。

mysql> show databases;
Nach dem Login kopieren

切换到一个数据库。

mysql> use [db name];
Nach dem Login kopieren

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

mysql> show tables;
Nach dem Login kopieren

查看数据表的字段格式。

mysql> describe [table name];
Nach dem Login kopieren

删除一个数据库。

mysql> drop database [database name];
Nach dem Login kopieren

删除一个数据表。

mysql> drop table [table name];
Nach dem Login kopieren

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

mysql> SELECT * FROM [table name];
Nach dem Login kopieren

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

mysql> show columns from [table name];
Nach dem Login kopieren

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

mysql> SELECT * FROM [table name] WHERE [field name] = "whatever";
Nach dem Login kopieren

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

mysql> SELECT * FROM [table name] WHERE name = "Bob" AND phone_number = '3444444';
Nach dem Login kopieren

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

mysql> SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;
Nach dem Login kopieren

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

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';
Nach dem Login kopieren

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

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444' limit 1,5;
Nach dem Login kopieren

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

mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";
Nach dem Login kopieren

返回唯一不同的记录。

mysql> SELECT DISTINCT [column name] FROM [table name];
Nach dem Login kopieren

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

mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
Nach dem Login kopieren

返回行数。

mysql> SELECT COUNT(*) FROM [table name];
Nach dem Login kopieren

统计指定列值的总和。

mysql> SELECT SUM(*) FROM [table name];
Nach dem Login kopieren

联结表。

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;
Nach dem Login kopieren

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

# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
mysql> flush privileges;
Nach dem Login kopieren

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

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

Nach dem Login kopieren

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

# /etc/init.d/mysql stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
Nach dem Login kopieren

mysql> use mysql;
mysql> update user set password=PASSWORD("newrootpassword") where User='root';
mysql> flush privileges;
mysql> quit
Nach dem Login kopieren

# /etc/init.d/mysql stop
# /etc/init.d/mysql start
Nach dem Login kopieren

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

# mysqladmin -u root password newpassword
Nach dem Login kopieren

更新root密码。

# mysqladmin -u root -p oldpassword newpassword
Nach dem Login kopieren

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

# mysql -u root -p
Nach dem Login kopieren
Nach dem Login kopieren

mysql> use mysql;
mysql> grant usage on *.* to bob@localhost identified by 'passwd';
mysql> flush privileges;
Nach dem Login kopieren

如果不想手工输入密码 请使用--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
Nach dem Login kopieren

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

# mysql -u root -p
Nach dem Login kopieren
Nach dem Login kopieren

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;
Nach dem Login kopieren

或者

mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges;
Nach dem Login kopieren

更新已存在表的数据。

mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = 'user';
Nach dem Login kopieren

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

mysql> DELETE from [table name] where [field name] = 'whatever';
Nach dem Login kopieren

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

mysql> flush privileges;
Nach dem Login kopieren

删除列。

mysql> alter table [table name] drop column [column name];
Nach dem Login kopieren

新增列到db。

mysql> alter table [table name] add column [new column name] varchar (20);
Nach dem Login kopieren

更改列名。

mysql> alter table [table name] change [old column name] [new column name] varchar (50);
Nach dem Login kopieren

增加唯一的列。

mysql> alter table [table name] add unique ([column name]);
Nach dem Login kopieren

设置列值大点。

mysql> alter table [table name] modify [column name] VARCHAR(3);
Nach dem Login kopieren

删除唯一列。

mysql> alter table [table name] drop index [colmn name];
Nach dem Login kopieren

导入一个CSV文件到表。

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

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

# [mysql dir]/bin/mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql
Nach dem Login kopieren

导出一个数据库。

# [mysql dir]/bin/mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql
Nach dem Login kopieren

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

# [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
Nach dem Login kopieren

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

# [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql
Nach dem Login kopieren

创建数据表例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));
Nach dem Login kopieren

创建数据表例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');
Nach dem Login kopieren

将查询结果保存到文件

 select title from book into outfile '/tmp/outfile.txt';
Nach dem Login kopieren

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

 select * from people where peopleId in (select peopleId from people group by 
 peopleId having count(peopleId) > 1);
Nach dem Login kopieren

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

 select * from phome_ecms_wma where title in (select distinct title from phome_ecms_wma);
Nach dem Login kopieren

删除表中重复记录,重复记录是根据某个字段(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;
Nach dem Login kopieren

随机选取记录

 SELECT *FROM url ORDER BY RAND() LIMIT 5;
Nach dem Login kopieren

查询数据库当前编码

 mysql> show variables like "character_set%";
Nach dem Login kopieren

修改表字段类型

 mysql> alter table table_name change last_action last_action datetime NOT NULL default '0000-00-00 00:00:00';
Nach dem Login kopieren

给表添加一个新字段

 mysql> ALTER TABLE host ADD ks_mac VARCHAR(100);
Nach dem Login kopieren

从表中删除一个字段

 mysql> ALTER TABLE table_name DROP field_name; 
Nach dem Login kopieren

重命名表

 mysql>alter table t1 rename t2;
Nach dem Login kopieren

给字段加索引

 mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
 mysql> alter table tablename add index emp_name (name);
Nach dem Login kopieren

加主关键字的索引

 mysql> alter table tablename add primary key(id);
Nach dem Login kopieren

加唯一限制条件的索引

 mysql> alter table tablename add unique emp_name2(cardnumber);
Nach dem Login kopieren

删除某个索引

 mysql>alter table tablename drop index emp_name;
Nach dem Login kopieren

远程访问mysql 设置

 mysql> GRANT ALL PRIVILEGES ON database_test.* to root@192.168.1.9 IDENTIFIED BY '123456';
 mysql> FLUSH PRIVILEGES;
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!