MySQL入门基本知识
1、show databases;
查看服务器内的数据库
2、create database home;
创建数据库home
3、drop database home;
删除数据库home
4、grant all privileges on home.* to root@localhost identified by ‘12345678’;
创建操作数据库的专用用户root,创建新用户时使用grant命令,并设置密码12345678
5、 use home
指定使用的数据库
6、 select database();
显示现在使用中的数据库
7、 create table customer(birth date);
创建新表customer
8、show tables;
显示所有表
9、desc customer;
显示表customer结构
10、drop table Customer;
删除表
11、 id smallint unsigned auto_increment primary key,
username varchar(30) not null
);
12、group by
select sex from users group by sex;
查询结果分组
13、having
select sex ,age from users group by sex having age > 35;
带条件分组
14、order by
select * from users order by id desc;降序排列(由大到小)
对分组结果进行排序
15、limit
select * from users limit 2;限制返回两条数据
select * from users limit 3,2;返回第四条数据起两条数据
限制查询结果返回的数量
16、子查询
指出现在其他SQL语句内的SELECT子句;
例如: select * from t1 where col1=(select col2 from t2);
子查询可以返回标量、一行、一列或子查询
17、alter table
修改表结构
格式:alter table 表名 操作类型 属性 属性类型
操作类型:
rename 修改表名
add 添加
drop 删除
modify 修改
change
18、操作表的约束
约束关键字 | 含义 |
---|---|
not null | 约束字段不能为空 |
default | 设置字段的默认值 |
unique key | 约束字段的唯一性 |
primary key | 设置表的主键,作为唯一标识 |
auto_increment | 自动增加,自动编号 |
foreign key | 设置表的外键 |
格式:create table 表名( 属性名 属性类型 约束关键字 ,……..);
19、索引的操作
数据库对象索引主要为了提高从表中检索数据的速度,根据索引的存储类型,可以分为B型树索引(BTREE)和哈希索引(HASH)
(1)创建普通索引
格式
create table index_test(
depto int,
…….,
…….,
index 索引名(属性名)
);
如下
create table index_test(
depto int,
dname varchar(20),
loc varchar(40),
index index_deptno(depto)
);
(2)校验数据库表index_test是否索引创建成功
show create table index_test \G;
(3)校验数据库表index_test索引是否被使用
explain
select * from index_test where depto=1 \G;
(4)在已经存在的表上创建普通索引
格式:create index 索引名 on 表名 (属性名)
show create table index_test \g;
(5)通过SQL语句Alter table 创建普通索引
如:alter table index_test add index index_deptno(deptno);
(6)唯一索引
唯一索引就是创建索引时,限制索引的值必须是唯一的,这种类型的索引可以更快的检索速度
在index前面加 unique
如:unique index
on和where的区别
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录,只是显示null。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。