1、存储过程和函数的区别

存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。

2、Mysql的技术特点是什么?

Mysql数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛的应用程序编程接口和管理工具。

3、查看系统信息的SQL语句有哪些?

查看系统信息

 show status;
show variables;
show global variables;
show global variables like '%version%';
show variables like '%storage_engine%'; 默认的存储引擎



4、Mysql服务器默认端口是什么?

Mysql服务器的默认端口是3306。

5、与Oracle相比,Mysql有什么优势?
  • Mysql是开源软件,随时可用,无需付费。
  • Mysql是便携式的
  • 带有命令提示符的GUI。
  • 使用Mysql查询浏览器支持管理
6.导入数据库的SQL语句是什么?
  • 导入方法一:mysql -uroot -p123456 ceshi(数据库名)< ceshi.sql
  • 导入方法二:use ceshi;source /root/ceshi.sql



7、导出数据库的SQL语句是什么? mysqldump -u 用户名 -p 数据库名 > 导出的文件名



8、如何查看mysql的警告信息:


mysql> show warnings; 查看最近一个 sql 语句产生的错误警告



9、如何获取当前的Mysql版本?


SELECT VERSION();

用于获取当前Mysql的版本。

10、如何在linux服务器中配置mysql的慢查询?
# vim /etc/my.cnf
[mysqld]
slow_query_log = 1  #开启慢查询日志
slow-query-log-file=/var/lib/mysql/slow.log  #这个路径对 mysql 用户具有可写权限
long_query_time=5  #查询超过 5 秒钟的语句记录下来

# vim /etc/my.cnf
[mysqld]
slow_query_log = 1  #开启慢查询日志
slow-query-log-file=/var/lib/mysql/slow.log  #这个路径对 mysql 用户具有可写权限
long_query_time=5  #查询超过 5 秒钟的语句记录下来
11、主键和候选键有什么区别?


表格的每一行都由主键唯一标识,一个表只有一个主键。 主键也是候选键。 按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。

12、如何使用Unix shell登录Mysql?


我们可以通过以下命令登录: # [mysql dir]/bin/mysql -h hostname -u -p



13、MYSQL数据库服务器性能分析的方法命令有哪些?



mysql的like速度_mysql 函数返回表格

14、LIKE声明中的%和_是什么意思?


%对应于0个或更多字符,_只是LIKE语句中的一个字符。

15、常用的索引有哪些种类?



mysql的like速度_mysql的like速度_02

16、Mysql查询是否区分大小写?


不区分 SELECT VERSION(), CURRENT_DATE;

SeLect version(), 

current_date;

seleCt vErSiOn(), current_DATE;

所有这些例子都是一样的,Mysql不区分大小写。

17、LIKE和REGEXP操作有什么区别?


LIKE和REGEXP运算符用于表示^和%。 SELECT

 FROM employee WHERE emp_name REGEXP "^b";SELECT FROM employee WHERE emp_name LIKE "%b";


18、InnoDB是什么?


InnoDB,是MySQL的数据库引擎之一,它的特性是支持事务,并且采用多版本并发控制的方式来提高并发度,当一个事务全部完成,才会执行update.如果一段代码没有完成(及一个事务操作没有完成)它是不会update的,例如: 银行转帐,一 笔业务没有完成的时候,突然的断电,或是,网络,系统的原因使你无法完成此交易的话,这个事务是要回滚的此交易之前的状态的,没有完成交易,你银行的 money是不会减少的! 缺点是,innoDB的表执行起来速度较慢,但是安全!

19、Mysql如何优化DISTINCT?


DISTINCT在所有列上转换为GROUP BY,并与ORDER BY子句结合使用。 SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;



20、如何输入字符为十六进制数字?


如果想输入字符为十六进制数字,可以输入带有单引号的十六进制数字和前缀(X),或者只用(Ox)前缀输入十六进制数字。 如果表达式上下文是字符串,则十六进制数字串将自动转换为字符串。

21、如何显示前50行?


在Mysql中,使用以下代码查询显示前50行: SELECT FROM LIMIT 0,50;



22、mysql 中 varchar 与 char 的区别以及 varchar(50)中的 50 代表的涵义?
  • varchar 与 char 的区别: char 是一种固定长度的类型,varchar 则是一种可变长度的类型.
  • varchar(50)中 50 的涵义 : 最多存放 50 个字节
  • int(20)中 20 的涵义: int(M)中的 M indicates the maximum display width (最大显示宽度)for integer types. The maximum legal display width is 255.
23、什么是通用SQL函数?
  • CONCAT(A, B) - 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。
  • FORMAT(X, D)- 格式化数字X到D有效数字。
  • CURRDATE(), CURRTIME()- 返回当前日期或时间。
  • NOW() - 将当前日期和时间作为一个值返回。
  • MONTH(),DAY(),YEAR(),WEEK(),WEEKDAY() - 从日期值中提取给定数据。
  • HOUR(),MINUTE(),SECOND() - 从时间值中提取给定数据。
  • DATEDIFF(A,B) - 确定两个日期之间的差异,通常用于计算年龄
  • SUBTIMES(A,B) - 确定两次之间的差异。
  • FROMDAYS(INT) - 将整数天数转换为日期值。
24、1000w条数据,使用limit offset 分页时,为什么越往后翻越慢?如何解决?


先查主键,再分页。 select * from tb where id in(select id from tb where limit 10 offset 20)



25、Mysql中有哪几种锁?


MyISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁

  • 表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低
  • 行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高