关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » MySQL »MySQL处理数据库和表的常用命令

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

    2014-10-27 00:00:00 出处:aehyok
    分享

    我是新手

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

    处理数据库

    查看数据库

    获取服务器上的数据库列表通常很有用。执行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> dr0p 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打交道时常用的一些命令,希望对大家有帮助。看完该文,你应该认为你已经不是新手了,如果上面的命令你都实践过一遍以后,你应该比60%的人都熟悉MySQL数据库。就是这样,越简单的东西,越是有很多人不会。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    windows 7应用程序无法启动出现窗口提示找不到应用程序

    SQL中数据类型转换函数的使用

    MySQL使用变量的注意事项

    SQL Server 锁自定义的示例演示

    如何在Linux命令行中创建以及展示演示稿

    windows 7任务栏显示标题的方法(windows 7任务栏缩略图不显示出

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。