启动数据库:net start mysql
MYSQL自带进入数据库:mysql -u root -p
windows命令行进入数据库:mysql -h localhost -P3306 -u root -p
创建用户:create user 用户名 identified by 密码
授予查询权限:grant select on 表名 to 用户
一、DDL(数据定义语言)
1、DDL-数据库操作
show databases; 展示所有的数据库
create database 数据库名; 创建数据库
use 数据库名; 使用数据库
select database(); 查询当前的数据库
drop database 数据库名; 删除数据库
2、DDL-表操作
show tables; 展示当前库的所有表
create table 表名 ( 创建表
字段 字段类型 comment '备注',
...
)comment '备注';
desc 表名; 查询表
show create table 表名; 查询表的建表语句
alter table 表名 (add[添加字段]/modify[修改字段类型]/change[修改字段名称]/drop[删除字段]/rename to[修改表名]); 修改表
drop table 表名; 删除表
二、DML(数据操作语言)
insert into 表名(字段1,字段2,...) values(值1,值2,...); 向表中添加数据
update 表名 set 字段1=值1,字段2=值2 [where 条件]; 修改数据
delete from 表名 [where 条件]; 删除数据
三、DQL(数据查询语言)
select
字段列表
from
表名
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表 ------------升序asc,降序desc
limit
分页参数-----------------起始索引(0),每页展示记录数
四、约束
primary key,auto_increment 主键,并且自动增长
not null,unique 不为空,并且唯一
check(...) 检查条件
default '...' 如果没有指定值,默认为..
五、多表查询
(一)连接查询
1、内连接(相当于查询A、B交集部分数据)
隐式内连接:select 字段列表 from 表1,表2 where 条件......;
显式内连接:select 字段列表 from 表1 [inner] join 表2 on 连接条件;
2、外连接:
左外连接:查询左表所有数据,以及两张表交集部分数据
select 字段列表 from 表1 left [outer] join 表2 on 条件.....;
右外连接:查询右表所有数据,以及两张表交集部分数据
select 字段列表 from 表1 right [outer] join 表2 on 条件.....;
3、自连接(当前表与自身的连接查询,自连接必须使用表别名)
select 字段列表 from 表A 别名A join 表A 别名B on 条件......;
(二)子查询
1、标量子查询(返回的结果是单个值【数字、字符串、日期等】,最简单的形式)
常用操作符:= > >= < <=
2、列子查询(返回的结果是一列【可以是多行】)
常用操作符:in not in any some all
in:在指定的集合范围内,多选一;
not in:不在指定的集合范围内;
any:有任意一个满足即可;
some:与any等同,使用some的地方都可以用any;
all:所有值必须满足;
3、行子查询(返回结果是一行)
常用操作符:= > in not in
4、表子查询(返回结果是多行多列)
常用:in
六、事务
方式一:
select @@autocommit; 查询事务的提交方式
set @@autocommit; 设置提交方式
提交事务:commit;
回滚事务:rollback;
方式二:
开启事务:start transaction 或 begin;
提交事务:commit;
回滚事务:rollback;
七、存储引擎(默认为innodb)
1、创建表时,指定存储引擎
create table 表名{
.....
}engine = innodb;
2、查看当前数据库支持的存储引擎
show engines;