Mysql面试题汇总:
一、Mysql命令:
1、Mysql的启动与停止:net start/stop mysql
2、登录:mysql -u root -p123456 -P 3306
3、登录后查看状态:status
4、显示所有数据库:show databases
5、切换到某个数据库:use db_name
6、显示某数据库中的所有表:show tables
7、备份数据库:mysqldump -uroot -p123456 db_name>test.txt
8、从sql导入:登录mysql->use db_name->source test.sql
9、修改密码:mysqladmin -u root -p旧密码 password 新密码
二、DDL 和 DML:
10、create:create database db_name/create table t_name(...)
11、drop:drop database ifexits db_name/drop table ifexits t_name
12、添加数据:insert into t_name(字段1,字段2...) values (值1,值2...);
13、更新:update table set 字段名 = ‘新值’[,字段2='新值'...] [where id=id_num] order by id [des]
14、删除:delete from t_name where 条件语句
15、为数据库创建用户:create user user1 identified BY {password}, user2 identified BY {password2} ...;
16、给用户授予某个表的控制权限:grant all ON db_name.t_name TO user_name [identified BY {password}]
17、增加字段:alter table t_name add column [col_name] [col_type];
18、指定位置插入某字段:alter table t_name add colomun [col_name] [col_type] after [next_col_name]
19、删除一个字段:alter table t_name drop column [col_name]
20、修改字段名称/类型:alter table change old_column new_column new_type
21、修改表名:alter table t_name rename to new_t_name;
22、清空并初始化表:truncate table t_name
三、函数与存储过程:
1、区别:
a、函数有且只有一个返回值,而存储过程有多个返回值,也可以没有返回值
b、函数只能有输入参数,而存储过程可以有多个in(入参)和out(出参)
c、存储过程更强大,可以实现复杂的业务逻辑,函数中不能使用insert,update,delete,create等语句
d、函数可以作为sql的查询语句使用,而存储过程只能,存储过程一般作为独立的部分来执行
2、触发器:触发器是一种特殊的存储过程,他的调用不是手动,而是有事件触发
a、触发器创建语句:
create trigger tri_name
before/after insert/update/delete on
table_name for each row
trigger_stmt
四、MySql常见数据库引擎:
MySql常见数据库存储引擎有两种:InnoDB和MyISAM
1、两种引擎的区别:
a、InnoDB 支持事务而MyISAM不支持。事务出错可以回滚保证了数据的安全性。
b、InnoDB支持外键MyISAM不支持
c、MyISAM适合插入查询为主的应用,InnoDB适合频繁修改对安全性要求比较高的应用
d、InnoDB不支持FULLTEXT索引
e、InnoDB不保存表的行数需要select count()来查询,MyISAM包含表的行数。但有where条件是也会全表扫描
f、InnoDB支持行锁
2、修改表的存储引擎:alter table t_name engine=InnoDB
3、数据库事务:是一组或多个数据库操作统一执行或撤销的操作,要么执行要么全都不执行