mysql学习笔记一

一、DDL

DDL(Data Definition Language),数据定义语言,用来定义数据库对象(数据库,表,字段)

1、数据库操作

(1)查询操作

查询所有数据库
show databases;
查询当前所在数据库
select database();

(2)创建操作

create database [if not exists] 数据库名 [default charset 字符集] [collate排序规则];

(3)删除操作

drop database [if exists] 数据库名;

(4)使用数据库

use 数据库名;

2、表操作

(1)创建表

create table 表名(
字段名1  字段1类型[comment 字段1注释],
字段名2  字段2类型[comment 字段2注释],
......
字段名n  字段n类型[comment 字段n注释]

)[comment 表注释];

(2)查询操作

查询当前数据库所有表
show tables;
查询表结构
desc 表名;
查询指定表的创建语句
show create table 表名;

(3)修改操作

修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
修改表名
alter table 表名 rename to 新表名;

(4)删除操作

删除表
drop table [if exists] 表名;
删除指定表,并重新创建该表(清空表中数据)
truncate table 表名;

二、DML

DML(Data Manipulation Language)数据操作语言,用来对数据库表中的数据进行增删改

1、添加数据

(1)添加数据

给指定字段添加数据
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…);

注意:
字符串和日期型数据应该包含在引号内
插入数据的对象应该在字段规定范围内

(2)修改数据

update 表名 set 字段名1=值1,字段名2=值2,…[where 条件];

注意:
修改语句的条件可以有也可以没有,若没有条件则修改整张表的所有数据

(3)删除数据

delete from 表名[where 条件];

注意
delete语句不能删除某一个字段的值(可以使用update)

三、DQL

DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录

1、基本查询

(1)查询多个字段

select 字段1,字段2,字段3…from 表名;
select * from 表名;

(2)设置别名

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

(3)去除重复记录

select distinct 字段列表 from 表名;

2、条件查询

(1)语法

select 字段列表 from 表名 where 条件列表;

(2)条件

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

3、聚合函数

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

(1)常见的聚合函数

在这里插入图片描述

(2)语法

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

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

4、分组查询

(1)语法

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

(2)where与having区别

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

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

5、排序查询

(1)语法

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

(2)排序方式

ASC:升序(默认值)
DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

6、分页查询

语法

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

注意:
起始索引从0开始,起始索引=(查询页面-1)*每页显示记录数
分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit
如果查询的是第一页数据,起始索引可以省略

7、执行顺序

在这里插入图片描述

四、DCL

DCL(Data Control Language)数据控制语言,用来创建数据库用户、控制数据库的访问权限

1、管理用户

(1)查询用户

use mysql;
select * from user;

(2)创建用户

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

(3)修改用户密码

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

(4)删除用户

drop user ‘用户名’@‘主机名’;

注意:
主机名可以使用%通配

2、权限控制

(1)常用的权限:

在这里插入图片描述

(2)查询权限

show grants for ‘用户名’@‘主机名’;

(3)授予权限

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

(3)撤销权限

revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;

注意:
多个权限之间,使用逗号分隔
授权时,数据库名和表名可以使用*进行通配,代表所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值