MySQL基础篇(一)

本文介绍了SQL中的主要数据类型,如INT、BIGINT、DECIMAL、DATE/DATETIME和VARCHAR,以及它们在Java中的对应类型。详细阐述了MySQL的数据库操作,包括创建、使用、删除数据库,以及查询表、修改表结构等DDL操作。还涵盖了DML操作,如添加、修改和删除数据,以及DQL查询,包括基本查询、条件查询、聚合函数、分组和排序。最后,提到了DCL,即数据控制语言,用于管理用户和权限控制。
摘要由CSDN通过智能技术生成

SQL列的常用类型

MySQL;			|		Java;
INT				|		int
BIGINT			|		long
DECTIMAL		|		BigDecimal
DATE/DATETIME	|		java.util.Date
VARCHAR			|		String

数据库命令

/**查询所有数据库*/
show databases;

/**查询当前数据库*/
select database();

/**创建数据库*/
create database '数据库名称';
create database [if not exists] 数据库名称 [default charset 字符集] [collate 排序规则];

/**删除数据库*/
drop database [if exists] 数据库名称;

/**使用数据库*/
use 数据库名称;
DDL-表操作-创建
/**查询当前数据库所有表*/
show tables;

/**查询表结构*/
desc 表名;

/**查询指定表的建表语句*/
show create table 表名;

/**创建表字段*/
create table 表名(
	字段1 字段1类型[comment 字段1注释],
    字段2 字段2类型[comment 字段2注释],
    字段3 字段3类型[comment 字段3注释],
    …………
    字段n 字段n类型[comment 字段n注释],
)[comment 表注释];
DDL-表操作-修改
/**添加字段*/
alter table 表名 add 字段名 类型(长度) [comment 注释][约束];

/**修改数据类型*/
alter table 表名 modify 字段名 新数据类型(长度);

/**修改字段名和字段类型*/
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释][约束];

/**删除字段*/
alter table 表名 drop 字段名;

/**修改表名*/
alter table 表名 rename to 新表名;
DDL-表操作-修改
/**删除表*/
drop table[if exists] 表名;

/**删除指定表,并重新创建该表*/
/**删除表数据,表结构还在*/
truncate table 表名; 
DML-添加数据
/**给指定字段添加数据*/
insert into 表名(字段名1,字段名2,……) values(值1,值2,……);

/**给全部字段添加数据*/
insert into 表名 values(值1,值2,……);

/**批量添加数据*/
insert into 表名(字段名1,字段名2,……) values(值1,值2,……),(值1,值2,……),(值1,值2,……);
insert into 表名 values(值1,值2,……),(值1,值2,……),(值1,值2,……);

/**
注意:
- 插入数据数据是,指定的字段顺序需要与值的顺序是一一对应。
- 字符串和日期数据在引号中。
- 插入数据大小,应在字段的规定范围内。
*/
DML-修改数据
update 表名 set 字段名1 = 值1,字段名2 = 值2,……[where 条件];
/**注意:修改语句的条件可以有,可以没有,如果没条件将修改整张表数据库*/
DML-删除数据
delete from 表名 [where 条件]
/**
注意:
- DELETE语句的条件可以有,可以没有,如果没条件将删除整张表数据库。
- DELETE语句不能删除某一个字段的值(可以使用UPDATE)
*/
DQL-语法
select 
	字段列表 
from 
	表名列表 
	
where 
	条件列表 
	
group by 
	分组字段列表 
having 
	分组后条件列表 
	
order by
	排序字段列表
	
limit 
	分页参数

DQL-基本查询

1. 查询多个字段
select 字段1,字段2,字段3,…… from 表名;
select * from 表名;

2. 设置别名
select 字段1 [as 别名1],字段2 [as 别名2]…… from 表名;

3. 去除重复记录
select distinct 字段列表 from 表名;

DQL-条件查询

select 字段列表 from 表名 where 条件列表;
比较运算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
BETWEEH…AND…在某个范围之内(含最小值、最大值)
IN(…)在in之后的列表中的值,多选一
LIKE 占位符模糊匹配( _匹配单个字符,%匹配多个字符)
IS NULL是NULL
AND 或 &&并且( 多个条件同时成立)
OR 或 ||或者( 多个条件任意一个成立)
NOT 或 !非,不是
DQL-聚合函数
  1. 介绍

    将一列数据作为一个整体,进行纵向计算。

  2. 常见聚合函数

    函数功能
    count统计数量
    max最大值
    min最小值
    avg平均值
    sum求和
  3. 语法

    select 聚合函数(字段列表) from 表名;
    

注意:null值不参与所有集合函数运算。

DQL-分组查询
  1. 语法

    select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
    
  2. where 与 having区别

    • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
    • 判断条件不同:where不能对聚合函数进行判断,而having可以。

注意:

  • 执行顺序:where > 聚合函数 > having 。
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。

DQL-排序查询

  1. 语法

    select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
    
  2. 排序方式

    • ASC:升序(默认)
    • DESC:降序
DQL-分页查询
  1. 语法

    select 字段列表 from 表名 limit 起始索引,查询记录数;
    

注意:

  • 起始索引从0开始,起始索引= (查询页码 -1) * 每页显示记录数。
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10 。
DQL-执行顺序
/**编写顺序*/
SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数;

/**执行顺序*/
FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 SELECT 字段列表 ORDER BY 排序字段列表 LIMIT 分页参数;

DCL-介绍:

​ DCL全称Data Control Language(数据控制语言),用来管理数据库 用户、控制数据库的访问 权限。

DCL-管理用户
/**查询用户*/
USE mysql;
select * from user;

/**创建用户*/
create user '用户名'@'主机名' identified by '密码';

/**修改用户密码*/
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

/**删除用户*/
drop user '用户名'@'主机名';

注意:

  • 主机名可以使用 % 通配 。

  • 这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator 数据库管理员) 使用。

DCL-权限控制
MySQL中定义了很多中权限,但采用的就以下几种:
权限说明
ALL, ALL PRIVILEGES所有权限
SELECT查询数据
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库/表/视图
CREATE创建数据库/表
/**查询权限*/
show grants for '用户名'@'主机名';

/**授予权限*/
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

/**撤销权限*/
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

注意:

  • 多个权限之间,使用逗号分隔
  • 授权时,数据库名和表名可以使用 * 进行通配,代表所有。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值