在Linux下学习MySQL

在Linux下学习MySQL

目录:

1、升降序排序命令英文全称:

2、MySQL在Linux上的Yum安装过程:

3、为什么需要格式化磁盘?

4、MySQL数据类型:

5、 数据类型属性的常用关键字及其含义:

6、忘记密码处理

7、MySQL索引:

8、MySQL的聚合函数:

9、MySQL的字符串函数:

10、存储过程函数:

11、练习


1、升降序排序命令英文全称:

答:(1)desc + 表名:显示数据表的结构(description)

(2)desc(descend,降序)

(3)asc(ascend,升序)

 

2、MySQL在Linux上的Yum安装过程:

答:①首先将本地的MySQL的rpm文件上传到虚拟机上;

alt + p进入文件传输 → lpwd查看外部主机目录 → lcd E:\\ 进入到外部主机的E盘 → lls 查看外部主机当前目录下的文件和文件夹 → put mysql57-community-release-el7-8.noarch.rpm 和 put mysql-community-server-5.7.13-1.el7.x86_64.rpm则将两个文件导入到Linux虚拟机中

②rpm -ivh解压文件(install-verbose-hash,安装显示安装进度);

#rpm -ivh mysql57-community-release-el7-8.noarch.rpm

③进入到yum源的配置文件夹中,要用yum,必须放在/etc/yum.repos.d的文件夹下,才能生效,yum配置文件必须.repo结尾;

#cd /etc/yum.repos.d/

④查看此文件夹下的列表

#ls

⑤因为可能存在配置文件之间的相互影响,所以备份一下CentOS.repo文件

#mv CentOS.repo CentOS.repo.bak

⑥清除Yum仓库的缓存

#yum clean all

⑦查看Yum仓库的情况

#yum repolist

⑧安装文件

#yum install mysql-community-server-5.7.13-1.el7.x86_64.rpm

安装成功!

 

3、为什么需要格式化磁盘?

答:因为各种操作系统都必须按照一定的方式来管理磁盘,而只有格式化才能使磁盘的结构能被操作系统认识。

格式化会把磁盘上已有的信息全部破坏。

格式化命令可以检查磁盘是否有缺陷,上面有多少空间可用;它还会建立一个目录表,用于存放将来写到该磁盘上的文件的有关信息。因此,在打算使用一个新磁盘之前,必须首先对它进行格式化。

对磁盘进行格式化时可以完成很多功能:在磁盘上确定接收信息的磁道和扇区,记录专用信息,如磁道标志(每个磁道一个)、扇区标志(每个扇区一个)和保证所记录的信息是准确的CRC位(循环冗余校验)。

 

4、MySQL数据类型:

答:(1)整型有五种类型:

tinyint(1个字节)、

smallint(2个字节)、

mediumint(3个字节)、

int(4个字节)、

bigint(5个字节),

取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0-256)。

(2) 浮点型(float和double):

float(m, d)(8位精度,4个字节)、:

double(m, d)(16位精度,8个字节),

m为总个数,d为小数位。如float(5, 3),插入一个数123.4567,实际数据库里存储的是123.457,但总个数还是以实际为准,为6位。

(3)字符串(char,varchar,_text)

char(固定长度,最多255个字符)、

varchar(可变长度,最多65535个字符)、

tinytext(可变长度,最多255个字符)、

text(可变长度,最多216- 1个字符)、

mediumtext(可变长度,最多224- 1个字符)、

longtext(可变长度,最多232 - 1个字符)

(4)二进制数据(_Blob)

①BLOB和_text存储方式不同,_TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。
②BLOB存储的数据只能整体读出。 
③TEXT可以指定字符集,_BLO不用指定字符集。

主要用于存放音频或者视频数据

(5)日期时间类型:

date:日期 '2008-12-2'

time :时间 '12:25:36'

datetime :日期 + 时间 '2008-12-2 22:06:44'

timestamp:时间戳,自动存储记录修改时间


5、 数据类型属性的常用关键字及其含义:

答:①null :数据列可以保存空值

②not null :数据列不允许包含空值

③default :默认值

④primary key :主键

⑤auto_increment :自动递增,适用于整数类型

⑥unsigned :无符号类型

⑦character set + name :指定一个字符集

 

6、如果忘记了MySQL的密码的话,可以有下面的方法解决:

答:修改MySQL的配置文件(默认为/etc/my.cnf),然后用vi my.cnf[mysqld]下添加一行skip-grant-tables。

②保存配置文件后,重启MySQL服务service mysqld restart.

③再次在命令行输入mysql -uroot -p,到输入密码时直接回车,就会进入MySQL数据库了就会进入MySQL数据库了,然后用flush privileges,刷新一下权限,这个时候用ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';来改密码,再用FLUSH PRIVILEGES;刷新下。

④密码修改完毕后,再按照步骤1中的流程,删掉配置文件中的那行,并且重启MySQL服务,新密码就生效了。

 

7、MySQL索引:

答:以下演示均来自建立的一个叫goods数据库中的表warehouse,里面有四列数据,goods_id,goods_number,goods_date,goods_price。

①查看表中数据:

select * from + 表名

 

图7.1 查看表中数据

②创建索引

A)create index index_name on table_name(column_list)

 

图7.2 创建索引

B)alter table + table_name add index + index_name(column_list)

 

图7.3 添加索引

③删除索引

A)drop index index_name on table_name

 

图7.4 删除索引

B)alter table + table_name drop index + index_name

 

图7.5 删除索引2

④查看索引

show index from table_name

 

图7.6 查看索引

 

8、MySQL的聚合函数:

①count(column_name):返回指定列中非NULL值的个数

 

图8.1 count函数示例

②avg(column_name):返回指定列的平均值

 

图8.2 avg函数示例

③min(column_name):返回指定列的最小值

④max(column_name):返回指定列的最大值

⑤sum(column_name):返回指定列的所有值之和

⑥group_concat(column_name):返回由属于一组的列值连接组合而成的结果,可以把列级数据转成行级(PS:concat,合并的意思)

 

图8.3 group_concat函数示例

 

9、MySQL的字符串函数:

答:(1ASCII(char)返回字符的ASCII码值

 

图9.1 ascii函数示例

2BIT_LENGTH(str)返回字符串的比特长度

图9.2 bit_length函数示例
3CONCAT(s1,s2...,sn)s1,s2...,sn连接成字符串

图9.3 concat函数示例
4CONCAT_WS(sep,s1,s2...,sn)s1,s2...,sn连接成字符串,并用sep字符间隔

图9.4 concat_ws函数示例
5INSERT(str,x,y,instr)将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果

图9.5 insert函数示例
6FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回strlist中的位置

图9.6 find_in_set函数示例
7LCASE(str)LOWER(str)返回将字符串str中所有字符改变为小写后的结果

 

图9.7 lower函数示例

(8)UCASE(str)UPPER(str)返回将字符串str中所有字符转变为大写后的结果

图9.8 upper函数示例
9LEFT(str,x)返回字符串str中最左边的x个字符

图9.9 left函数示例
10LENGTH(s)返回字符串str中的字符数

图9.10 length函数示例
11LTRIM(str)从字符串str中切掉开头的空格

图9.11 ltrim函数示例
12POSITION(substr in str)返回子串substr在字符串str中第一次出现的位置

图9.12 position函数示例
13QUOTE(str)用反斜杠转义str中的单引号

图9.13 quote函数示例
14REPEAT(str,count)返回字符串str重复x次的结果

图9.14 repeat函数示例
15REVERSE(str)返回颠倒字符串str的结果

图9.15 reverse函数示例
16RIGHT(str,x)返回字符串str中最右边的x个字符

图9.16 right函数示例
17STRCMP(s1,s2)比较字符串s1s2

图9.17 strcmp函数示例
18TRIM(str)去除字符串首部和尾部的所有空格

 

图9.18 trim函数示例

 

10、存储过程函数:

答:①创建存储过程:

 

图10.1 创建存储过程

②查看存储过程:

 

图10.2 查看存储过程

③调用存储过程:

 

图10.3 调用存储过程

④删除存储过程:

 

图10.4 删除存储过程

 

11、练习:

(1)linux上安装最新版的mysql数据库,创建普通用户dbuser

 

图11.1 创建用户

(2)创建班级的数据库,并把数据库授权给mysql使用,dbuser用户只能在本地网络192.168.13.0网段内连接数据库;

①创建班级数据库classes

 

图11.2 创建数据库

②给dbuser用户进行授权

 

图11.3 授权

③更新用户配置

 

图11.4 更新配置

dbuser用户只能在本地网络192.168.13.0网段内连接数据库;

 

图11.5 授权范围

(3)根据班级的人员结构,设计创建部门表,兴趣表(人员名字,电话,邮箱,爱好,人员ID,姓别,年龄,学校,及兴趣与部门关联表,并把数据录入数据库。

①设置部门表department,有列namephoneemailhobbyidsexage,插入五条数据

 

图11.6 创建部门表

②设置兴趣表,有列hobbysalary

 

图11.7 创建兴趣表

③插入四条语句。

 

图11.8 插入语句

④输出兴趣与部门关联表。

Select name,phone,email,hobby,id,sex,age,salary from department left join people on department.hobby=people.hobby2;

 

图11.9 查找

(4)通过编写一个函数,能通过人员ID得到平均年龄。

BEGIN
	DECLARE V_RESULT VARCHAR(20);
	DECLARE V_HOBBYNUM INT;
	DECLARE V_AVG INT;
	DECLARE V_NUM INT;
	SELECT COUNT(*) INTO V_NUM FROM people WHERE HOBBY = V_HOBBY;
	IF V_NUM=0 THEN
		SET V_RESULT='NO HOBBY EXIST!';
	ELSE 
		SELECT COUNT(*) INTO V_HOBBYNUM FROM department WHERE ID=(SELECT ID FROM people WHERE HOBBY=V_HOBBY);
		IF V_HOBBYNUM=0 THEN
			SET V_RESULT='NO HOBBY PEOPLE';
		ELSE
			SELECT AVG(AGE) INTO V_AVG FROM department WHERE ID=(SELECT ID FROM people WHERE HOBBY=V_HOBBY);
			SELECT CAST(V_AVG AS CHAR) INTO V_RESULT;
		END IF;
	END IF;
	RETURN V_RESULT;
END;

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值