MySQL的终端(Terminal)管理数据库、数据表、数据基本操作
发布日期:2016-4-16 12:4:26
MySQL的终端(Terminal)管理数据库、数据表、数据基本操作 MySQL有很多的可视化管理工具,例如“mysql-workbench”与“sequel-pro-”。 现在我写MySQL的终端命令操作的文章,目的是想强化一下自己对于MySQL的理解,这比使用图形化的理解透彻,由于我本来就比较喜欢写代码。写出来这些文章,是希望给大家当个参考,能对大家有所帮助,有所提升。 请注意:MySQL数据库命令不区分大小写。但在MAC的终端,若你想使用tab自动补全命令,你就必须使用大写,这样MAC的终端才会帮你补全命令,否则你按一万遍遍tab也不会有响应。 一、数据库(database)管理
二、数据表(table)管理
4.1 insert 在表中添加列(字段) 4.2 alter 修改表(列)字段 4.3 delete 删除表(列)字段 4.4 rename 重命名表名 5. create 利用已有数据创建新表 三、数据的操作及管理
四、管理视图 一、数据库(database)管理 1. create 创建数据库 create database firstDB; 2.show 查看所有数据库,如下面的代码所示: 图1 3.alter 修改数据库 alter 命令修改数据库编码,如下面代码所示: 默认创建的数据库默认不支持中文字符,如果我们需要它支持中文字符,就需要将它的编码设置为utf8格式: mysql> ALTER DATABASE testDB CHARACTER SET UTF8; Query OK, 1 row affected (0.00 sec) 4. use 使用数据库 如下面代码所示: mysql> use firstDB; Database changed 5. 查看当前使用的数据库 图2 6. drop 删除数据库 如下面代码所示: mysql> drop database firstDB; Query OK, 0 rows affected (0.00 sec) 二、数据表(table)管理 我们首先创建一个数据库,提供我们往后的使用,如下面代码所示: mysql> create database testDB; Query OK, 1 row affected (0.00 sec) 创建后记得用use命令进入(使用)数据库,否则后面的操作都会不成功的。 1. create 创建表 如图3所示的代码: 图3 2. show 显示表 显示当前数据库所有的数据表 如图4所示的代码 图4 3. desc 查看表结构 如图5所示的代码: 图5 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 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表结构: 如图6所示: 图6 现在,你该相信我了吧? 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表结构: 图7 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表结构,如图8所示的代码: 图8 删除字段成功,现在我们已经不能看到star的字段了。 4.4 rename 重命名表名 如下所示的代码: mysql> RENAME TABLE PEOPLE TO NEW_PEOPLE; Query OK, 0 rows affected (0.00 sec) 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 MODIFY 5. create 利用已有数据创建新表 代码如下所示: mysql> create table newTable select * from PEOPLE; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 我们查看一下目前数据库存在的表: 代码如图9所示: 图9 三、数据的操作及管理 数据表的基本操作,包含增、删、改、查数据。 以下命令均在PEOPLE表上操作。 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数据表的数据: 图10 数据表现在有一条数据。 我们多添加几条数据,如图11所示的代码: 图11 2. 删除数据(删) delete 命令删除数据: mysql> delete from PEOPLE where name = 'Lisa'; Query OK, 1 row affected (0.01 sec) 再次查询PEOPLE表,如图12所示: 图12 已经看不到名为“Lisa”的数据了。 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表内容,如图13所示: 图13 名为“Garvey”的记录已经修改为“Calvin”。 4. 查询数据(查) select 命令查询数据,最简单的就是查询表的所有数据,也就是我们最初使用到的那条命令,如图14所示: 图14 格式:select * from <表名>,*代表所有字段。 查询数据时也可指定显示的(列)字段,如图15所示: 图15 格式:select <字段名,字段名,...> from <表名>。 select查询命令还有很多的高级用法,比如用来查找不重复(distinct)的数据,使数据按条件排序(order by),按查询条件显示数据(where)等等。这些都会在下一篇文章作重点介绍,请大家继续留意我的博客,谢谢。 四、管理视图 1.创建视图 视图是从数据库里导出一个或多个表的虚拟表,是用来方便用户对数据的操作。如下所示: mysql> CREATE VIEW PEOPLE_VIEW ( -> NAME, AGE) -> AS SELECT NAME, AGE FROM PEOPLE; 创建成功后查看视图。 图16 我们也可以使用 DESC 命令查看视图的结构,如图17所示。 图17 2.替换视图 创建或替换原有视图。 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) 创建或替换后查看视图。 图18 3.操作视图 当视图数据有变化时(增、删、改),真实的表数据也会随着改变。也就是说,对视图的操作就是对表的数据,所以我们可以把视图当作表。 例:往视图插入一条数据。 mysql> INSERT INTO PEOPLE_VIEW VALUES(NULL, 'Kerry', '33'); Query OK, 1 row affected (0.00 sec) 插入数据成功后查看视图,如图19所示。 图19 可以在视图上看到我们刚刚插入的数据,现在我们就来验证一下真实的表是否也会作出变化,如图20所示。 图20 可见,真实的表数据也已经有所改变,刚刚往视图里插入的那一条数据存在于真实表中,真理便是:对视图的操作就是对表的数据。 删除视图 mysql> DROP VIEW PEOPLE_VIEW; Query OK, 0 rows affected (0.00 sec) 博文作者:GarveyCalvin 博文出处:http://www.cnblogs.com/GarveyCalvin/ 上一条: 剖析 redis 数据淘汰策略 下一条: Redis的应用
|