MySQL常用命令 MySQL处理数据库和表的命令

学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一些信手拈来的命令。
一、处理数据库

1、查看数据库
获取服务器上的数据库列表通常很有用。执行show databases;命令就可以搞定。
mysql> show databases;

2、创建数据库
mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)

3、使用数据库
数据库一旦创建,就可以通过“使用”(use命令)数据库,将其指定为默认的工作数据库。
mysql> use db_test;
Database changed

4、删除数据库
删除数据库的方式与创建的方式很相似。可以在mysql客户端中使用drop命令删除数据库,如下:
mysql> drop database db_test;
Query OK, 0 rows affected (0.00 sec)

二、处理表

这里将对如何创建、列出、查看、删除和修改MySQL数据库表。

1、创建表
表通过create table语句来创建。创建表的过程中会使用非常多的选项和子句,在这里完全总结一遍也是不现实的,这里只是总结最普遍的,以后遇到别的,再单个总结。创建表的一般用法如下:

mysql> create table tb_test(
  -> id int unsigned not null auto_increment,
  -> firstname varchar(25) not null,
  -> lastname varchar(25) not null,
  -> email varchar(45) not null,
  -> phone varchar(10) not null,
  -> primary key(id));
Query OK, 0 rows affected (0.03 sec)

记住,表至少包含一列。另外,创建表之后总是可以再回过头来修改表的结构。无论当前是否在使用目标数据库,都可以创建表,只要在表名前面加上目标数据库即可。例如:

mysql> create table db_test.tb_test(
  -> id int unsigned not null auto_increment,
  -> firstname varchar(25) not null,
  -> lastname varchar(25) not null,
  -> email varchar(45) not null,
  -> phone varchar(10) not null,
  -> primary key(id));
Query OK, 0 rows affected (0.03 sec)

2、有条件的创建表
在默认情况下,如果试图创建一个已经存在的表,MySQL会产生一个错误。为了避免这个错误,create table语句提供了一个子句,如果你希望在目标表已经存在的情况下简单地退出表创建,就可以使用这个子句。例如:

mysql> create table if not exists db_test.tb_test(
  -> id int unsigned not null auto_increment,
  -> firstname varchar(25) not null,
  -> lastname varchar(25) not null,
  -> email varchar(45) not null,
  -> phone varchar(10) not null,
  -> primary key(id));
Query OK, 0 rows affected, 1 warning (0.00 sec)

无论是否已经创建,都会在返回到命令提示窗口时显示“Query OK”消息。

3、复制表
基于现有的表创建新表是一项很容易的任务。以下代码将得到tb_test表的一个副本,名为tb_test2:

mysql> create table tb_test2 select * from db_test.tb_test;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0

将向数据库增加一个相同的表tb_test2。而有的时候,可能希望只基于现有表的几个列创建一个表。通过create select语句中指定列就可以实现:

mysql> describe tb_test;
+-----------+------------------+------+-----+---------+----------------+
| Field   | Type       | Null | Key | Default | Extra     |
+-----------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| firstname | varchar(25)   | NO  |   | NULL  |        |
| lastname | varchar(25)   | NO  |   | NULL  |        |
| email   | varchar(45)   | NO  |   | NULL  |        |
| phone   | varchar(10)   | NO  |   | NULL  |        |
+-----------+------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> create table tb_test2 select id, firstname, lastname, email from tb_test;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe tb_test2;
+-----------+------------------+------+-----+---------+-------+
| Field   | Type       | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+-------+
| id    | int(10) unsigned | NO  |   | 0    |    |
| firstname | varchar(25)   | NO  |   | NULL  |    |
| lastname | varchar(25)   | NO  |   | NULL  |    |
| email   | varchar(45)   | NO  |   | NULL  |    |
+-----------+------------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

4、创建临时表
有的时候,当工作在非常大的表上时,可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录保存到一个临时表可能更快一些,然后对这些临时表进行查询操作。可以通过使用temporary关键字和create table语句来实现。

mysql> create temporary table emp_temp select firstname, lastname from tb_test;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

临时表的创建与其它表一样,只是它们存储在操作系统指定的临时目录中。临时表将在你连接MySQL期间存在,当你断开时,MySQL将自动删除表并释放所有的内存空间;当然了,你也可以手动的使用drop table命令删除临时表。

5、查看数据库中可用的表
可以使用show tables命令完成。例如:

mysql> show tables;
+-------------------+
| Tables_in_db_test |
+-------------------+
| tb_test      |
| tb_test2     |
+-------------------+
2 rows in set (0.00 sec)

6、查看表结构
可以使用describe语句查看表结构,例如:

mysql> describe tb_test;
+-----------+------------------+------+-----+---------+----------------+
| Field   | Type       | Null | Key | Default | Extra     |
+-----------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| firstname | varchar(25)   | NO  |   | NULL  |        |
| lastname | varchar(25)   | NO  |   | NULL  |        |
| email   | varchar(45)   | NO  |   | NULL  |        |
| phone   | varchar(10)   | NO  |   | NULL  |        |
+-----------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

另外,使用show命令也能得到相同的结果,例如:

mysql> show columns in tb_test;
+-----------+------------------+------+-----+---------+----------------+
| Field   | Type       | Null | Key | Default | Extra     |
+-----------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO  | PRI | NULL  | auto_increment |
| firstname | varchar(25)   | NO  |   | NULL  |        |
| lastname | varchar(25)   | NO  |   | NULL  |        |
| email   | varchar(45)   | NO  |   | NULL  |        |
| phone   | varchar(10)   | NO  |   | NULL  |        |
+-----------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

7、删除表
删除表是使用drop table语句实现的,其语法如下:

代码如下:

drop [temporary] table [if exists] tbl_name [, tbl_name, ...]

8、更改表结构
我们会发现,我们会经常修改和改进表结构,特别是在开发初期;但是,每次进行修改时不必都先删除再重新创建表。相反,可以使用alter语句修改表的结构。利用这个语句,可以再必要时删除、修改和增加列。和create table一样,alter table提供了很多子句、关键字和选项。这里只是会说一些简单的使用,比如在表tb_demo表中插入一列,表示email,代码如下:

mysql> alter table tb_demo add column email varchar(45);
Query OK, 0 rows affected (0.14 sec)
Records: 0 Duplicates: 0 Warnings: 0

新的列放在表的最后位置。不过,还可以使用适当的关键字(包括first、after和last)来控制新列的位置。如果想修改表,比如,刚刚加的email,我想加入一个not null控制,代码可以是这样的:

mysql> alter table tb_demo change email email varchar(45) not null;
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0

如果觉的这个email这列没有存在的必要了,可以使用下面的代码删除它,例如:

mysql> alter table tb_demo drop email;
Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0

这篇文章大体上总结了与MySQL常用的一些命令,主要是学习Mysql处理数据库和表的常用命令,希望对大家有帮助。

时间: 2015-11-07

MYSQL命令行导入导出数据库详解

Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql -u root -p   (输入同样后会让你输入MySQL的密码) 4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库 5,输入:mysql>use 目标数据库名 如我输入的命令行:mysql>use news; 6,导入文件:mysql>s

Mysql数据库介绍及mysql显示命令

下文给大家介绍mysql数据库介绍,具体详情如下所示: MySQL 数据库: Oracle.DB2.SQL Server.MySQL.access.mangodb.bigtable 关系型数据库 大型 Oracle.DB2 中小型 SQL Server.MySQL 小型 access 非关系型数据库 mangodb.bigtable 什么是关系型数据库? 所谓的关系型数据库就是使用"关系模型"来组织数据的数据库. 什么是非关系型数据库? 没有使用"关系模型"来组织数

MySQL操作数据库和表的常用命令新手教程

我是新手 学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一些信手拈来的命令. 处理数据库 1.查看数据库 获取服务器上的数据库列表通常很有用.执行show databases;命令就可以搞定. 复制代码 代码如下: mysql> show databases; 2.创建数据库 复制代码 代码如下: mysql> create database db_test; Query OK, 1 ro

Mysql数据库命令大全

一.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2.连接到远程主机上的MYSQL.假设远程主机的IP为:1

mysqldump命令导入导出数据库方法与实例汇总

mysqldump命令的用法 1.导出所有库 系统命令行 mysqldump -uusername -ppassword --all-databases > all.sql 2.导入所有库 mysql命令行 mysql>source all.sql; 3.导出某些库 系统命令行 mysqldump -uusername -ppassword --databases db1 db2 > db1db2.sql 4.导入某些库 mysql命令行 mysql>source db1db2.s

MySQL命令行导出导入数据库实例详解

MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 5.5\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u lmapp -p lmapp -P 3308 > lmapp.sql   (输入后会让你

MYSQL数据库中cmd命令操作详解

CMD命令 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows CE与Windows NT平台为基础的操作系统(包括Windows 2000和XP中, Vista中,和Server 2003 )下的"MS-DOS 方式".中文版Windows XP 中的命令提示符进一步提高了与DOS 下操作命令的兼容性,用户可以在命令提示符直接输入中文调用文件. 今天我们就来看一下数据库的各种命令,以下命令全部是从CMD命令窗口下的命令行输入指令,首先如果如果输

PHP使用mysqldump命令导出数据库

PHP使用外部命令导出数据库,代码很简单,就不多废话了 <?php // $dumpFileName目录要有可写权限 $DbHost = 'localhost'; $DbUser = 'root'; $DbPwd = '123456'; $DbName = 'a'; $fileName = $DbName . '_MySQL_data_backup_' . date('YmdHis) . '.sql'; $dumpFileName= "/var/$fileName"; heade

MySQL 数据库 ALTER命令讲解

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成. 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@host# mysql -u root -p password; Enter password:*****

mysql drop database删除数据库命令实例讲解

mysql drop database命令用于删除一个数据库,如果试图使用drop database命令删除一个不存在的数据库,那么那么你会收到此错误:ERROR 1008 (HY000): Can't drop database 'tutorial_database'; database doesn't exist,本文章向大家介绍mysql drop database使用实例. 首先在使用drop database删除数据库之前,我们需要连接到数据库服务器. 我们可以使用以下命令登录到mys

MySQL创建和删除表操作命令实例讲解

创建表 简单的方式 复制代码 代码如下: CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 复制代码 代码如下: CREATE TABLE IF NOT EXISTS person ( number INT(11), name VARCHAR(255), birthday DATE ); 查看mysql创建表: 复制代码 代码如下: SHOW CREATE table person; CRE

Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)

最近在弄一个项目分析的时候,看到有一个后缀为".sqlite"的数据文件,由于以前没怎么接触过,就想着怎么用python来打开并进行数据分析与处理,于是稍微研究了一下. SQLite是一款非常流行的关系型数据库,由于它非常轻盈,因此被大量应用程序采用. 像csv文件一样,SQLite可以将数据存储于单个数据文件,以便方便的分享给其他人员.许多编程语言都支持SQLite数据的处理,python语言也不例外. sqlite3是python的一个标准库,可以用于处理SQLite数据库. 用s

Node.js学习之TCP/IP数据通讯(实例讲解)

1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用net模块创建TCP服务器 var server = net.createServer([options],[connectionListener]) //options:false当TCP服务器接收到客户端发送的一个FIN包时将会回发一个FIN包 true当TCP服务器接收到客户端发送的一个FIN包时将不会回发FIN包,这使得TCP服务器

java实现连接mysql数据库单元测试查询数据的实例代码

1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test; 具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc) 具体的建立数据库操作详见下图: 3.编写包中的各种类代码,具体参考代码如下: UserInfo.java /** * FileName: UserInfo.jav

PHP+Mysql+jQuery中国地图区域数据统计实例讲解

今天我要给大家介绍在实际应用中,如何把数据载入到地图中.本文结合实例,使用PHP+Mysql+jQuery实现中国地图各省份数据统计效果. 本例以统计某产品在各省份的活跃用户数为背景,数据来源于mysql数据库,根据各省份的活跃用户数,分成不同等级,并以不同的背景色显示各省份的活跃程度,符合实际应用需求. HTML 首先在head部分载入raphael.js库文件和chinamapPath.js路径信息文件. <script type="text/javascript" src=

MySQL创建和删除数据表的命令及语法详解

创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (column_name column_type); 以下例子中我们将在 TUTORIALS 数据库中创建数据表tutorials_tbl: tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT N

jQuery+PHP+MySQL二级联动下拉菜单实例讲解

二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动.本文将通过实例讲解使用jQuery+PHP+MySQL来实现大小分类二级下拉联动效果. 实现效果:当选择大类时,小类下拉框里的选项内容也随着改变. 实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MySQl数据库,得到相应的小类,并返回JSON数据给前端处理. XHTML 首先我们要建立两个下拉选择框,第一个是大类,第二个是小类.大类的值可以是预先写好,也可以是从数据库读取. <lab

SQL建立数据库及删除数据库命令

复制代码 代码如下: CREATE DATABASE 临时的 ON ( NAME='临时的_Data', FILENAME='h:\临时的.mdf', SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10% ) LOG ON ( NAME='临时的_LOG', FILENAME='h:\临时的.ldf', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB ) 这样就在H盘建立了一个名字为 临时的.mdf,以及日志名称为 临时的.ldf的数据库文件,

MySql 按时间段查询数据方法(实例说明)

时间格式为2008-06-16 查询出当天数据: SELECT * FROM `table` WHERE date(时间字段) = curdate(); 查询出当月字段: SELECT * FROM `table` WHERE month( 时间字段) = month( now( ) ) ; 时间格式为1219876-- UNIX时间,只要应用"FROM_UNIXTIME( )"函数 例如查询当月: SELECT * FROM `table` WHERE month( from_uni