共计 6965 个字符,预计需要花费 18 分钟才能阅读完成。
如果你会查询这些相关的问题,说明你是一个正在或者准备从事 IT 的程序猿,对于一个程序猿而言,不会使用 Linux 系统的程序猿不是一好的程序猿哦!因为 Windows 有时候真的让人很抓狂,而本人也相信没有什么习惯是不可以改变的。so 以下都是在 Linux 系统中的使用:
安装 MySQL 命令:$ sudo apt-get install -y mysql-server
查看 mysql 的版本命令:$ mysql -V (注意 - V 是大写,不然会出现如下错误)
启动 mysql 命令:$sudo service mysql start (其它关闭,重启等功能只需将 start 换成相应的 stop,restart 等字母即可)
该命令需要用有 root 权限才能使用,启动成功后并没有出现提示,对 linux 而已,no news is good news,所以别担心,它已经成功启动了。
(root 权限:若以“账号”的角度来看,它指的是“系统管理员”的身份,即为超级用户,拥有最高权限。若以目录的角度来看,它指的是“根目录”,即为“/”
显然本段指的为第一种情况:系统管理员。)
启动之后,进入 mysql 命令为:$ mysql -u用户名 -p密码
首次登陆,用户名一般都为 root,密码在安装完之后系统会提示你输入的。成功进入 mysql 之后,命令行中的提示符会变成“mysql>”。由于 mysql 命令与 linux 命令有点不同,因为 mysql 的命令总是以“;”作为结束的。这是需要稍微注意一下的。(以上的密码可以直接输在 - p 之后,也可以输在第二行,区别是第二行的密码以不可见的形式出现)
进入 mysql 之后,首先要查看一下数据库:> show databases; (注意分号“;”不要落下)
系统会自带几个数据,例如 performance_schema,information_schema,mysql。这几个自带的数据库最好不要删,以免它出异常。
查看了数据库之后有两种可能,要么自己新建设一个数据库,要么就是删除一个数据库,所以我将两者合在一起记录,使用的时候知道他们是同一级别就可以了。
新建一个数据库命令:> create database 数据库名称;
删除一个数据库命令:> drop database 数据库名称;(以下图片中以”fuck“这个数据库名称为实例)
为了配合下一步,我们选择建一个新的数据库,取名“newone”,那么问题来了,这么多数据库,假如你要往“newone”中加入一些数据,那么 mysql 是如何知道你要使用的是这个数据库,而不是其它的数据库呢?这就要使用命令:> use 数据库名称;
下图以数据库 newone 为例;成功切换数据库之后,系统会提示数据库已经切换。好比你在许多房的的旅馆里,旅馆老板给了你想要的那个房间的钥匙,那么现在你就可以自由进入那个房间了。
无论是新房还是旅店的房,我们进去之后,首先都应该查看一下状况。以旅馆为例:如床的摆设位置,光线是否充足,卫生间是否足够大,床上的被子是否被啪啪过有没有更换 etc。
对数据库而言也是如此,进来之后首先要查看一下数据库中的”表“(数据库中可以放很多表这是不容质疑的,就像房间里可以放置多种多样的家具一样,查看一下是否有没有表或你需要的表)。
查看表命令:> show tables; (由于是新建的表,就像新买的房,里面是空的。)
类似与为新房添加家具,我们要为数据库添加表:
建立一个新表:> create table 表名(字段参数); 或 >create table if not exists 表名(字段参数);
删除一个旧表:>drop table 表名 ; 或 >drop table if exists 表名;
下图以表名为 person 为例,关于字段参数,将在第二部分给予简短说明。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-05/131652p2.htm
字段参数以“(字段名 1 数据类型 1,字段名 2 数据类型 2,……)”的形式构建。
关于 MySQL 常用的数据类型,一下是比较常用的几种,想查阅比较详细的资料可以自寻去网上搜寻。
————————————————————————————————————————————————————————————————————
类型 说明
CHAR 1~255 个字符的定长串,它的长度必须在创建时指定,否则 MySQL 假定为 CHAR(1)
VARCHAR 可变长度,最多不超过 255 字节,如在创建时指定 VARCHAR(n),则可存储 0~n 个字符的变长串
TEXT 最大长度为 64K 的变长文本
LONGTEXT 同 Text,最大长度为 4GB(纯文本,一般不会到 4G)
ENUM 接受最多 64K 个串组成的预定义集合的某个串
SET 接受最多 64K 个串组成的预定义集合的零个或多个串
INT[(M)] 4 字节(整数值,有符号值:-2147683648 到 2147683647(- 2^31 到 2^31- 1)无符号值:0 到 4294967295(0 到 2^32 – 1))
DATE 4 字节(以年月日的格式显示日期,范围是 1000-01-01——9999-12-31)
TIME 3 字节(以时分秒的格式显示时间,范围是 -838:59:59——838:59:59)
DATETIME 8 字节(显示日期和时间,范围是 1000-01-01 00:00:00——9999-12-31 23:59:59)
BLOB 存储二进制数据类型,最大长度为 64KB。
说明:(1)TIME 时间范围居然有这么大的范围,特别是 time 可以取负值,这是 mysql 为了满足两个日期时间相减才这样设计的。
(2)BLOB 二进制数据类型是比较重要的数据类型,因为所有的图片,视频,音频文件都是以二进制进行存储的。
——————————————————————————————————————————————————————————————————————
新建一个表后,可以粗略的查看表的结构,命令为 :> desc 表名称 ; 或 >show columns from 表名称;
表的结构包括属性名,数据类型,是否为空值,是否设定 默认值等信息。
——————————————————————————————————————————————————————————————————————
也可以精细的查看表中的数据,使用的命名为:> select 字段名 1, 字段名 2, 字段名 3 ….. from 表名称;
而我们实际为了偷懒常用以下几个命令来查看它的内容,其实他们都是以上命令的变形或者扩 展,所以理解了上一行的命令,理解下面几个命令就很容易了。
如 这个命令:> select * from 表名称;
如查看表中第 n 到 m 行:> select * from 表名称 order by 字段名 limit n-1,m;
——————————————————————————————————————————————————————————————————————
向表中增加插入数据,使用的命令为:>insert into 表名称 (字段名 1,字段名 2,字段名 3 ……) values(字段名 1 的值,字段名 2 的值,字段名 3 的值 ……);
——————————————————————————————————————————————————————————————————————
增加有了,那么删除表中的数据肯定也是必须的,使用命令:>delete from 表名称 where 表达式;
其中表名称定位到哪个表,而表达式则定位到要删除的具体位置,表达式的形式是与字段名和其中数据有关的等式;
例如以下图中的 name=”Bob”,age=12,high=180 都是字段名相关。
——————————————————————————————————————————————————————————————————————
删除破坏往往最容易,那么如何修改其中的内容呢?比如你在输入的时候粗心而输入错误,事后发现就得进行修改它:
请使用命令:>update 表名称 set 字段名 =“新值” where 表达式;
下图将显示修改名称为“Ason”的 age 字段;将值 15 修改为 13;
——————————————————————————————————————————————————————————————————————
恩!看上去你已经可以慢慢开始学会操作数据库中的内容了,别急,还有许多东东需要学习的,学无止境,保持一颗饥渴的心最为重要。
现在我们看到的上面表中有三个字段了,分别是 name(姓名),age(年龄),high(身高),完美总是不断的在修改,才渐臻完美,假如你需要增加 / 删除一个 address(家庭地址)的字段。
增加字段请使用命令:>alter table 表名称 add 字段名 数据类型 其它 ; ( 其它包括默认初始值的设定等等)
删除字段请使用命令:>alter table 表名称 drop 字段名;
与此类似的结构还有:增加索引,加主关键词索引,删除索引 etc,请各自尝试不再赘述;
增加索引命令:>alter table 表名称 add index 索引名(字段名 1,字段名 2,字段名 3 …….);
加主关键子索引命令:>alter table 表名称 add primary key(字段名);
删除索引命令:>alter table 表名称 drop index 索引名;
索引的具体使用,请参考别人的文章:Mysql 索引类型总结和使用技巧
——————————————————————————————————————————————————————————————————————
一个简单的修改表的名称,请使用命令:>rename table 原表名 to 新表名;
——————————————————————————————————————————————————————————————————————
一个表,其中的内容杂乱无序往往缺少美感,对于大型数据库中大型表而言想要在其中寻找其中的东西简直是大海捞针,所以对表中的内容进行排序对于寻找数据就是事半功倍。
请使用命令:>select 字段名 1,字段名 2 …... from 表名称 order by 字段名 1,字段名 2 ……;
(第一个字段是需要显示的字段内容,而第二个字段是进行排序的字段,请不要混淆哦!)
——————————————————————————————————————————————————————————————————————
好啦!在下一节,将说下表的合并和备份。
如果你会查询这些相关的问题,说明你是一个正在或者准备从事 IT 的程序猿,对于一个程序猿而言,不会使用 Linux 系统的程序猿不是一好的程序猿哦!因为 Windows 有时候真的让人很抓狂,而本人也相信没有什么习惯是不可以改变的。so 以下都是在 Linux 系统中的使用:
安装 MySQL 命令:$ sudo apt-get install -y mysql-server
查看 mysql 的版本命令:$ mysql -V (注意 - V 是大写,不然会出现如下错误)
启动 mysql 命令:$sudo service mysql start (其它关闭,重启等功能只需将 start 换成相应的 stop,restart 等字母即可)
该命令需要用有 root 权限才能使用,启动成功后并没有出现提示,对 linux 而已,no news is good news,所以别担心,它已经成功启动了。
(root 权限:若以“账号”的角度来看,它指的是“系统管理员”的身份,即为超级用户,拥有最高权限。若以目录的角度来看,它指的是“根目录”,即为“/”
显然本段指的为第一种情况:系统管理员。)
启动之后,进入 mysql 命令为:$ mysql -u用户名 -p密码
首次登陆,用户名一般都为 root,密码在安装完之后系统会提示你输入的。成功进入 mysql 之后,命令行中的提示符会变成“mysql>”。由于 mysql 命令与 linux 命令有点不同,因为 mysql 的命令总是以“;”作为结束的。这是需要稍微注意一下的。(以上的密码可以直接输在 - p 之后,也可以输在第二行,区别是第二行的密码以不可见的形式出现)
进入 mysql 之后,首先要查看一下数据库:> show databases; (注意分号“;”不要落下)
系统会自带几个数据,例如 performance_schema,information_schema,mysql。这几个自带的数据库最好不要删,以免它出异常。
查看了数据库之后有两种可能,要么自己新建设一个数据库,要么就是删除一个数据库,所以我将两者合在一起记录,使用的时候知道他们是同一级别就可以了。
新建一个数据库命令:> create database 数据库名称;
删除一个数据库命令:> drop database 数据库名称;(以下图片中以”fuck“这个数据库名称为实例)
为了配合下一步,我们选择建一个新的数据库,取名“newone”,那么问题来了,这么多数据库,假如你要往“newone”中加入一些数据,那么 mysql 是如何知道你要使用的是这个数据库,而不是其它的数据库呢?这就要使用命令:> use 数据库名称;
下图以数据库 newone 为例;成功切换数据库之后,系统会提示数据库已经切换。好比你在许多房的的旅馆里,旅馆老板给了你想要的那个房间的钥匙,那么现在你就可以自由进入那个房间了。
无论是新房还是旅店的房,我们进去之后,首先都应该查看一下状况。以旅馆为例:如床的摆设位置,光线是否充足,卫生间是否足够大,床上的被子是否被啪啪过有没有更换 etc。
对数据库而言也是如此,进来之后首先要查看一下数据库中的”表“(数据库中可以放很多表这是不容质疑的,就像房间里可以放置多种多样的家具一样,查看一下是否有没有表或你需要的表)。
查看表命令:> show tables; (由于是新建的表,就像新买的房,里面是空的。)
类似与为新房添加家具,我们要为数据库添加表:
建立一个新表:> create table 表名(字段参数); 或 >create table if not exists 表名(字段参数);
删除一个旧表:>drop table 表名 ; 或 >drop table if exists 表名;
下图以表名为 person 为例,关于字段参数,将在第二部分给予简短说明。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-05/131652p2.htm
MySQL 中结构相同的两个表进行合并:(注意需要两个表的结构是一样的)
有如下结构的两个表 father 和 person。
合并的步骤为:
1. 把 person 表和 father 表两个表进行联合输出到临时表 tmp 中。
命令为:>create temporary table tmp select * from person union select *from father;
2. 创建结果表,并创建主键。
命令为:>create table resu(name varchar(20) primary key,age int,high int,address varchar(20));
3. 把临时表中重复数据过滤并写入 resu。
命令为:>insert into resu(name,age,high,address) select distinct name,age,high,address from tmp;
4. 删除临时表 tmp。
命令为:>drop table tmp;
思考:①是否可以只用以下一个命令:>create table tmp select * from person union select *from father;来创建新表呢?
②以上两个表都是来自同一个数据库,那么来自不同数据库的两个表又该如何合并呢?
③以上进行的是两个表的上下合并,那么左右合并呢?
——————————————————————————————————————————————————————————
关于 mysql 数据库备份,有许多中方法,这里选取使用命令参数备份。
需要注意的是数据库的备份需要在系统命令行下进行,而不是在 mysql 命令下进行的。
1. 导出整个数据库。
命令:$mysqldump -u用户名 -p 密码 数据库名 > 导出的文件名
备注:a. 密码可以在第二行以不可见的形式输入,这样最安全。
b. 导出的文件需要自己建立, 最好以.sql 格式结尾。
2. 导出一个表。
命令:$mysqldump -u用户名 -p 密码 数据库名 表名 > 导出的文件名
由以上可见,导出一个表与导出一个数据库大同小异常。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-05/131652.htm