MYSQL面试题

经典面试题1:

试问:select * from employees;
select * from employees where commission_pct like '%%' and last_name like'%%’;结果是否一样?并说明原因
答:结果不一样
select * from employees;是从employees中查询所有的数据
select * from employees where commission_pct like '%%' and last_name like'%%’;如果判断的字段有null值,则该语句出现问题。
如何改进呢?
select * from employees where commission_pct like '%%' or last_name like'%%’ or salary linke '%%' …………;(后面是该表中所有的字段名)因为主段不能为null,保证了代码的正确性。

### 常见 MySQL 面试题及答案 #### 1. 获取当前 MySQL 版本的方法 为了获取当前使用的 MySQL 数据库版本,可以通过执行如下 SQL 查询命令: ```sql SELECT VERSION(); ``` 这条语句会返回服务器的版本号以及其他有关的信息[^1]。 #### 2. CHAR 和 VARCHAR 类型的区别 `CHAR` 是固定长度字符串类型,而 `VARCHAR` 则是可变长度字符串类型。当定义了一个 `CHAR(10)` 字段并存入少于十个字符的数据时,剩余的空间会被填充为空格;相反地,对于 `VARCHAR(10)` 来说,则只会占用实际所需字节数再加上一个额外字节来保存真实长度。因此,在大多数情况下,如果列的最大可能大小已知且相对较小的话,应该优先考虑使用 `VARCHAR` 而不是 `CHAR`,因为这样可以节省存储空间。 #### 3. 一条 MySQL 语句执行的主要过程 - **客户端发送请求给服务端** - **解析器分析SQL语法结构** - **优化器决定最佳访问路径** - **执行引擎负责具体操作** - **缓存机制提高重复查询效率** 以上就是典型的 MySQL 语句处理流程概述[^2]。 #### 4. 如何区分大小写的比较方式 要在 MySQL 中实现严格区分大小写字母的匹配,可以在查询条件前加上 `BINARY` 关键词或者将待比较的内容包裹在 `BINARY()` 函数内。例如: ```sql -- 方法一:直接在字段名前加 BINARY SELECT * FROM table_name WHERE BINARY column_name = 'value'; -- 方法二:用 BINARY() 包围值 SELECT * FROM table_name WHERE column_name LIKE BINARY ('value'); ``` 这两种方法都可以确保对比时不忽略字母的大写形式差异[^3]。 #### 5. MyISAM 存储引擎的特点 MyISAM 是一种早期非常流行的 MySQL 存储引擎之一,它具有以下特性: - 支持全文索引功能; - 对读密集型应用表现良好; - 表锁定而非行锁定意味着并发更新能力较差; - 缺乏对外键约束的支持; - 更适用于那些只需要简单事务管理的应用程序环境。 尽管如此,由于 InnoDB 成为了默认选项并且提供了更多高级特性的支持,现在 MyISAM 已经逐渐被淘汰了[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值