mysql 语句
- 创建一个表
create table 表名(
字段名 字段类型 约束
);
create table student(
id int primary KEY ,
s_num int,
s_name VARCHAR(20),
s_age int,
s_sex char
);
自增的列必须是主键(primary key)或者唯一键(unique key)。
主键一定是唯一索引,唯一索引不一定是主键,主键和唯一索引的区别就是主键不可以为空,唯一索引可以为空
- 插入数据
insert 表名(字段名1,字段名2) values (字段值1,字段值2)
insert into tb_emp1(email)
values
('id')
注意:字段名这里是不用加引号的,括号要用英文的括号
索引
创建索引的好处:利用索引,mysql加速了where字句满足条件行的搜索,而在多表连接查询中,在执行连接时加快了与表中其他行的匹配速度。
Mysql索引主要有两种结构:B+Tree索引和hash索引。平常所得索引一般指的是B+Tree索引。
真实数据存在于子叶节点也就是最下的一层,非子叶节点不存真实的数据,只存储指引搜索方向的数据项。
使用explain关键字查询索引信息。
mysql添加索引:ALTER TABLE 表名 ADD INDEX 索引名称 (字段名);
mysql查看索引:show index from 表名;
//普通索引
alter table table_name add index index_name (column_list) ;
//唯一索引
alter table table_name add unique (column_list) ;
//主键索引
alter table table_name add primary key (column_list) ;
// 删除索引
drop index index_name on table_name ;
组合索引:如果分别给多个列创建索引,当使用这些列作为条件查询的时候,mysql只会用到其中一个他认为最有效率的单列索引,另外两个是用不到的,其实也就是一个全表扫描的过程。组合索引实行“最左前缀”的方式。
简单的理解就是只从最左边的开始组合,并不是只要包含这三列的查询都会用到该组合索引。也就是说name_city_age(LOGIN_NAME(16),CITY,AGE)从左到右进行索引,如果没有左前索引,mysql不会执行索引查询。
//创建索引的语句
ALTER TABLE student ADD INDEX ss (name,age,sex);
(联合查询:union查询就是把2条或者多条sql的查询结果合并成1个结果集,sql1查询N行,sql2查询M行,sql1 union sql2,返回M+N行,当且仅当sql1和sql2查询结果没有重复的情况下。)