专栏【MySQL】 喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题殺
文章目录
关系型数据库⭐概念⭐特点
MySQL数据库的数据类型SQL通用语法SQL分类⭐DDL语句操作——数据库查询所有数据库(所有数据库的名字)查询当前数据库创建数据库创建数据库并设置字符集
删除数据库使用数据库
⭐DDL语句操作——表查询当前数据库的所有表
⭐创建表查询表结构查询指定表的建表语句
⭐DDL表操作——修改表修改数据类型修改字段名和字段类型修改表名删除字段添加字段删除表删除表,并且自动创建该表
⭐总结⭐DML语句——添加数据给 指定 字段添加数据给 全部 字段添加数据批量添加数据注意
⭐DML语句——修改数据注意
⭐DML语句——删除数据注意
⭐总结⭐DQL语句——查询数据基本查询查询多个字段设置别名去除重复记录
条件查询聚合函数注意
分组查询where和having的区别注意
排序查询注意
分页查询注意
⭐DQL语句——执行顺序⭐总结⭐DCL语句—用户管理查询用户创建用户修改用户密码删除用户注意
⭐DCL语句—权限控制查询权限授予权限撤销权限
⭐总结
内容有点多,建议大家先看目录。
关系型数据库
⭐概念
建立在关系模型基础上,由多张相互连接的二维表组成的数据库
⭐特点
使用表存储数据,格式统一,便于维护 使用SQL语言操作,标准统一,使用方便
MySQL数据库的数据类型
通过客户端,连接MySQL数据库管理系统(DBMS),然后通过SQL语句,通过数据库管理系统创建数据库 也可以通过SQL语句,通过数据库管理系统,在指定的数据库中创建表 在一个数据库服务器中是可以创建多个数据库的,而在一个数据库中,又可以创建多张表,在表中,我们又能存储一条一条的结构 所以数据库和表就是MySQL数据库的数据类型
SQL通用语法
SQL语句可以单行或多行书写,并且以分号结尾 SQL语句可以使用空格或缩进来增强语句的可读性 MySQL数据库的SQL语句不区分大小写,关键字建议大写 单行注释:–注释内容(或#注释内容) 多行注释:/ * 注释内容 * /
SQL分类
⭐DDL语句操作——数据库
查询所有数据库(所有数据库的名字)
show databases;
查询当前数据库
select database();
创建数据库
create database itcast;
可以加一个判断条件,如果不存在数据库的话,就创建一个,否则不创建
create database if not exists itcast;
创建数据库并设置字符集
create database 数据库名称 default charset 字符集;
删除数据库
drop database 数据库名称;
可以加一个判断条件,如果存在这个数据库,就删除,否则不删除 ;
drop database if exists 数据库名称
使用数据库
例如
use itcast;
表示我要切换到itcast数据库
⭐DDL语句操作——表
查询当前数据库的所有表
show tables;
⭐创建表
SQL写完后要加上分号,如果没有分号,那么就可以写多行
数据库里面的字符串类型是varchar()(()里面是字符串长度)不是string
查询表结构
查询 表 不是查询 数据库
desc 表名;
查询指定表的建表语句
show create table 表名;
⭐DDL表操作——修改表
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释];
修改表名
alter table 表名 rename to 新表名;
删除字段
alter table 表名 drop 字段名;
添加字段
alter table 表名 add 字段名 字段数据类型 [comment 注释];
删除表
drop table 表名;
可以添加一个判断条件
drop table if exists 表名;
删除表,并且自动创建该表
truncate table 表名;
为什么要这样子操作 虽然会重新创建该表,但是该表的所有数据都不存在了
⭐总结
⭐DML语句——添加数据
给 指定 字段添加数据
insert into 表名(字段名1,字段名2, ……) value(值1,值2);
给 全部 字段添加数据
insert into 表名 value (值1,值2);
批量添加数据
insert into 表名(字段名1,字段名2,……) value(值1,值2……),(值1,值2……),(值1,值2……);
或者
insert into 表名 value(值1,值2……),(值1,值2……),(值1,值2……);
注意
⭐DML语句——修改数据
update 表名 set 字段名1=值1,字段名2=值2,……[where 条件];
加上where,就是修改符合条件的数据,否则修改的是所有数据
注意
修改语句的条件(where)可以有,也可以没有,如果没有条件,那么会修改整张表的所有数据
⭐DML语句——删除数据
delete form 表名 [where 条件]
加上where,就是修改符合条件的数据,否则修改的是所有数据
注意
修改语句的条件(where)可以有,也可以没有,如果没有条件,那么会修改整张表的所有数据 ️delete语句不能删除某一个字段的值(但是可以用update删除)
⭐总结
⭐DQL语句——查询数据
基本查询
查询多个字段
select 字段1,字段2,字段3……form 表名;
select * from 表名;
设置别名
select 字段1 [AS 别名1],[AS 别名2]……from 表名;
去除重复记录
select distinct 字段列表 form 表名;
条件查询
select 字段列表 from 表名 where 条件列表;
条件
聚合函数
概念:就是将一列数据作为一个整体,进行纵向计算
select 聚合函数(字段列表) from 表名;
注意
null是不参与所有聚合函数的计算的
分组查询
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where和having的区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤 判断条件不同:where不能对聚合函数进行判断,而having可以
注意
执行顺序:where>聚合函数>having 分组之后,查询的字段一般是聚合函数和分组字段,查询其他字段没有意义
排序查询
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
️排序方式
asc 升序(默认) desc 降序
注意
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段排序
分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;
注意
⭐DQL语句——执行顺序
⭐总结
⭐DCL语句—用户管理
DCL可以用来管理数据库成员,控制数据库的访问权限
查询用户
use mysql;
select * from user;
可以直接查看用户表
创建用户
create user '用户名'@'主机名' identified by '密码';
修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
删除用户
drop user '用户名'@'主机名';
注意
主机名可以用%通配,使用%后,表明可以用任意主机进行访问
⭐DCL语句—权限控制
我们创建了用户后,我们会发现,用户可以登录上MySQL,但是不能访问任何的数据库,只能访问一个系统库 原因就是用户创建好了之后,并没有给用户分配权限
查询权限
show grants for '用户名'@'主机名';
授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
撤销权限
remove 权限列表 on 数据库名.表名 from '用户名'@'主机名';
⭐总结
殺如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正殺
文章链接
发表评论