1 数据类型
字符串str 时间datetime 数字 hash
2 表约束
主键primary key
外键foreign key
唯一 unique
非空 not null
默认值 default
3 常用sql语句
库操作:
show database;
create database 数据库名 charset=utf8;
use 数据库名;
drop database 数据库名;
select database();
表操作
show tables;
create tables students(id int auto_increament primary key
name varchar(10) not null
age int);
alter table students add|change|drop birthday datetime;
drop table students;
desc students; show create table students;
数据操作
select * from students where id >3;
insert into students(name,age) values(‘xiaoming’,12),(‘xiaohong’,12);
update students set name = ‘liudehua’ where id = 0;
delete from studnets where id =1;
select distinct name from students;
4 数据库存储引擎,事务,索引,锁机制
innodb 支持事务和外键,行锁
myisam 支持表锁
一个事务是一个连续的一组数据库操作
事务的特性:
事务有以下四个标准属性的缩写ACID,通常被称为:
原子性: 确保工作单元内的所有操作都成功完成,否则事务将被中止在故障点,和以前的操作将回滚到以前的状态。
一致性: 确保数据库正确地改变状态后,成功提交的事务。
隔离性: 使事务操作彼此独立的和透明的。
持久性: 确保提交的事务的结果或效果的系统出现故障的情况下仍然存在。
索引
虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
普通索引 唯一索引 外键索引 组合索引 全文索引
普通索引*
创建索引
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
CREATE INDEX indexName ON mytable(username(length));
如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。
修改表结构(添加索引)
ALTER table tableName ADD INDEX indexName(columnName)
创建表的时候直接指定
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);
删除索引的语法
DROP INDEX [indexName] ON mytable;