MySQL笔记(一)

概述

连接

客户端连接:mysql [-h 127.0.0.1] [-P 3306] -u root -p+密码

SQL通用语法

1.sql语句可以单行或多行书写,以分号结尾
2.sql语句可以使用空格/缩进来增强语句的可读性
3.MYSQL数据库的SQL语句不区分大小写,关键字建议使用大写
4.注释:
单行#注释内容
多行/*注释内容*/

分类:

数据定义语言DDL:定义数据库对象(数据库、表、字段)
数据操纵语言DML:对数据库表中的数据进行增删改
数据查询语言DQL:查询数据库中表的记录
数据控制语言DCL:创建数据库用户,控制数据库的访问权限

DDL

DDL-数据库操作

查询所有数据库:show databases;
查询当前数据库:select database();
创建数据库:
create database [if not exists/*不存在则创建,存在则不做任何操作*/] 数据库名 [default charset 字符集/*指定utf8、utf8mb4或其他*/] [collate 排序规则];
删除数据库:
drop database [if exists] 数据库名;
使用数据库:use 数据库名;

DDL-表操作

查询当前数据库所有表:show tables;
创建表
create table 表名(
    字段一 字段类型[comment 字段一注释],
    字段二 字段类型[comment 字段二注释],
    字段三 字段类型[comment 字段三注释],
    字段四 字段类型[comment 字段四注释],
    字段五 字段类型[comment 字段五注释]
)[comment 表注释];
查询表结构:desc 表名;
添加字段:
alter table 表名 add 字段名 类型(长度)[comment 注释][约束];
修改字段数据类型:alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和数据类型:alter table 表名 change 旧字段名 新字段名 新类型(长度)[comment 注释][约束];
删除字段:alter table 表名 drop 字段名;
修改表名:alter table 旧表名 rename to 新表名;
删除表:
drop table [if exists] 表名;
truncate table 表名;#删除数据再创建新表

数值类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DML

增加数据insert

1.给指定的字段添加数据:
insert into 表名(字段1,字段2,....)value(值1,值2,....);

2.给全部字段添加数据:
insert into 表名 value(值1,值2,....);

3.批量添加数据:
insert into 表名(字段1,字段2,....)value(值1,值2,....),(值1,值2,....),(值1,值2,....);
insert into 表名value(值1,值2,....),(值1,值2,....),(值1,值2,....);
插入的字符串和日期数据应该包含在引号内

修改数据update

update 表名 set 字段名1=值1,字段名2=值2,....[where 条件];
修改语句的条件可以没有,代表修改整张表的所有数据

删除数据delete

delete from 表名[where 条件]
没有where会删除整张表
delete语句不能删除某一字段的值(可以使用update,将某一字段置为null即可)

DQL

select 字段名 from 表名 where 条件 group by 分组 having 分组后的条件列表 order by 排序字段列表 limit 分页参数

简单查询

select 字段1,字段2....from 表名;
select * from 表名;
设置别名:select 字段1[as 别名1],字段2[as 别名2]....from 表名;
去重:select distinct 字段 from 表名;

条件查询

select 字段列表 from 表名 where 条件列表;
> 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
<>!= 不等于
between....and.......范围之间(包含最小值也包含最大值)
in(...) 在in之后的列表中的值,多选一
like 占位符 模糊匹配(_匹配单个字符,%匹配任意字符)
is null 是null#注意null的比较用is 或者 is not null
and 或者 && 并且
or 或者 || 或者
not 或 ! 非

分组查询

聚合函数
count 统计数量 #统计数量用count(*)
max 最大值
min 最小值
avg 平均值
sum 求和

select 聚合函数(字段列表) from 表名;
null不参与聚合函数计算

分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名[having 分组后的过滤条件];
where对分组之前的数据进行过滤,不满足where条件,不参与分组;having 是对分组之后的结果进行过滤
where不能对聚合函数进行判断,having可以
where>聚合函数>having 
分组之后查询字段一般为聚合函数和分组字段,查询其他字段无意义

排序查询

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
支持多字段排序,第一个字段相同则按照第二个字段进行排序

排序方式
asc 升序(默认)
desc 降序

分页查询

select 字段列表 from 表名 limit 起始索引,查询记录数;
注意:
起始索引从0开始,起始索引=(页码-1)*每页记录数
分页查询是数据库的方言,不同数据库有不同的实现
如果查询的是第一页数据,起始索引可以省略

DQL语句的执行顺序(区别与编写顺序)

编写顺序:select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数

执行顺序:
1.from  2.where 3.group by 4.select 5.order by 6.limit

DCL

DCL用来管理数据库用户,控制数据库的访问权限

DCL-用户管理

1.查询用户

use mysql;
select * from user;

2.创建用户

create user '用户名'@'主机名' identified by '密码';

3.修改用户密码

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

4.删除用户

drop user '用户名'@'主机名';

DCL-权限控制

all,all privileges 所有权限
select 查询数据权限
insert 插入数据权限
update 修改数据权限
delete 删除数据权限
alter  修改表权限
drop   删除数据库/表/视图权限
create 创建数据库/表 权限

1.查询权限

show grant for '用户名'@'主机名';

2.授予权限

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

3.撤销权限

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chp的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值