drop,delete与truncate的区别:
优先级: drop > truncate > delete
TRUNCATE 按行删除并不把删除操作记录记入日志保存(不可恢复)
DELETE 全部删除表内数据并可将删除操作记录在日志中,可以加where字句,可应用于table和view
DROP 删除整个表(结构和数据)再插入时自增长id又从1开始

复制基本原理流程
主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中,SQL线程执行binlog并通知存储引擎;
从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;
从:sql执行线程——执行relay log中的语句;

myisam与innodb的区别
1.InnoDB支持事物,而MyISAM不支持事物
2.InnoDB支持行级锁,而MyISAM支持表级锁
3.InnoDB支持MVCC, 而MyISAM不支持
4.InnoDB支持外键,而MyISAM不支持
5.InnoDB不支持全文索引,而MyISAM支持

myisam与innodb在select count(*)哪个更快,为什么?
myisam更快,因为myisam内部有一个计数器,可以直接调取

varchar与char的区别:
char是长度固定的,而varchar的长度是可以变化的
比如说存储字符串"abc":
char(10)表示存储的字符将占10个字节(包括7个空字符),大于10个字节时和varchar没区别则都将截掉超出部分
varchar(10)表示只占用3个字节的长度,当存储的字符等于或小于10时,都按实际长度存储

innodb有redo和undo两种日志...

MySQL binlog几种日志的区别
Statement:每一条会修改数据的sql都会记录在binlog中
Row:不记录sql语句上下文相关信息,仅保存哪条记录被修改
Mixedlevel: 是以上两种level的混合使用
在一条 SQL 操作了多行数据时, statement 更节省空间, row 更占用空间。但是 row模式更可靠

当 cpu 飙升到 500%时,先用 top 命令观察是不是 mysqld 占用导致的,如果不是,找出占用高的进程
如果是 mysqld 造成的看session情况,定位是不是有消耗资源的 sql 在运行找出消耗高的 sql并kill掉然后限制连接数或作出其他调整

mysqldump和xtranbackup的区别:
一般来说 100G 内的库,可以考虑使用 mysqldump。轻巧灵活备份出来的文件比较小,压缩之后更小
100G 以上的库,可以考虑用 xtranbackup。比 mysqldump 要快

表:
约束
自增长:auto_increment
非空:not null
默认值:default 'xx'
唯一:unique
指定字符集:charset //例:charset utf-8
主键:primary key

增:
create table students(
id int(15) auto_increment,
name varchar(10) not null,
sex varchar(3) default '',
age char(2),
address varchar(50),
phone char(11) not null unique,
primary key(id));
mysql> desc students;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(15) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| sex | varchar(3) | YES | | | |
| age | char(2) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
| phone | int(11) | NO | UNI | NULL | |
+---------+-------------+------+-----+---------+----------------+
mysql> insert into students (name,sex,age,address,phone) values('zhangsan','男',26,'广东省珠海市香洲区',13356789124);
mysql> insert into students (name,sex,age,address,phone) values('金正南','女',54,'广东省珠海市拱北区',15844551634);
mysql> insert into students values('','金三胖','男',58,'朝鲜',14444444444);
mysql> insert into students values('','小泉纯一郎','男',78,'日本',14445554444);
mysql> insert into students values('','朴槿惠','女',60,'韩国',14445554774);
mysql> select * from students;
+----+------------+------+------+-----------------------------+-------------+
| id | name | sex | age | address | phone |
+----+------------+------+------+-----------------------------+-------------+
| 1 | zhangsan | 男 | 26 | 广东省珠海市香洲区 | 13356789124 |
| 2 | 金正南 | 女 | 54 | 广东省珠海市拱北区 | 15844551634 |
| 3 | 金三胖 | 男 | 58 | 朝鲜 | 14444444444 |
| 4 | 小泉纯⟼ 男 | 78 | 日本 | 14445554444 |
| 5 | 朴槿惠 | 女 | 60 | 韩国 | 14445554774 |
+----+------------+------+------+-----------------------------+-------------+

insert into student (name,money,sex,phone) values ('hk',10000,'男',188);
insert into student values('','小明',100,'',120);

删:
drop table tablename;     #删除整张表,操作会被记录
truncate tablename;        #删除整表数据,自增长id从头再来,快速,从磁盘直接删除,不可恢复
delete from student         #删除整个表的数据,自增长继续

查:
SELECT * from students limit 5;      #查询前5条
SELECT id,name,sex,money,phone from students;      #指定查询的字段
SELECT * from students where sex='男' and money>100;      #多个条件,必须同时满足
SELECT * from students where sex='男' or sex='未知' ;      #多个条件,有一个满足即可
SELECT * from students where sex !='男';      # <>也是不等于
SELECT * FROM students where addr like '%东京%';      #模糊匹配,%代表的是通配符,必须得用like
SELECT * from students a where stu_name like '姚_';      #_通配符表示任意一个单字符,姚字后面只能跟一个字
SELECT * from students ORDER BY money desc;      #order by xxx desc,根据哪个字段排序,默认是升序,降序是desc,升序asc
select * from table order by id desc,name desc;      #多个字段排序

改:
alter table oldtable rename newtable;        #改表名
alter table tablename modify name varchar(20);    #改表结构
alter table tablename change name newname varchar(20);   #改表结构
alter table tablename add age float after name;    #在name后面新增age字段
update student set money=100;    #不指定条件,修改所有
update student set money=110 where name='hk';    #只改hk

备份库:
mysqldump -u root -p mysql > ~/mysql.sql
还原库:
mysql -u root -p web < ~/web.sql
备份表:
mysqldump -u root -p 数据库名 表名 > xxx.sql
恢复表:
mysqldump -uroot -p 数据库名 < xxx.sql

mysql试题的更多相关文章

  1. mysql 试题总结

    一.MySQL的复制原理以及流程 1.复制基本原理流程 1.主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 2.从:io线程——在使用start sla ...

  2. Mysql试题集锦

    1.一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 1 ...

  3. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  4. php面试题之五——MySQL数据库(基础部分)

    五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($query)操作的结果,mysql_num_rows( ...

  5. 乐视mysql面试题

      http://blog.itpub.net/28916011/viewspace-2093197/ 最近,朋友去乐视面试了mysql DBA,以下是我据整理的乐视mysql面试题答案,供大家参考 ...

  6. 数据库笔试面试题库(Oracle、MySQL等)

    数据库笔试面试题库(Oracle.MySQL等) 版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作. 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料. ⊙ ...

  7. [面试] mysql 面试题

    最近在准备面试,mysql 实在是不熟悉,就先摘录一些网上的面试题来看一下. 1. MyISAM 和 InnoDB 区别? InnoDB 支持事务处理,支持更大的并发update 和 insert 操 ...

  8. MySQL高级知识(七)——索引面试题分析

    前言:该篇随笔通过一些案例,对索引相关的面试题进行分析. 0.准备 #1.创建test表(测试表). drop table if exists test; create table test( id ...

  9. Linux运维必会的MySQL企业面试题大全

    (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...

随机推荐

  1. Tests of the Equality of Two Means

    Introduction In this lesson, we'll continue our investigation of hypothesis testing. In this case, w ...

  2. module.exports和exports.md

    推荐写法 具体解释可以往后看. 'use strict' let app = { // 注册全局对象 ... } ... // 封装工具箱 exports = module.exports = app ...

  3. cgi、fastcgi及php-fpm分别是什么

    cgi cgi是通用网关接口定义.当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器.接下来PHP解析器会解析php.ini文件,初始化执行环境, ...

  4. Python 简单的文件上传功能

    简单地在程序当前目录下上传一张图片: 1.png 到程序的 yuan 文件夹下.这里使用的是固定参数 post,如果后期有需求,可以增加判断来更加完善程序. # server 端 import soc ...

  5. 怎么在ReactNative里面使用Typescript

    今天来搞一搞怎么搭建一个可以使用Typescript的ReactNative环境好吧,一句废话不多说,直接开始好吧 1.全局安装create-react-native-app yarn global ...

  6. 【代码笔记】Web-ionic-安装及第一个app

    一,下载ionic v1.0.1版本,下载地址为:ionic-v1.0.1.zip. ionic 最新版本下载地址:http://ionicframework.com/docs/overview/#d ...

  7. 【读书笔记】iOS-后台运行模式

    苹果在关于后台模式的文档中称:“这个配置项应该尽可能少的使用,而且最好只给那些提供通知服务的应用使用.如果有在后台运行的替代方法,就应该使用替代方法.比如,如果应用能使用显著位置变化接口来接受位置变动 ...

  8. 安卓开发ScrollView嵌套ListView只显示一行

    在用列表控件做一个“更多功能”的界面的时候 <?xml version="1.0" encoding="utf-8"?> <ScrollVie ...

  9. Android6.0源码下载编译刷入真机

    编译环境是Ubuntu12.04.手机nexus 5,编译安卓6.0.1源码并烧录到真机. 源码用的是科大的镜像:http://mirrors.ustc.edu.cn/aosp-monthly/,下载 ...

  10. Sql Server 增加字段、修改字段、修改类型、修改默认值

    1.修改字段名: alter table 表名 rename column A to B 2.修改字段类型: alter table 表名 alter column 字段名 type not null ...