学习如何管理和导航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处理数据库和表的常用命令,希望对大家有帮助。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]