【数据库MySQL】-- 基础操作指令(DDL、DML、DQL、约束、多表查询、事务、存储引擎)

启动数据库: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;

你可能感兴趣的:(数据库MySQL,数据库,mysql)