最近准备一下面试,所以,重新走一遍基础。
1.删除命令
使用truncate 命令,清除表内数据,却不删除表结构;drop命令将删除表结构和数据;delete按照条件删除表数据,无条件时,可删除所有数据。
2.where子句
where子句是不区分大小写的,可以使用WHERE BINARY COLUMN区分大小写。
3.update语句
UPDATE tableName SET field = Replace(field,oldString,newString)替换某字段的部分字符串
4.SET FOREIGN_KEY_CHECKS
取消外键约束或添加外键约束,一般用在有外键约束时,修改表结构或删除表。先SET FOREIGN_KEY_CHECKS = 0;去除外键约束,在修改完后加回约束可以SET FOREIGN_KEY_CHECKS = 1;
5.set names utf8
使用show variebles like“character_set_%”; 查看数据库编码,使用set names utf8;改变数据库编码;
6.UNION [ALL | DISTINCT]
union 合并查询结果,默认去重合并,union all 为不去重合并, union distingct 去重(直接union);
7.GROUNP BY
分组查询,可以在分组的情况下进行SUM、COUNT、AVG等函数。
8.WITH ROLLUP
在分组的基础数据上进行计算
9. coalesce(a,b,c);
参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。
10.JOIN
INNER JOIN 内连接或等值连接:获得两张表匹配的数据。LEFT JOIN 左连接,获取左表所有数据,不管右表是否有匹配数据。RIGHT JOIN 右链接,与左连接相反。
11.NULL
判断为null 用 IS NULL ;判断不为NULL 用 IS NOT NULL;比较两个NULL用<=>;
12.事务性
查看用: show variables like 'autocommit'; ; 设置禁用用 SET AUTOCOMMIT=0 ;只有使用INNODB引擎,才支持事务;Spring 事务底层设置了禁用自动关闭;位置定位 org.springframework.jdbc.datasource.DataSourceTransactionManager 类的105行 给每一个con设置了false;
13.索引
索引分单列索引与组合索引。索引实际是一张表,该表保存了主键和索引字段,并指向实体表的记录。虽然大大提高了查询速度,同时却会降低更新表的速度,如对表进行insert、update和delete。更新时,不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。 创建索引:create index on ;alter add index ;创建表时直接指定;唯一索引
Hash 索引 : 只有Memory存储引擎会显示支持Hash索引;Memory表智存在内存中,断电会消失。适用临时表。Hash索引会把数据以hash形式组织起来,因此当查找某一条记录的时候,速度非常快。hash结构,每个键只对应一个值,而且是三列的方式,所以不支持范围查找和排序等功能;
B+Tree 索引:适合排序等操作,速度慢于hash。
14.赋值表
show create table name;获取创建表的结构。create table newname like sourcetable;复制表结构;create table newtable selete * from oldtable;复制表结构及数据到新表;
15.导出数据
selete ... into outfile
16.导入数据
load data local infile 。。。 into table name