基础语法
create DATABASE RUNOOB;
:创建数据库drop database RUNOOB;
:删除数据库use RUNOOB;
:选择数据库CREATE TABLE table_name (column_name column_type)ENGINE=InnoDB DEFAULT CHARSET=utf8;
:创建数据表DROP TABLE table_name ;
:删除数据表INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
:插入数据SELECT column_name,column_name FROM table_name [WHERE Clause];
:查询数据UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause];
:更新数据DELETE FROM table_name [WHERE Clause];
:删除数据
知识点
LIKE:LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *
菜鸟教程上的例子:
SELECT * from runoob_tbl WHERE runoob_author LIKE '%COM';
UNION:UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据
排序: ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果
用法:
ORDER BY xxx ASC/DESC;
分组:GROUP BY 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 COUNT, SUM, AVG,等函数
用法:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
连接:
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录
- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录
- RIGHT JOIN(右连接: 获取右表所有记录,即使左表没有对应匹配的记录
事务
事务的四大特性原子性:不可分割的操作单元,事务中所有操作,要么全部成功;要么撤回到执行事务之前的状态
一致性:如果在执行事务之前数据库是一致的,那么在执行事务之后数据库也还是一致的
隔离性:事务操作之间彼此独立和透明互不影响。事务独立运行。这通常使用锁来实现。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度
持久性:事务一旦提交,其结果就是永久的。即便发生系统故障,也能恢复
事务处理:
BEGIN:开始一个事务
COMMIT:事务确认
ROLLBACK:事务回滚
索引
索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。虽然建立索引会大大提高检索速度,但会降低更新表的速度MYISAM 和 InnoDB(默认引擎) 存储引擎
InnoDB支持事务、外键,MYISAM不支持
InnoDB 跨平台可直接拷贝使用,MYISAM 不行
DELETE 表时,InnoDB 是一行一行的删除,MYISAM 是先drop表,然后重建表
MYISAM提供高速存储和检索,以及全文搜索能力,适合读多,写少;相反InnoDB 适合读少,写多
MYISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁
脏读、不可重读和幻读
- 脏读: