查看数据库
获取服务器上的数据库列表通常很有用。执行show databases;命令就可以搞定。
mysql> show databases;
创建数据库
mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)
使用数据库
数据库一旦创建,就可以通过“使用”(use命令)数据库,将其指定为默认的工作数据库。
mysql> use db_test;
Database changed
删除数据库
删除数据库的方式与创建的方式很相似。可以在mysql客户端中使用drop命令删除数据库,如下:
mysql> drop database db_test;
Query OK, 0 rows affected (0.00 sec)
处理表
这里将对如何创建、列出、查看、删除和修改MySQL数据库表。
创建表
表通过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)
有条件的创建表
在默认情况下,如果试图创建一个已经存在的表,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”消息。
复制表
基于现有的表创建新表是一项很容易的任务。以下代码将得到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)
创建临时表
有的时候,当工作在非常大的表上时,可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让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命令删除临时表。
查看数据库中可用的表
可以使用show tables命令完成。例如:
mysql> show tables;
+-------------------+
| Tables_in_db_test |
+-------------------+
| tb_test |
| tb_test2 |
+-------------------+
2 rows in set (0.00 sec)
查看表结构
可以使用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)
删除表
删除表是使用drop table语句实现的,其语法如下:
drop [temporary] table [if exists] tbl_name [, tbl_name, ...]
更改表结构
我们会发现,我们会经常修改和改进表结构,特别是在开发初期;但是,每次进行修改时不必都先删除再重新创建表。相反,可以使用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的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一些信手拈来的命令。 一、处理数据库 1、查看数据库 获取...
MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了。innodb表损坏不能通过repair table 等修复myisam的命令操作。
学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一些信手拈来的命令。 处理数据库 1.查看数据库 获取服务器上...
怎么恢复mysql数据库/数据库丢失怎么处理!看完视频很简单的操作。
自定义格式读取MySQL数据库记录可以帮助您更好地理解和分析MySQL数据库中的数据。这可以为您的批量处理带来更多的灵活性和可操作性。当您在读取记录时,您可以根据自己的需求对记录进行排序、过滤和组合。这使您能够...
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件...
mysql插入数据库编码解决mysql插入数据库编码解决
MySQL数据库:项目以程序方式处理学生信息管理数据表.pptx
oracle数据库表结构转gp数据库表结构、转mysql、数据库时表字段长度问题
Oracle MySQL数据库故障处理应急方案
数据库:高效的存储和处理数据的介质(介质主要有两种:磁盘和内存) 2、数据库的分类: 数据库基于存储介质的不同进行了分类:关系型数据库(SQL)和非关系型数据库 (NoSQL:Not Only SQL)。 3、不同的数据库阵营...
鉴于MySQL数据库的流行与强大,决定多学习使用。现本着学习的目的,将c#访问操作MySQL数据库进行添加、删除、修改、显示等操作进行梳理。形成代码,以Visual Studio 2012平台下的示例形式写下来,供以后查看。同时...
所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 关系数据库特点 1.数据以表格的形式出现 2.每行为各种记录名称 3.每列为记录名称所对应的数据域 4....
处理数据库日志过大问题处理数据库日志过大问题处理数据库日志过大问题处理数据库日志过大问题
mysql数据库内容处理关于中文乱码的问题
MySQL 创建数据库 MySQL 删除数据库 MySQL 选择数据库 MySQL 数据类型 MySQL 创建数据表 MySQL 删除数据表 MySQL 插入数据 MySQL 查询数据 MySQL WHERE 子句 MySQL UPDATE 更新 MySQL DELETE 语句 MySQL LIKE 子句 ...
# 4获取数据库中所有表名,并循环处理每个表格: # a. 过滤掉不符合条件的表格; # b. 创建同名的Excel工作表; # c. 获取该表格的字段名、类型、长度和注释信息; # d. 将字段信息写入Excel工作表; .......
在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标。...在对数据库的性能监控上经常会提到QPS和TPS这两个名词,下面就分别简单的分享一下关于MySQL数据库中的QPS和TPS的意义和计算方法。 1 QPS:
2、保存文件(含可执行文件)到MySQL数据库中,包括文件大小超过1M时的异常处理; 3、从MySQL数据库中读取文件并保存至本地; 4、MySQL数据防止重复插入功能; 5、MySqlHelpher操作类,完全由我本人实现,此类包含...