MySQL数据库以及相关知识点总结大全_6(2),2024年最新靠着这份面试题跟答案

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

降序或升序
i.select * from tablename (where condition) (order by field desc/asc):按照field的desc(降序)/asc(升序)对查询结果进行显示。
示例:select * from forth_table order by age desc;//按照age的降序对查询结果进行显示。
j.select…limit row_count:对查询结果显示row_count行。
示例:select * from forth_table limit 3;//显示forth_table的前3行。

k.表连接
(1).内连接:找出相同的记录。(一般是多个表进行查询连接)
select tablename.fiedl1,tablename1.field1 from tablename,tablename1 where tablename1.field1 = tablename.field1:找出tablename及tablename1中,field1相同的记录。
示例:select second_table.name,third_table.name from second_table,third_table where second_table.name=third_table.name;//显示second_table及third_table中,name属性相同的记录。

(2).外连接
<1>左连接
select one_table.fiedl1,two_table.field1 from one_table left join on two_table onetable.field1 = twotable.field1:显示one_table、two_table中相同(符合one_table.field1=two_table.field1)的记录,同时会显示左表中(left前的one_table)与条件(one_table=two_table)不符的记录。
<2>右连接
select one_table.fiedl1,two_table.field1 from one_table right join on two_table onetable.field1 = twotable.field1:显示one_table、two_table中相同(符合one_table.field1=two_table.field1)的记录,同时会显示右表中(right后的two_table)与条件(one_table=two_table)不符的记录。

l.union及union all 及 distinct:

(1)union 去除重复
如:select name from second_table union select name from third_table;//将两个表的name显示到一个表中,会去除重复的记录。
(2)union all 不会去除重复
如:select name from second_table union all select name from third_table;//将两个表的name显示到一个表中,不会去除重复的记录。
(3) distinct关键字,用于去除重复的值
如:select distinct uname from user

m.子查询
select field… from tablename where condition (select field from tablename);

DCL(Database Control Language):数据库控制语言。如,分配数据库操作的权限
grant:对非root用户进行权限分配
grant select,insert on my_table.* to ‘chn’@’localhost’ identified by ‘123’;

9.mysql的数据类型
a.字符串类型:
(1)char(M):字符串。在不设置char的宽度时,默认宽度是1。字段值后的空格在存储时被去掉了。
(2)varchar(M):可变(自动变)宽度的字符串。主要指在存储时的具体长度。
注意:测试两者区别案例
create table test(name char(5),age varchar(5));
insert into values(‘1 ‘,’2 ‘);//注意1和2后各跟了3个空格
select length(name),lenght(age);//显示:1和3
(3)tinyblob:可表示的字符串范围:0-255bytes。
(4)blob:可表示的字符串范围是:0-65535bytes。
(5)mediumblob:可表示的字符串范围是:0-16777215bytes。
(6)longblob:可表示的字符串范围是:0-4294967295bytes。
(7)tinytext:可表示的字符串范围是:0-255字符。
(8)text:可表示的字符串范围是:0-65535字符
(9)mediumtext:可表示的字符串范围是:0-16777215字符
(10)longtext:可表示的字符串范围是:0-4294967295字符
(11)varbinary(M):长度是自定义的。二进制字符串。
示例:insert into forth_table set count=’10’;//count宽度是1,所以插入报错,因为超出了count的宽度1,’10’的二进制是1010,宽度是4。
(12)binary(M):长度是自定义的。二进制字符串。
b.数值类型
(1)tinyint:取值范围是0-255或-128-127
(2)smallint:取值范围是0-65535。
(3)mediumint:取值范围是0-16777215
(4)int(默认11位):取值范围是0-4GB
(5)integer:长度随着操作系统不同而不同
(6)bigint:取值范围,自查。
浮点数
(7)float:范围自查
(8)double:范围自查
定点数
(9)dec(m,d)(存储时以字符串形式存储,更精确):
(10)decimal(m,d):m是小数总位数,d是小数点后共几位,m精度,d标度
示例:insert into fifth_table set salary=1.345;//salary(4,3)
(11)bit(m):m是几位二进制
示例:insert into fifth_table set rank=2;//rank类型是bit(2);

c.日期时间型(出错所有位以0替代每一位)
date(最小值1000-01-01,最大值9999-12-31):示例:insert into fifth_table set day=’2016-11-21’;//插入2016-11-21时间

datetime()(最小值1000-01-01 00:00:00,最大值9999-12-31 23:59:59):示例:insert into fifth_table set daytimes=‘2016-12-21 15:00:00’;//插 入时间。如果格式与时间格式不符(可以多,但不可以少),直接改为当前时间格式。

timestamp(最小值19700101080001,最大值2038年的某个时刻):在插入时间时,不需要按照格式插入。默认值,不是空,是当前系统时间
示例:insert into fifth_table set yeardaytimes=‘20161121150707’;//插入时间,最后显示格式:2016-11-21 15:07:07

time(最小值-838:59:59,最大值838:59:59): 示例:insert into times_table set times=‘13:57:00’;

year(最小值1901,最大值2155): 示例:insert into times_table set years=‘2016’;

d.enum类型
enum:
示例:
create table ab(gender enum(‘M’,’F’));
insert into ab set gender=’M’;//gender只能被赋值‘M’或’F’
insert into ab set gender=’F’;
insert into ab values(‘M’,’F’),(‘n’,’l’);//插入了M,F,及M,M记录(不是’M”F’以’M’显示)

类型一些特性:
(1)zerofill(整数):用0补齐整形宽度位数。create table tablename(id int zerofill)

(2)auto_increment(整数):自动增长。对已经指定的字段,值会自动增长。
<1>create table tablename(id int auto_increment not null,primary key(id));
<2>create table tablename(id int auto_increment not null primary key);
<3>create table tablename(id int auto_increment not null,unique(id));
(3)default:对默认值进行修改,重新指定默认值。
create table db_s(info char default ‘不能为空’); //info的默认值是‘不能为空’,不是null了

10.运算符
a.算数运算符
+:
示例:
insert into sums values(12,13,age+height);//age和height类型是int。
select 1+3;

-:
示例:
insert into sums values(12,13,age-height);//age和height类型是int。

*:
示例:
insert into sums values(12,13,age*height);//age和height类型是int。

/,div:
示例:
insert into sums values(12,13,age div height);//age和height类型是int,第三个字段被插入了0。

%,mod:
示例:
insert into sums values(12,13,age%height);//第三字段被插入0,12%13=12;

b.比较运算符:
=:等于

<>、!=:不等于

示例:
select 1<>2;//显示1,代表true
select 1<>1;//显示0,代表false

<=>:NULL安全的等于
示例:
select null<=>null;//显示1
<:
<=:

:
=:
示例:
select 1<2,1<=2,1>2,1>=2;//显示1,1,0,0

between(存在指定范围):between min and max
示例:
select 11 between 10 and 20;//显示1
select 1 between 10 and 20;//显示0

in(存在于指定集合):
示例:
select name from web_table where name in(select name from a_b);
//显示web_table当中与a_b name相等的name。

is null(为null):
示例:
select 1 is null;//显示0,1不是null

is not null(不为null):
示例:
select 1 is not null;//显示1,1不是null

like:
select ’123456‘ like ‘123%’;//显示1,123456含有123

c.逻辑运算符
not或者!:非
示例:select not 0;//显示1,MySQL中,0是假,其他都是真。
and或&&:与
示例:select 44 && 0;//显示0
or或||:或
示例:select 13 or 0;//显示1
xor(异或):
示例:select 12 xor 12;//显示0,两个相同,为假,即0。两个数不同,为真,即1.

运算符的规定:
:=,||、OR、xor、&&,and,not,between

11.常用函数

a.字符串函数
(1)concat(s1,s2…):连接s1,s2…为一个字符串
示例:select concat(‘123’,’456’);//显示123456

(2)insert(str,x,y,instr):将字符串str从第x位置开始,y个字符长的子串替换为字符串instr;
示例:select insert(‘123’,1,3,’456’);//456,在第1个位置开始替换,数3个(包括1),是456.

(3)upper(str):将字符串str转换成大写
示例:select upper(‘abc’);//显示ABC

(4)lower(str):将字符串str转换成小写
示例:select lower(‘ABC’);//显示abc

(5)left(str,x):返回字符串str最左边的x个字符
示例:select left(‘abc’,1);//显示a,可以取超过str长度的字符串。最后是全部显示。

(6)lpad(str,n,pad):如果长度n小于str的长度,显示n个字符(str的字符)。如果长度n大于str的长度,显示原(n-str的长度)的pad字符+str。

(7)rpad(str,n,pad):如果长度n小于str的长度,显示n个字符(str的字符)。如果长度n大于str的长度,显示原str+(n-str的长度)的pad字符。

(8)ltrim(str):去掉str最左边的空格
示例:select ltrim(’ abc’);//显示abc,abc左边的空格被去掉了。

(9)rtrim(str):去掉str最右边的空格
示例:select ltrim(‘abc ‘);//显示abc,abc右边的空格被去掉了。

(10)repeat(str,x):重复字符串str,x次
示例:select repeat(‘abc’,2);//显示abcabc

(11)replace(str,a,b):用字符串b替换字符串str中所有的字符串a。
示例:select replace(‘abc’,’ab’,’vb’);//显示vbc

(12)strcmp(s1,s2):比较s1和s2大小,如果s1大于s2,返回1,如果s1小于s2,返回-1,如果s1等于s2,返回0
示例:select strcmp(‘a’,’b’);//显示-1
select strcmp(‘b’,’a’);//显示1
select strcmp(‘a’,’a’);//显示0

(13)trim(str):去掉字符串头尾的空格
示例:select trim(’ a ‘);//显示a,前后无空格了

(14)substring(str,x,y):返回从字符串str的x位置起,y个字符长度的子串。
示例:select substring(‘123’,1,2);//显示12

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
串。
示例:select substring(‘123’,1,2);//显示12

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-MFxZDJGd-1713338490854)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值