SQL经典面试题

这里写目录标题

  • [1 背概念](#1 背概念)
  • [2 学例子](#2 学例子)

1 背概念

1 事务 事务是最小的不可在分的工作单元,事务的操作要么同时成功,要么同时失败。

ACID: 原子性、一致性、隔离性、持久性

2 约束 主键约束;外键约束(少用,会增加程序的耦合性);唯一约束;非空约束

3 视图:视图是是表的一部分的集合,是保存在数据库中的已定义好的查询语句的结果集

create view vName as select name from table_name where condition;

3范式 关系数据库设计中一系列规范化的要求,逐步增强了数据的完整性和一致性。

1NF:数据表中的每个字段都必须是原子性的,不能再分解成更小的数据项。

2NF:在满足1NF基础上,非主键列不能依赖于部分主键,否则需将表拆分。

3NF:2NF的基础上,非主键列都不能依赖于其他非主键列,各字段之间没有传递依赖关系。

sql 复制代码
4分页limit:     limit  (page-1)*size,size  分别代表起始下标,显示记录数
-- 第21至30条记录: SELECT * FROM employees LIMIT 20,10;
删除:delete from 表名称 where 条件; drop table 表名称;
分组函数:MIN(); MAX(); COUNT(); AVG(); SUM();
单行函数:ABS(x),FLOOR(x) 返回小于或等于某个值的最大整数

5排序order by:默认升序,也可以设置成desc

SELECT last_name,hire_date FROM employees ORDER BY hire_date ;

去重 :select distinct name from user;

多表查询:外连接和内连接,等值连接和非等值连接,自连接和非自连接

外连接和内连接:内连接求两个表的交集(默认),外连接求补集,左外左边为主,右外右为主,满外连接Union关键字,返回一个并集,类似于A并B,会执行去重检索的操作

union all 返回并集加上交集 ,优点是效率比较高

等值连接和非等值连接:等:这多张表之间必须有相同的字段名,比方说一个表的主键是另一个表的外键 非等:SELECT last_name,salary,grade_level FROM employees e,job_grades j WHERE e.salary BETWEEN j.lowest_sal and j.highest_sal;

自连接和非自连接:自己多表自己自连接,一般很少自连接

6 jdbc:java连接数据库的一种标准,加载数据库驱动 --> 获得连接 --> 声明 SQL 语句对象 --> 执行语句对象, 接收查询结果 --> 关闭连接资源。

6 模糊查询:% 通配符

模糊匹配含有网:SELECT * from app_info where appName like '%网%';

模糊匹配网结尾:like '%网'; 模糊匹配网开头 like '网%'
6 乱码出现原因:数据库存在多种格式,比方说latin和utf-8,设置有问题

2 db和dbms的区别:db是数据库的缩写,dbms是数据库管理系统

1 sql中常用数据类型的分类:整数类型 int,浮点类型float、double,字符型char,varchar;日期类型:date;文本类型txt,二进制文件类型blob

显示表结构:DESCRIBE employees;

2 学例子

-- 建立一个数据表

sql 复制代码
create table employee(
  id int,
  name1 varchar(40),
  sex varchar(4),
  birthday date,
  entry_date date,
  salary decimal(8,2),
  resum text
);
sql 复制代码
drop table employee;
-- 插入数据
INSERT INTO employee(id,name1,sex,birthday,entry_date,,salary,resum)
VALUES(1,'zhangsan','male','1993-03-04','2016-11-10','1000','i am a developer');

-- 给某一列插入数据
INSERT INTO employee(id) VALUES (6);
SELECT * FROM employee;

-- 删除数据
DELETE from employee where job='zhangsan';
SELECT * from employee;
-- 删除所有数据,保存表结构
DELETE FROM employee;

-- 改数据,有东西才能改,没有东西改不成
INSERT INTO employee(id,name1,sex,birthday,entry_date,salary,resum)
values (1,'zhangsan','male','1993-03-04','2016-11-10','1000','i am a developer');
INSERT INTO employee(id,name1,sex,birthday,entry_date,salary,resum)
values (1,'aaa','male','1993-03-04','2016-11-10','1000','i am a developer');

-- 将所有员工工资修改为5000元
UPDATE  employee SET salary=5000;
-- 将张三员工工资设置为600
UPDATE employee SET salary=3000 where name1='张三';
-- 将aaa员工的薪水修改为4000元,id修改为2
UPDATE employee SET salary=4000,id=2 where name1='aaa'
-- 修改是可以做加减法的
UPDATE employee SET salary=salary+6000 WHERE name1='aaa';
相关推荐
Elastic 中国社区官方博客4 分钟前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
做运维的阿瑞31 分钟前
mysql数据库视图笔记:创建、修改、删除与适用场景
数据库·笔记·mysql
Seraphina3640 分钟前
DVWA(SQL Injection-High,XSS Reflected-Medium,XSS Stored-Medium)
数据库·经验分享·sql·网络安全·xss
@Mike@41 分钟前
12-数据库学习笔记(五种连接算法)
数据库·笔记·学习
Omics Pro1 小时前
之江实验室NAR|虚拟细胞3阶段训练范式
数据库·人工智能·算法·机器学习·自然语言处理
龙亘川1 小时前
探索智慧文化服务:建设初衷、整体架构、技术支撑、发展现状与实践影响
大数据·数据库·架构
风早爽太1 小时前
Python 学习笔记:数据库迁移工具 ‌Alembic
数据库·python·fastapi·alembic
2501_933670791 小时前
2027风控策略岗秋招准备:SQL、Excel、建模的优先级与项目路径
人工智能·sql·excel
java1234_小锋1 小时前
【技术专题】Mysql8 数据库 - Mysql8 数据库基本操作
数据库·mysql
其实防守也摸鱼2 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化