数据库教程:MySQL之终端Terminal(dos界面)管理数据库、数据表、数据的基本操作分享

MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”。现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的理解透彻,因为我本来就比较喜欢写代码。同时写出来这些文章,是想要给大家当个参考,希望也能对大家有所帮助,有所提升,这就是我为什么要写终端操作MySQL的文章了。

 

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

1、数据库(database)管理

1.1create创建数据库

1.2show查看所有数据库

1.3alter修改数据库

1.4use使用数据库

1.5查看当前使用的数据库

1.6drop删除数据库

2、数据表(table)管理

2.1 create 创建表

2.2 show显示表

2.3desc查看表结构

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

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

2.4.2alter修改表(列)字段

2.4.3delete删除表(列)字段

2.4.4rename重命名表名

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

3、数据的操作及管理

3.1增加数据(增)

3.2删除数据(删)

3.3修改数据(改)

3.4查询数据(查)

4、管理视图

1、数据库(database)管理

1.1create创建数据库

createdatabasefirstDB;

1.2show查看所有数据库

mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |firstDB| |mysql| |performance_schema| +--------------------+ 4rowsinset(0.00sec)

1.3alter修改数据库

alter命令修改数据库编码:

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

mysql>ALTERDATABASEtestDBCHARACTERSETUTF8; QueryOK,1rowaffected(0.00sec)

1.4use使用数据库

mysql>usefirstDB; Databasechanged

1.5查看当前使用的数据库

mysql>selectdatabase(); +------------+ |database()| +------------+ |firstdb| +------------+ 1rowinset(0.00sec)

1.6drop删除数据库

mysql>dropdatabasefirstDB; QueryOK,0rowsaffected(0.00sec)

2、数据表(table)管理

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

mysql>createdatabasetestDB; QueryOK,1rowaffected(0.00sec)

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

2.1create创建表

mysql>createtablePEOPLE( ->IDintAUTO_INCREMENTPRIMARYKEY, ->NAMEvarchar(20)notnull, ->AGEintnotnull, ->BIRTHDAYdatetime); QueryOK,0rowsaffected(0.01sec)

2.2show显示表

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

mysql>showtables; +------------------+ |Tables_in_testdb| +------------------+ |PEOPLE| +------------------+ 1rowinset(0.00sec)

2.3desc查看表结构

mysql>descPEOPLE ->; +----------+-------------+------+-----+---------+----------------+ |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|| +----------+-------------+------+-----+---------+----------------+ 4rowsinset(0.01sec)

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

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

mysql>ALTERTABLEKEYCHAINCONVERTTOCHARACTERSETUTF8; QueryOK,1rowaffected(0.02sec) Records:1Duplicates:0Warnings:0

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

mysql>altertablePEOPLEaddstarBOOL; QueryOK,0rowsaffected(0.02sec) Records:0Duplicates:0Warnings:0

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

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

mysql>descPEOPLE; +----------+-------------+------+-----+---------+----------------+ |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|| +----------+-------------+------+-----+---------+----------------+ 5rowsinset(0.00sec)

现在,你该相信我了吧?

2.4.2alter修改表(列)字段

mysql>altertablePEOPLEMODIFYstarint; QueryOK,0rowsaffected(0.01sec) Records:0Duplicates:0Warnings:0

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

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

mysql>descPEOPLE; +----------+-------------+------+-----+---------+----------------+ |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|| +----------+-------------+------+-----+---------+----------------+ 5rowsinset(0.00sec)

2.4.3delete删除表(列)字段

mysql>altertablePEOPLEDROPcolumnstar; QueryOK,0rowsaffected(0.02sec) Records:0Duplicates:0Warnings:0

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

mysql>descPEOPLE; +----------+-------------+------+-----+---------+----------------+ |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|| +----------+-------------+------+-----+---------+----------------+ 4rowsinset(0.00sec)

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

2.4.4rename重命名表名

mysql>RENAMETABLEPEOPLETONEW_PEOPLE; QueryOK,0rowsaffected(0.00sec)

2.4.5nullornotnull

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

mysql>ALTERTABLEPEOPLEMODIFYAGEINT(3)NULL; QueryOK,0rowsaffected(0.01sec) Records:0Duplicates:0Warnings:0

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

它的格式为:ALTERTABLE<TALBE_NAME>MODIFY<CLOUMN><NULL’OR’NOTNULL>

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

mysql>createtablenewTableselect*fromPEOPLE; QueryOK,0rowsaffected(0.01sec) Records:0Duplicates:0Warnings:0

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

mysql>showtables; +------------------+ |Tables_in_testdb| +------------------+ |PEOPLE| |newTable| +------------------+ 2rowsinset(0.00sec)

3、数据的操作及管理

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

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

3.1增加数据(增)

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

insertinto命令添加数据:

mysql>insertintoPEOPLEVALUES(null,'Anny',22,'1992-05-22'); QueryOK,1rowaffected(0.00sec)

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

mysql>select*fromPEOPLE; +----+------+-----+---------------------+ |ID|NAME|AGE|BIRTHDAY| +----+------+-----+---------------------+ |1|Anny|22|1992-05-2200:00:00| +----+------+-----+---------------------+ 1rowinset(0.00sec)

数据表现在有一条数据。

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

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

3.2删除数据(删)

delete命令删除数据:

mysql>deletefromPEOPLEwherename='Lisa'; QueryOK,1rowaffected(0.01sec)

再次查询PEOPLE表:

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

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

3.3修改数据(改)

update命令修改数据:

mysql>updatePEOPLEsetname='Calvin'wherename='Garvey'; QueryOK,1rowaffected(0.00sec) Rowsmatched:1Changed:1Warnings:0

查询PEOPLE表内容:

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

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

3.4查询数据(查)

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

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

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

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

mysql>selectNAME,AGE,BIRTHDAYfromPEOPLE; +--------+-----+---------------------+ |NAME|AGE|BIRTHDAY| +--------+-----+---------------------+ |Anny|22|1992-05-2200:00:00| |Calvin|23|1991-05-2200:00:00| |Nick|24|1990-05-2200:00:00| |Rick|24|1991-05-2200:00:00| +--------+-----+---------------------+ 4rowsinset(0.00sec)

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

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

4、管理视图

创建视图

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

mysql>CREATEVIEWPEOPLE_VIEW( ->NAME,AGE) ->ASSELECTNAME,AGEFROMPEOPLE;

创建成功后查看视图。

PEOPLEPEOPLE.AGEPEOPLE.BIRTHDAYPEOPLE.IDPEOPLE.NAME mysql>SELECT*FROMPEOPLE_VIEW ->; +--------+-----+ |NAME|AGE| +--------+-----+ |Anny|22| |Calvin|23| |Nick|24| |Rick|24| +--------+-----+ 4rowsinset(0.00sec)

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

mysql>DESCPEOPLE_VIEW; +-------+---------+------+-----+---------+-------+ |Field|Type|Null|Key|Default|Extra| +-------+---------+------+-----+---------+-------+ |ID|int(11)|NO||0|| +-------+---------+------+-----+---------+-------+ 1rowinset(0.01sec)

替换视图

创建或替换原有视图。

mysql>CREATEORREPLACEVIEWPEOPLE_VIEW(PEOPLE_ID,PEOPLE_NAME,PEOPLE_AGE)ASSELECTID,NAME,AGEFROMPEOPLE; QueryOK,0rowsaffected(0.00sec)

创建或替换后查看视图。

mysql>SELECT*FROMPEOPLE_VIEW; +-----------+-------------+------------+ |PEOPLE_ID|PEOPLE_NAME|PEOPLE_AGE| +-----------+-------------+------------+ |1|Anny|22| |2|Calvin|23| |4|Nick|24| |5|Rick|24| +-----------+-------------+------------+ 4rowsinset(0.00sec)

操作视图

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

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

mysql>INSERTINTOPEOPLE_VIEWVALUES(NULL,'Kerry','33'); QueryOK,1rowaffected(0.00sec)

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

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

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

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

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

删除视图

mysql>DROPVIEWPEOPLE_VIEW; QueryOK,0rowsaffected(0.00sec)

到这文章就结束了,希望对大家有帮助。

您可能感兴趣的文章:MySQL中一些常用的数据表操作语句笔记MySQL中复制数据表中的数据到新表中的操作教程mysql数据表中查找重复记录mysql导入导出数据库、数据表的方法MySQL数据表字段内容的批量修改、清空、复制等更新命令MySQL快速复制数据库数据表的方法MySQL数据库查看数据表占用空间大小和记录数的方法mysql中数据库与数据表编码格式的查看、创建及修改mysql修复数据表的命令方法Mysql数据表分区技术PARTITION浅析MySQL数据表基本操作实例详解

标签: 数据库 数据表 dos mina 操作 数据 界面 rm do SQL al rmi min

JS上传图片前实现图片预览效果的方法

JS控制弹出新页面窗口位置和大小的方法

上述就是数据库技术:MySQL之终端Terminal(dos界面)管理数据库、数据表、数据的基本操作分享的全部内容,如果对大家有所用处且需要了解更多关于mysql数据库学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/911959.html

(0)
上一篇 2021年10月25日
下一篇 2021年10月25日

精彩推荐