测试面试题

本文详述了MySQL的SQL语句分类、数据库与表的操作、数据操作以及查询技巧,涵盖DDL、DML、DQL和DCL。同时,讲解了Linux目录结构、vi编辑器使用、常用命令如ls、cat、grep、cp、mv等,并介绍了文件备份和压缩命令。此外,文章还涉及了测试面试中关于MySQL、Linux知识、自动化测试、接口测试、抓包和接口关联的常见问题,以及电子商务网站测试的重点和Linux命令的使用。
摘要由CSDN通过智能技术生成

一、MySQL

(一)、 SQL语句分类

​ DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。
​ DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)。
​ DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。
​ DQL(Data Query Language):数据查询语言,用来查询记录(数据)

(二)、数据库的操作

​ 1创建:CREATE DATABASE ;语句用于创建新的数据库:
​ 2查看:SHOW DATABASES;查看当前数据库服务器中的所有数据库SHOW DATABASES;
​ Show CREATE DATABASE mydb2; 查看前面创建的mydb2数据库的定义信息
​ 3修改:ALTER DATABASE mydb2 character SET utf8;查看服务器中的数据库,并把mydb2的字符集修改为utf8;
​ 4删除:DROP DATABASE mydb3;
​ 5其他语句
​ 查看当前使用的数据库
​ 6.sql SQL> Select database();
​ 切换数据库
​ 7.sql SQL> USE mydb2;

(三)、数据表的操作

​ 1.CREATE TABLE语句用于创建新表。

​ 2.DROP TABLE语句用于删除现有表。

​ 3.SHOW TABLES;查看表的字段信息

​ 4.ALTER TABLE employee ADD image blob;增加一列

​ 5.RENAME TABLE employee TO user;重命名

​ 6.ALTER TABLE user CHANGE name username varchar(100);修改表

​ 7.约束

	主键约束:primary key----来标识本行数据
	唯一约束:unique [key]----这列内容不能重复
    非空约束:not null-------这列内容不能为空
	默认约束:default--------指的是不指定的时候给的默认值
	外键约束:foreign key----
	自动增长:auto_increment---指的是每增加一条数据,本列的值会自动加1

(四)、表中数据的操作

1.insert插入操作

​ INSERT INTO 表名(列名1,列名2 …)VALUES(列值1,列值2…);

2.update修改操作

​ UPDATE 表名 SET 列名1=列值1,列名2=列值2 … WHERE 列名=值

3.delete删除操作

​ DELETE 表名 【WHERE 列名=值】

4.select查询操作

​ select * from 表名 where 列名=值

5.去重 distinct

​ SELECT DISTINCT sal FROM emp;

6.排序 order by
             SELECT * FROM stu ORDER BY sage; 默认升序,desc降序
7.聚合函数

​ COUNT():统计指定列不为NULL的记录行数;
​ MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
​ MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
​ SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
​ AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

8.分组查询 group by
       查询每个部门的部门编号和每个部门的工资和:
	   SELECT deptno, SUM(sal) FROM emp  GROUP BY deptno;  
	   查询每个部门的部门编号以及每个部门的人数: 
	   SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;
9.限定查询 limit
       查询5行记录,起始行从0开始
	   SELECT * FROM emp LIMIT 0, 5;
10.模糊查询 like

select sno from student where name like ‘_三%’;

11.多表查询
1.内连接

select 表1.列…,表2.列 from 表1 inner join 表2 on 连接条件

2.外连接
左外连接

​ 查询出的结果除了包含符合连接条件的记录以外,还包含左表中剩余的其他记录。
​ select 表1.列…,表2.列 from 表1 left join 表2 on 连接条件

 右外连接

		查询出的结果除了包含符合连接条件的记录以外,还包含右表中剩余的其他记录。
         select 表1.列...,表2.列  from 表1 right join 表2 on 连接条件
12.外键 Foreign Key

​ (常用于“一对多”关联关系) 被映射的键一定是主键

		创建外键的方式:
	在创建表的SQL语句中使用:
	constraint 约束名称 foreign key (充当外键的列名) references 主表名称 (与子表外键关联的列名
	修改时:
		alter table 表2 add
		constraint fk_a1_a2 foreign key(pid) references 表1(id);

	删除外键:
		alter table 表名称 drop foreign key 外键名;
13.字符函数
1 数值运算符和函数:

CEIL() 进一取整
DIV 整数除法
FLOOR() 舍一取整
MOD 取余数或取模
POWER() 幂运算 power(10,3);
ROUND() 四舍五入 round(15.78);
TRUNCATE 数字截取 (123.34,-2)—100

2 比较运算符和函数

[NOT] BETWEEN…AND… [不]在范围之内 select 2 between 1 and 3;
[NOT] IN() [不]在列出值范围内 select 1 in (1,2);
IS [NOT] NULL [不]为空 select 1 is null;

3 日期时间函数

NOW() 当前日期和时间
CURDATE() 当前日期
CURTIME() 当前时间
DATE_ADD() 日期变化 INTERVAL 365 DAY/YEAR/WEEK select date_add(‘2013-2-2’,interval 365 day);
DATEDIFF() 日期差值 ‘2014-3-20’ ‘2015-3-20’ select datediff(‘2013-2-2’,‘2014-2-2’);
DATE_FORMAT() 日期格式化 %m/%d/%Y select date_format(‘2013-2-2’,’%m/%d/%y’)

4 加密函数

MD5()—web加密----不可逆 使用MD5结果来判断
PASSWORD()—修改用户密码

14.where和having的区别

Where

where是一个约束声明,使用where来约束来自数据库的数据;

where是在结果返回之前起作用的;

where中不能使用聚合函数。

having:

having是一个过滤声明;

在查询返回结果集以后,对查询结果进行的过滤操作;

在having中可以使用聚合函数。

二、Linux

(一)、Linux目录结构

/boot :启动目录,内核存放地

/etc:配置文件存放地

/tmp:程序产生的临时文件

/home:用户的目录,新增用户账号时,用户的家目录都存放在此目录

/lib:库文件,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助

/bin:可执行文件和常用的Linux命令

/sbin:系统管理员的命令和工具

/usr:应用程序和文件的安装地

/mnt:挂接其他文件系统

/root:root帐户的home目录

/dev : 存放linux系统下的设备文件

(二)、vi使用:命令模式、插入模式、编辑模式。

vi

功能:生成新文件或者编辑、查看文件。

格式:vi file_name。

说明:上面的命令直接进入vi的命令模式。

从命令模式进入编辑模式

需要按i键或者a键:

1) i插入文本;

2) a追加文本。

使用ESC键可以从编辑模式进入命令模式。

(三)、命令模式

可执行的操作:

1):w 保存文件;

2):wq 保存并退出;

3):wq! 保存并强制退出;

4):q 退出;

5):q! 强制退出;

6)dd 删除一行文字;

7)x 删除一个字符;

8):n 光标移至文本第n行;

9)$ 光标移至文本的行尾;

10)G 光标移至文本的末尾;

11)/ 查找某个字符串。 /sdb

(四)、Linux管理文件和目录的命令

pwd 功能描述:打印用户当前所处的路径。 (print work directory) 在文本模式下,使用命令: [root@localhost ~]#pwd

cd

功能描述:改变用户所在目录。(change directory)

格式:cd <目录名>

[root@localhost ~]#cd … 返回到当前目录的上一级目录

[root@localhost ~]#cd 返回当前用户的主目录

[root@localhost ~]#cd /home 用路径切换到home目录

(五)、ls命令

功能描述:显示指定目录下的内容。(list directory)

格式:ls [参数] [目录或文件]

选项 含义

-a 列举目录中的全部文件,包括隐藏文件

-l 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、

文件是否是链接等

-r 逆向,从后向前地列举目录中内容

-R 递归,该选项递归地列举当前目录下所有子目录内的内容

-s 大小size:数据块

ls -l 1.txt 列举文件1.txt的所有信息

[root@localhost ~]#ls /home 显示指定目/home下的内容。

[root@localhost ~]#ls -l 显示当前目录的详细内容。

[root@localhost ~]#ls -a 显示当前目录下的说有文件,包括隐藏文件。

cat命令:显示文本内容

语法: cat 文本文件名字

例如:在屏幕上显示整个文件的内容: cat 1.txt

touch命令:创建文本(不能插入内容)

语法:touch 文本文件名字

例如:touch 12.txt

grep命令

功能:是在一堆文件中查找一个特定的字符串。

grep money test.txt

以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。

cp命令

功能描述:拷贝文件或复制文件。(copy)

格式:cp [源文件] [目标文件] [root@localhost ~]#ls

[root@localhost ~]#cp hello.txt file1.txt 把文件hello拷贝一份,命名为file1

[root@localhost ~]#ls

[root@localhost ~]#cp hello.txt /home/myfile.txt

把当前目录下文件hello拷贝到路径/home并命名为myfile

[root@localhost ~]#ls /home

选项 含义

-i 互动:如果文件将覆盖目标中的文件,他会提示确认

-r 递归:这个选项会复制整个目录、子目录以及其他

-v 详细:显示文件的复制进度

mv命令:可以对文件或者目录进行移动.

格式:mv [源对象] [目的对象]

选项 说明

-i 互动:如果选择的文件会覆盖目标中的文件,他会提示确认

-f 强制:不提示地移动文件

-v 详细:显示文件的移动进度

[root@localhost ~]#pwd

[root@localhost ~]#mv /dir1/myfile.txt /dir1/newfile.txt

将文件myfile.txt移动到新的目录下并改名为newfile.txt

[root@localhost ~]#ls /dir1

[root@localhost ~]#mv /home/a_dir /home/test/dir2

将目录a_dir移动到新的目录下并改名为dir2

[root@localhost ~]#ls /home

通过ls命令查看a_dir目录是否被移走

[root@localhost ~]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值