注意:MySQL数据库命令不区分大小写。但在MAC的终端,如果你想使用tab自动补全命令,那么你就必须使用大写,这样MAC的终端才会帮你补全命令,否则你按N遍tab都不会有响应。

1、数据库(database)管理

1.1、create创建数据库

create database firstDB;

1.2、show查看所有数据库

mysql> show databases;

+--------------------+
| Database |
+--------------------+
| information_schema |
| firstDB |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

1.3、alter修改数据库

alter命令修改数据库编码:

默认创建的数据库默认不支持中文字符,如果我们需要它支持中文字符,则将它的编码设置为utf8格式:

mysql> ALTER DATABASE testDB CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)

1.4、use使用数据库

mysql> use firstDB;
Database changed

1.5、查看当前使用的数据库

mysql> select database();
+------------+
| database() |
+------------+
| firstdb |
+------------+
1 row in set (0.00 sec)

1.6、drop删除数据库

mysql> drop database firstDB;
Query OK, 0 rows affected (0.00 sec)

2、数据表(table)管理

我们首先创建一个数据库,提供我们往后的使用:

mysql> create database testDB;
Query OK, 1 row affected (0.00 sec)

创建后记得用use命令进入(使用)数据库,不然后面的操作都会不成功的。

2.1、create创建表

mysql> create table PEOPLE (
-> ID int AUTO_INCREMENT PRIMARY KEY,
-> NAME varchar(20) not null,
-> AGE int not null,
-> BIRTHDAY datetime);
Query OK, 0 rows affected (0.01 sec)

2.2、show显示表

显示当前数据库所有的数据表

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| PEOPLE |
+------------------+
1 row in set (0.00 sec)

2.3、desc查看表结构

mysql> desc PEOPLE
-> ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| NAME | varchar(20) | NO | | NULL | |
| AGE | int(11) | NO | | NULL | |
| BIRTHDAY | datetime | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

2.4、alter修改表结构(增、删、改)

默认创建的表不支持中文字符,所以需将表编码设置为utf8:

mysql> ALTER TABLE KEYCHAIN CONVERT TO CHARACTER SET UTF8;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0

2.4.1、insert在表中添加列(字段)

mysql> alter table PEOPLE add star BOOL;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

提示:在MySQL里,布尔类型会自动转换为tinyint(1)类型。

我们不妨使用desc去查看一下PEOPLE表结构:

mysql> desc PEOPLE;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| NAME | varchar(20) | NO | | NULL | |
| AGE | int(11) | NO | | NULL | |
| BIRTHDAY | datetime | YES | | NULL | |
| star | tinyint(1) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

2.4.2、alter修改表(列)字段

mysql> alter table PEOPLE MODIFY star int;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

也可以指定int(n)的长度,比如int(2)。

我们再次使用desc查看PEOPLE表结构:

mysql> desc PEOPLE;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| NAME | varchar(20) | NO | | NULL | |
| AGE | int(11) | NO | | NULL | |
| BIRTHDAY | datetime | YES | | NULL | |
| star | int(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

2.4.3、delete删除表(列)字段

mysql> alter table PEOPLE DROP column star;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

删除后,再次查看PEOPLE表结构:

mysql> desc PEOPLE;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| NAME | varchar(20) | NO | | NULL | |
| AGE | int(11) | NO | | NULL | |
| BIRTHDAY | datetime | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

删除字段成功,现在我们已经不能看到star的字段了。

2.4.4、rename重命名表名

mysql> RENAME TABLE PEOPLE TO NEW_PEOPLE;
Query OK, 0 rows affected (0.00 sec)

2.4.5、null or not null

修改表字段允许为空或不允许为空:

mysql> ALTER TABLE PEOPLE MODIFY AGE INT(3) NULL;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

把PEOPLE表的AGE字段设置成“允许为空”,即插入记录时这个字段可以不录入。否则相反。

它的格式为:ALTER TABLE <TALBE_NAME> MODIFY <CLOUMN>  <NULL 'OR'  NOT NULL>

2.5、create利用已有数据创建新表

mysql> create table newTable select * from PEOPLE;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

我们查看一下目前数据库存在的表:

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| PEOPLE |
| newTable |
+------------------+
2 rows in set (0.00 sec)

3、数据的操作及管理

数据表的基本操作,包含增、删、改、查数据。

以下命令均在PEOPLE表上操作。

3.1、增加数据(增)

PEOPLE表目前是没有数据的,它是空的数据表,我们现在先添加一些数据。

insert into命令添加数据:

mysql> insert into PEOPLE VALUES (null, 'Anny', 22, '1992-05-22');
Query OK, 1 row affected (0.00 sec)

使用select命令查看表(会在后面介绍),现在我们查看PEOPLE数据表的数据:

mysql> select * from PEOPLE;
+----+------+-----+---------------------+
| ID | NAME | AGE | BIRTHDAY |
+----+------+-----+---------------------+
| 1 | Anny | 22 | 1992-05-22 00:00:00 |
+----+------+-----+---------------------+
1 row in set (0.00 sec)

数据表现在有一条数据。

我们多添加几条数据,如:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME | AGE | BIRTHDAY |
+----+--------+-----+---------------------+
| 1 | Anny | 22 | 1992-05-22 00:00:00 |
| 2 | Garvey | 23 | 1991-05-22 00:00:00 |
| 3 | Lisa | 25 | 1989-05-22 00:00:00 |
| 4 | Nick | 24 | 1990-05-22 00:00:00 |
| 5 | Rick | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
5 rows in set (0.00 sec)

3.2、删除数据(删)

delete命令删除数据:

mysql> delete from PEOPLE where name = 'Lisa';
Query OK, 1 row affected (0.01 sec)

再次查询PEOPLE表:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME | AGE | BIRTHDAY |
+----+--------+-----+---------------------+
| 1 | Anny | 22 | 1992-05-22 00:00:00 |
| 2 | Garvey | 23 | 1991-05-22 00:00:00 |
| 4 | Nick | 24 | 1990-05-22 00:00:00 |
| 5 | Rick | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
4 rows in set (0.00 sec)

已经看不到名为“Lisa”的数据了。

3.3、修改数据(改)

update命令修改数据:

mysql> update PEOPLE set name='Calvin' where name = 'Garvey';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

查询PEOPLE表内容:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME | AGE | BIRTHDAY |
+----+--------+-----+---------------------+
| 1 | Anny | 22 | 1992-05-22 00:00:00 |
| 2 | Calvin | 23 | 1991-05-22 00:00:00 |
| 4 | Nick | 24 | 1990-05-22 00:00:00 |
| 5 | Rick | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
4 rows in set (0.00 sec)

名为“Garvey”的记录已经修改为“Calvin”。

3.4 查询数据(查)

select命令查询数据,最简单的就是查询表的所有数据,也就是我们最初使用到的那条命令:

mysql> select * from PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME | AGE | BIRTHDAY |
+----+--------+-----+---------------------+
| 1 | Anny | 22 | 1992-05-22 00:00:00 |
| 2 | Calvin | 23 | 1991-05-22 00:00:00 |
| 4 | Nick | 24 | 1990-05-22 00:00:00 |
| 5 | Rick | 24 | 1991-05-22 00:00:00 |
+----+--------+-----+---------------------+
4 rows in set (0.00 sec)

格式:select * from <表名>,*代表所有字段。

查询数据时也可指定显示的(列)字段:

mysql> select NAME, AGE, BIRTHDAY from PEOPLE;
+--------+-----+---------------------+
| NAME | AGE | BIRTHDAY |
+--------+-----+---------------------+
| Anny | 22 | 1992-05-22 00:00:00 |
| Calvin | 23 | 1991-05-22 00:00:00 |
| Nick | 24 | 1990-05-22 00:00:00 |
| Rick | 24 | 1991-05-22 00:00:00 |
+--------+-----+---------------------+
4 rows in set (0.00 sec)

格式:select <字段名,字段名,...> from <表名>。

select查询命令还有很多的高级用法,比如用来查找不重复(distinct)的数据,使数据按条件排序(order by),按查询条件显示数据(where)等等。这些都会在下一篇文章作重点介绍,请大家继续留意我的博客,谢谢。

4、管理视图

创建视图

视图是从数据库里导出一个或多个表的虚拟表,是用来方便用户对数据的操作。

mysql> CREATE VIEW PEOPLE_VIEW (
-> NAME, AGE)
-> AS SELECT NAME, AGE FROM PEOPLE;

创建成功后查看视图。

PEOPLE          PEOPLE.AGE      PEOPLE.BIRTHDAY PEOPLE.ID       PEOPLE.NAME
mysql> SELECT * FROM PEOPLE_VIEW
-> ;
+--------+-----+
| NAME | AGE |
+--------+-----+
| Anny | 22 |
| Calvin | 23 |
| Nick | 24 |
| Rick | 24 |
+--------+-----+
4 rows in set (0.00 sec)

我们也可以使用DESC命令查看视图的结构。

mysql> DESC PEOPLE_VIEW;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| ID | int(11) | NO | | 0 | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)

替换视图

创建或替换原有视图。

mysql> CREATE OR REPLACE VIEW PEOPLE_VIEW(PEOPLE_ID,PEOPLE_NAME,PEOPLE_AGE) AS SELECT ID,NAME,AGE FROM PEOPLE;
Query OK, 0 rows affected (0.00 sec)

创建或替换后查看视图。

mysql> SELECT * FROM PEOPLE_VIEW;
+-----------+-------------+------------+
| PEOPLE_ID | PEOPLE_NAME | PEOPLE_AGE |
+-----------+-------------+------------+
| 1 | Anny | 22 |
| 2 | Calvin | 23 |
| 4 | Nick | 24 |
| 5 | Rick | 24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

操作视图

当视图数据有变化时(增、删、改),真实的表数据也会随着改变。也就是说,对视图的操作就是对表的数据,所以我们可以把视图当作表。

例:往视图插入一条数据。

mysql> INSERT INTO PEOPLE_VIEW VALUES(NULL, 'Kerry', '33');
Query OK, 1 row affected (0.00 sec)

插入数据成功后查看视图。

mysql> SELECT * FROM PEOPLE_VIEW ;
+-----------+-------------+------------+
| PEOPLE_ID | PEOPLE_NAME | PEOPLE_AGE |
+-----------+-------------+------------+
| 1 | Anny | 22 |
| 2 | Calvin | 23 |
| 4 | Nick | 24 |
| 5 | Rick | 24 |
| 6 | Kerry | 33 |
+-----------+-------------+------------+
5 rows in set (0.00 sec)

可以在视图上看到我们刚刚插入的数据,现在我们就来验证一下真实的表是否也会作出变化。

mysql> SELECT * FROM PEOPLE;
+----+--------+-----+---------------------+
| ID | NAME | AGE | BIRTHDAY |
+----+--------+-----+---------------------+
| 1 | Anny | 22 | 1992-05-22 00:00:00 |
| 2 | Calvin | 23 | 1991-05-22 00:00:00 |
| 4 | Nick | 24 | 1990-05-22 00:00:00 |
| 5 | Rick | 24 | 1991-05-22 00:00:00 |
| 6 | Kerry | 33 | NULL |
+----+--------+-----+---------------------+
5 rows in set (0.00 sec)

可见,真实的表数据也已经有所改变,刚刚往视图里插入的那一条数据存在于真实表中,真理便是:对视图的操作就是对表的数据。

删除视图

mysql> DROP VIEW PEOPLE_VIEW;
Query OK, 0 rows affected (0.00 sec)

参考:

http://www.cnblogs.com/GarveyCalvin/p/4297282.html

MySQL终端(Terminal)命令基本操作(转)的更多相关文章

  1. MySQL之终端(Terminal)管理MySQL

    原文:MySQL之终端(Terminal)管理MySQL 前言:MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作 ...

  2. MySQL之终端(Terminal)管理MySQL(转)

    前言:MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图 ...

  3. mysql基础篇 - 其他基本操作

    基础篇 - 其他基本操作         其他基本操作 一.实验简介 本节实验中我们将学习并实践数据库的其他基本操作:索引.视图,导入和导出,备份和恢复等. 这些概念对于数据库管理员而言都非常重要,请 ...

  4. mysql远程连接命令

    mysql远程连接命令   一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u ...

  5. linux终端terminal个性化配置(转)

    http://blog.csdn.net/pipisorry/article/details/39584489 {本文介绍Linux终端字体颜色设置.终端提示符显示内容设置.自定义alias命令} l ...

  6. Mysql数据库导入命令Source详解

    Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p dat ...

  7. 【Xamarin挖墙脚系列:mac 终端 常用命令+Mac OS X的快捷键+beamoff 】

    原文:[Xamarin挖墙脚系列:mac 终端 常用命令+Mac OS X的快捷键+beamoff ] 基本命令 1.列出文件 ls 参数 目录名        例: 看看驱动目录下有什么:ls /S ...

  8. Mysql经常使用命令

    1.导出整个数据库 mysqldump -u username -p --default-character-set=latin1 数据库名 > 导出的文件名称(数据库默认编码是latin1) ...

  9. 【Linux探索之旅】第二部分第一课:终端Terminal,好戏上场

    内容简介 1.第二部分第一课:终端Terminal,好戏上场 2.第二部分第二课预告:命令行,世界尽在掌握 终端Terminal,好戏上场 随着第一部分的结束,我们进入了第二部分(小编你这好像是废话. ...

  10. ubuntu终端常用命令及solarized配色(护眼)

    ubuntu终端常用命令及solarized配色(护眼) ubuntu 终端 命令 1.常用命令 ctrl + l - 清屏 . cLear  ctrl + c - 终止命令.   ctrl + d ...

随机推荐

  1. [App Store Connect帮助]三、管理 App 和版本(4)创建新版本

    当您准备分发 App 的新版本时,您创建的新版本使用您为原始版本创建的 App 记录.该新版本将对购买过先前版本的顾客免费可用. 各版本使用的 Apple ID(App 标识符).SKU 和套装 ID ...

  2. 安科 OJ 1054 排队买票 (递归,排列组合)

    时间限制:1 s 空间限制:128 M 题目描述 有M个小孩到公园玩,门票是1元.其中N个小孩带的钱为1元,K个小孩带的钱为2元.售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱 ...

  3. 绑定树tree 的后台方法

    #region 获取部门列表树集合         /// <summary>         /// 获取部门列表树集合         /// </summary>     ...

  4. 【转】Linux字符转换命令col

    转自:http://www.cnblogs.com/ningvsban/p/3725464.html [root@www ~]# col [-xb]选项与参数:-x :将 tab 键转换成对等的空格键 ...

  5. tp5.0分页样式调控

    基础的分页调用 /** * 控制器部分代码 */ //实例化模型 $areasModel=new Areas(); //分页数据集 $listarea=$areasModel->paginate ...

  6. php中的抽象方法和抽象类

    1.什么是抽象方法?    我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方 ...

  7. html5——边框

    精确控制 /*水平半径 垂直半径;*/ border-top-left-radius: 30px 40px; border-top-right-radius: 30px 40px; border-bo ...

  8. java实现搜索附近地点或人的功能

    前言 当前大多数app都有查找附近的功能, 简单的有查找周围的运动场馆, 复杂的有滴滴, 摩拜查找周围的车辆. 本文主要阐述查找附近地点的一般实现. 方案比较 方案1 (性能还不错) 数据库直接存经纬 ...

  9. Python之操作Excel、异常处理、网络编程

    知识补充: 1.falsk模块中一些方法总结 import flask from flask import request,jsonify server = flask.Flask(__name__) ...

  10. C# SetWindowsHookEx

    [DllImport("user32.dll")] static extern IntPtr SetWindowsHookEx(int idHook, keyboardHookPr ...