MySQL数据库命令之这玩意真香^<^~~~

注意:SQL语句分为四种类型,分别是DQL(数据查询语言),DML(数据操作语言),DDL(数据定义语言),TCL(事务控制语言),DCL(数据控制语言)

1.DQL(数据查询语言)(凡是带select关键字的都是查询语句)
2.DML(数据操作语言)(凡是对表中数据进行增删改操作的都是操作语句,如insert, delete, updata)
3.DDL(数据定义语言)(带有create,drop,alter主要对表结构进行操作的都是定义语言)
4.TCL(事务控制语言)(包括commit, rollback等都属于事务控制语言)
5.DCL(数据控制语言)(包括grant, revoke等都属于数据控制语言)

-----还有一点要注意,以下代码格式不属于标准代码格式,只作为模板参考即可。

以下分别对前三种类型进行总结:

1)登录mysql

  • 打开cmd(命令提示符),输入以下代码:

mysql -uroot -p123456

注:这里的“123456”指的是密码

2)mysql常用命令

  • 展示数据库

show databases;

  • 使用数据库

use 数据库名;

  • 展示数据库的表

show tables;

  • 展示数据库的表结构

desc 表名;

  • 显示当前数据库的版本信息以及连接用户名

select version(),user();

  • 退出MySQL

exit;

3)DQL(数据查询语言)

<1>单表查询
  • 查询表中全部数据

select * from 表名;

  • 查询表中部分数据;

select 列名1, 列名2, … from 表名;

  • 给表取别名;

select 列名1 as 新列名1, 列名2 as 新列名2, … from 表名

  • 查询表中部分数据中的特定数据(带条件)

select 列名1, 列名2, … from 表名 where 设置条件

设置条件的几种方式:
1, 表示等于: 列名 = 数值或其他;
2, 表示不等于: 列名 <> 数值或其他;
3, 表示大于或小于: 列名 > 数值或其他 或 列名 < 数值或其他;
4, 表示在两值之间: 列名 between 数值或其他 and 数值或其他;
5, 表示不为空或者为空: 列名 is not null 或 列名 is null;
6, 表示并且: 条件 and 条件;
7, 表示或: 条件 or 条件;
8, 表示包含 (相当于多个 or) : in(列名1,列名2,…);
9, 模糊查询:列名 like ‘相关字符+字母或数字’; #引号内的符号位置不唯一
10,模糊查询中的相关字符:
_ 下划线只能匹配一个字符
% 匹配任意个字符

  • 查询后进行排序

正序: select 列名1, 列名2, … from 表名 where 设置条件 order by 列明;
倒序:select 列名1,列名2, … from 表名 where 设置条件 order by 列明 desc;

  • 查询后对表中数据处理(单行处理)

select 函数名(列名) , … from 表名;

常见函数名:
1,变成小写字母 lower
2,变成大写字母 upper
3, 取长度 length
4, 去空格 trim
5, 取子串 substr(被截取的字符串,起始下标,截取长度)
6, 生成随机数 rand
7, 四舍五入 round
8, 设置千分位 format
注:主要是前五个使用较多

  • 分组查询后对表中数据处理(多行处理)

select 函数名(列名) , … from 表名 where 设置条件 order by 列名 ;

常见函数名(以下分组函数必须在分组之后才能使用):
1,求最小值 min
2,求最大值 max
3,求平均数 avg
4,求和 sum
5,计数 count

注:分组函数必须是在分组之后才能对数据进行操作, 即不能出现where当中

  • 对数据进行分组查询

select 函数名(列名), … from 表名 where 设置条件 group by 列名 ;

  • 对数据进行分组查询时设置条件(having当中可以出现分组函数)

select 函数名(列名) , … from 表名 where 设置条件 group by 列名 having 设置条件 ;

总结:

select 函数名(列名) , … from 表名 where 设置条件 group by 列名 having 设置条件 order by 列名;

执行顺序:

1, from
2,where
3, group by
4, having
5,select
6,order by
7,limit

<2>多表查询
  • 把查询结果去除重复记录

select distinct 列名 , … from 表名;

  • 内连接

select 新表名1.列名1, 新表名2. 列名2 … from 表名1 新表名1 join 表名2 新表名2 on 设置条件;

在这里插入图片描述

  • 外连接

左连接: select 新表名1.列名1, 新表名2. 列名2 … from 表名1 新表名1 left join 表名2 新表名2 on 设置条件;

右连接: select 新表名1.列名1, 新表名2. 列名2 … from 表名1 新表名1 right join 表名2 新表名2 on 设置条件;

  • 子查询

以下(select…)语句为另一个查询语句

select …(select…) from 表名 (select…) where 设置条件(其中结合select…);

  • 语句联合 union(条件是select后面列名 类型和数量 要相等)

select 列名1, … from 表名1 where 设置条件
union
select 列名2, … from 表名2 where 设置条件

  • 通用分页 limit

select 函数名(列名) , … from 表名 where 设置条件 order by 列名 limit 起始位置 ,长度;

4)DML(数据操作语言)

  • 向表中插入数据

insert into 表名(列名1 , 列名2…) values(对应列名1的插入值, 对应列名2的插入值…);

  • 向表中插入全部数据(包括全部列名)

insert into 表名 values(对应列名的插入值…);

  • 修改表中数据

update 表名 set 列名1=值1,列名2=值2,列名3=值3…where 设置条件;

注:没有设置条件,会导致表中数据全部更新;

  • 删除表中数据 (不彻底删除数据,可以回滚rollback)

delete from 表名 where 设置条件

注:没有设置条件,会导致表中数据全部删除;

  • 向表中插入多条数据

insert into 表名(列名1 , 列名2…)
values(对应列名1的插入值, 对应列名2的插入值…),
values(对应列名1的插入值, 对应列名2的插入值…),
values(对应列名1的插入值, 对应列名2的插入值…);

  • 复制表

create table 新表名 as select*from 表名;

  • 将查询结果插入另一张表中

insert into 另一张表的名 select * from 表名;

5)DDL(数据定义语言)

  • 表的创建

create table 表名(
列名1 数据类型(最大长度) 约束条件1
列名2 数据类型(最大长度) 约束条件2
列名3 数据类型(最大长度) 约束条件3

);

数据类型:
int----- 整型(最长11)
float----- 单精度浮点类型
double----- 双精度浮点类型
char-----定长字符串
varchar------可变长度的字符串(最长255)
bigint----- 相当于long
date----- 短日期类型
datetime----- 长日期类型
clob----- 字符大对象
blob----- 二进制大对象

约束条件:
1,非空约束----- not null
2,唯一性约束----- unique
3,主键约束----- primary key
4,外键约束----- foreign key
5,默认约束----- default(设置默认值)

  • 删除表

drop table 表名 if exists;

  • 删除表中数据(彻底删除数据,不可以回滚rollback)

truncate table 表名;

  • 增添表中字段(增加列)

alter table 表名 add 新列名 数据类型(最大长度);

6)事务

事务是指将一系列数据操作捆绑成为一个整体进行统一管理,把所有的命令作为一个整体一起向系统提交或者撤销造组偶请求。
事务属性:原子性,一致性,隔离性,持久性。
myISA存储引擎不支持事务。

  • 开启事务

start transaction;

  • 关闭事务自动提交

set autocommit=0;

  • 恢复自动提交

set autocommit=1;

  • 提交事务

commit;

  • 回滚事务(回到上一次的提交点)

rollback;

  • 设置事务隔离级别

set global transaction isolation level 事务隔离级别;

事务隔离级别:
1,读未提交----- read uncommitted(最低级别)
2,读已提交----- read committed
3,可重复读----- repeatable read
4,序列化/串行化 serializable(最高级别)

7)视图

视图是一种查看数据库中一个或多个表中数据的方法,视图是一种虚拟表,作为来自一个或多个表的行或列的子集创建的,视图充当查询中的表筛选器的角色。

  • 创建视图

create view 视图名 as select…

  • 删除视图

drop view 视图名;

  • 查看视图数据

select …from 视图名;

8)索引

索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

普通数据:允许重复和空值。
唯一索引:不允许出现重复,可以有多个唯一索引。
主键索引:非空,唯一。
复合索引:将多个列组合作为索引。
全文索引:可重复和空值。
空间索引:对空间数据类型的列建立的索引。

  • 创建索引

create 索引类型 index 索引名 on 表名 (创建索引的列);

alter table 表名 add index 索引名 (索引列);

  • 删除索引

drop index 索引名;

  • 查看索引

show index from 表名;

9)导入和导出数据库文件

  • 导入数据库文件·

source 文件绝对路径;

  • 导出数据库文件

mysqldump 库名 >绝对路径\文件名.sql

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值