让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)

泱泱大国,物阜民丰——仓库MySQL之旅

码神学习第十六天

1、MySQL的命令英文全称:

答:desc + 表名:显示数据表的结构(descend,降序)

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数据类型:

答:2.1 整型

整型有五种类型:

tinyint(1个字节)、smallint(2个字节)、mediumint(3个字节)、int(4个字节)、bigint(5个字节),取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0-256)。

2.2 浮点型(float和double)

float(m, d)(8位精度,4个字节)和double(m, d)(16位精度,8个字节),m为总个数,d为小数位。如float(5, 3),插入一个数123.4567,实际数据库里存储的是123.457,但总个数还是以实际为准,为6位。

2.3 字符串(char,varchar,_text)

char(固定长度,最多255个字符)、varchar(可变长度,最多65535个字符)、tinytext(可变长度,最多255个字符)、text(可变长度,最多216- 1个字符)、mediumtext(可变长度,最多224- 1个字符)、longtext(可变长度,最多232 - 1个字符)

2.4  二进制数据(_Blob)

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

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

2.5  日期时间类型:

date:日期 '2008-12-2'

time :时间 '12:25:36'

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

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

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

①null 数据列可以保存空值

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

③default 默认值

④primary key 主键

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

⑥unsigned 无符号类型

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

 

5、如果忘记了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服务,新密码就生效了。

 

5、MySQL索引:

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

①查看表中数据:

select * from + 表名

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第1张图片

②创建索引

A)create index index_name on table_name(column_list)

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第2张图片

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

 

③删除索引

A)drop index index_name on table_name

 

B)alter table + table_name drop index + index_name

 

④查看索引

show index from table_name

 

 

6、MySQL的聚合函数:

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

 

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

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第3张图片

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

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

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

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

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第4张图片

 

7、MySQL的字符串函数:

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

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第5张图片

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


3CONCAT(s1,s2...,sn)s1,s2...,sn连接成字符串

让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第6张图片
4CONCAT_WS(sep,s1,s2...,sn)s1,s2...,sn连接成字符串,并用sep字符间隔


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

让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第7张图片
6FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回strlist中的位置

让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第8张图片
7LCASE(str)LOWER(str)返回将字符串str中所有字符改变为小写后的结果

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第9张图片

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

让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第10张图片
9LEFT(str,x)返回字符串str中最左边的x个字符

让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第11张图片
10LENGTH(s)返回字符串str中的字符数

让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第12张图片
11LTRIM(str)从字符串str中切掉开头的空格


12POSITION(substr in str)返回子串substr在字符串str中第一次出现的位置


13QUOTE(str)用反斜杠转义str中的单引号


14REPEAT(str,count)返回字符串str重复x次的结果

让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第13张图片
15REVERSE(str)返回颠倒字符串str的结果


16RIGHT(str,x)返回字符串str中最右边的x个字符


17STRCMP(s1,s2)比较字符串s1s2


18TRIM(str)去除字符串首部和尾部的所有空格

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第14张图片

 

8、存储过程函数:

答:①创建存储过程:

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第15张图片

②查看存储过程:

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第16张图片

③调用存储过程:

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第17张图片

④删除存储过程:

 

 

作业:

要求:

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

 

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

①创建班级数据库classes

 

②给dbuser用户进行授权

 

③更新用户配置

 

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

 

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

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

 

②设置兴趣表,有列hobbysalary

 

③插入四条语句。

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第18张图片

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

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

 让我们一齐饱餐知识的盛宴——粮仓MySQL之旅(码神学习第十六天)_第19张图片

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;

你可能感兴趣的:(mysql,数据类型,聚合函数,格式化磁盘,mysql字符串函数)