SQL数据库基础

news2024/11/23 15:21:56

目录

1.SQL分类

2.SQL-DDL

2.1 数据库操作

查询

创建

删除

使用某个数据库

2.2 数据表操作

创建表

查询表

修改表

3.SQL-DML(增删改)

3.1 插入

3.2 修改

3.3 删除

4.SQL-DQL(查)

4.1 基础查询

4.2 条件查询

4.3 聚合函数查询

4.4 分组查询

4.5 排序查询

4.6 分页查询(MySql)

4.7.DQL执行顺序

5.SQL-DCL

5.1 用户管理

创建用户

修改密码

删除用户

5.2 用户权限

查询权限

授予权限

撤销权限


记录SQL数据库的学习笔记

1.SQL分类

基本分类如下表:

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户,控制数据库的访问权限

2.SQL-DDL

2.1 数据库操作

查询

查询所有的数据库

show databases;

创建

创建数据库

create database cat;

这样就代表创建成功了

drop database if exists cat;

也可以这样创建数据库

检测是否有此数据库,有则创建,没有则不创建,且不会报错

create database if not exists cat;

删除

删除数据库

drop database cat;

为了不报错可以这样,删除不存在的数据库时

drop database if exists cat;

使用某个数据库

use cat;

查询正在使用的数据库

select database();

2.2 数据表操作

创建表

create table tb_user(
    id int comment '标号',
    name varchar(50),
    age int,
    gender varchar(1)
) comment '用户表';

comment 注释可选可不选

查询表

查询所有的数据库中的表

show tables;

查询具体的表结构

desc tb_user;

查询具体的建表语句,为了看清楚注释

show create table tb_user;

修改表

 添加字段

alter table tb_user add password varchar(50) comment '密码';

修改字段名和字段类型

alter table tb_user 旧字段名 新字段名 varchar(255);

删除字段

alter table tb_user drop username;

修改表名

 alter table 旧表名 rename to 新表名;

删除表

drop table if exists 表名;

删除表并重新创建该表(删除了所有的字段,需要重新创建)

truncate table 表名;

3.SQL-DML(增删改)

3.1 插入

插入数据(根据字段插入)

insert into tb_user (id, name, age, gender) values (1,'张三',10,'男');

全部插入,必须要有所有的字段,且需要根据顺序

insert into tb_user values (2,'李四',10,'男');

3.2 修改

where 后面代表条件(如果不带条件,则会影响所有的数据)

update tb_user set name = '王五' where id = 1;

3.3 删除

delete from tb_user where id = 1;

4.SQL-DQL(查)

4.1 基础查询

查询所有字段

select * from 表名;

查询指定字段

select name,id,gender from 表名;

查询指定字段并起别名

select workaddress as '工作地址' from 表名;

查询指定字段并做去重处理

select distinct workaddress as '工作地址' from 表名;

4.2 条件查询

可以携带的条件

比较运算符号功能
>        大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN ... AND ...在某个范围之内(含最小值和最大值)
IN(...)在in之后的列表中的值,多选一
LINK 占位符模糊匹配('_'匹配单个字符,'%'匹配任意个字符)
IS NULL是NULL的字段
逻辑运算符功能
AND 或 &&并且(多个条件同时成立)
OR 或 ||或者(多个任意条件成立一个)
NOT 或 !

age小于20的所有数据

select * from emp where age < 20;

查询没有携带某个字段的数据

select * from emp where idcard is null;

配合not使用

select * from emp where idcard is not null;

between and 的使用(查询age在15--30的数据)

select * from emp where age between 15 and 30;

in的使用(下面二条命令得到的效果是一样的)

select * from emp where age=18 or age=20 or age=90;

select * from emp where age in(18,20,90);

模糊匹配(查询的name为3个字符的数据)

select * from emp where name like '___';

4.3 聚合函数查询

常见的聚合函数

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

语法:

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

查询age<30的所有数据总和 

select count(*) from emp where age < 30;

查询平均年龄

select avg(age) from emp;

4.4 分组查询

语法

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

where与having区别:

执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

判断条件不同: where不能对聚合函数进行判断,而having可以。

根据性别分组,统计男性员工和女性员工的数量 

select gender,count(*) from emp group by  gender ;

 

根据性别分组,统计男性员工和女性员工的平均年龄 

select gender, avg(age) from emp group by gender;

查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址

address_count是统计数量取得别名

select workaddress,count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;

4.5 排序查询

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

升序排序 (asc) 默认

 根据年龄升序排序

select * from emp order by age;

降序排序

select * from emp order by age desc;

4.6 分页查询(MySql)

不同数据库可能字段会不一样

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

查询前十条数据

select * from emp limit 0,10;

4.7.DQL执行顺序

①:from

②:where

③:group by,having

④:select

⑤:order by

⑥:limit

5.SQL-DCL

mysql数据库的user表在,mysql数据库下的user表中

5.1 用户管理

创建用户

刚创建的用户是没有任何权限的

只能在本机localhost访问

create user 'itcast'@'localhost' identified by '123456';

设置任意主机访问

create user 'itcast'@'%' identified by '123456';

修改密码

alter user 'itcast'@'localhost' identified with mysql_native_password by '123';

删除用户

drop user 'itcast'@'localhost';

5.2 用户权限

查询权限

show grants for 'root'@'localhost';

授予权限

给用户授予特定数据库的所有权限:

这将授予用户在指定数据库的所有权限,包括SELECT、INSERT、UPDATE、DELETE等。

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

给用户授予特定表的特定权限:

这将只授予用户在指定表中的SELECT和INSERT权限。

GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost';

给用户授予所有数据库的某些权限:

这将授予用户在所有数据库上执行CREATE、DROP和ALTER等操作的权限。

GRANT CREATE, DROP, ALTER ON *.* TO 'username'@'localhost';

给用户授予所有数据库的所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';

撤销权限

撤销用户对特定数据库的所有权限:

这将撤销用户在指定数据库上的所有权限。

REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';

撤销用户对特定表的特定权限:

这将撤销用户在指定表上的SELECT和INSERT权限。

REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'localhost';

撤销用户对所有数据库的所有权限:

REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1038316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

递归法求最大公约数

如果a或b不是不是正整数&#xff0c;则函数返回-1。 主程序样例&#xff1a; 这里给出主函数及对Gcd函数的调用样例&#xff1a; #include <stdio.h> int Gcd(int a, int b); int main() { int a, b, c; scanf(“%d %d”, &a, &b); c Gcd(a,b); if (c ! -1) {…

Python实战实例代码-网络爬虫-数据分析-机器学习-图像处理

Python实战实例代码-网络爬虫-数据分析-机器学习-图像处理 Python实战实例代码1. 网络爬虫1.1 爬取网页数据1.2 爬取图片1.3 爬取动态数据&#xff08;使用Selenium&#xff09; 2. 数据分析2.1 数据清洗2.2 数据变换2.3 数据聚合 3. 机器学习3.1 线性回归3.2 随机森林3.3 K-Me…

ElementUI之登陆+注册

一.什么是ElementUI 二.ElementUI完成用户注册登录界面搭建 使用命令npm install element-ui -S&#xff0c;添加Element-UI模块 导依赖 建立登录和注册页面 ​编辑 配置样式 编写登录页面&#xff08;Login&#xff09; 编写注册页面&#xff08;reginter&#xff09; …

结构体,联合体与位段

1.结构体的内存对齐(计算结构体的大小) 1.1 为什么需要结构体内存对齐? 原因1:平台原因 不是所有的硬件平台都能访问任意地址上的任意数据的&#xff1b;某些平台只能在某些地址处取得某些特定类型的数据&#xff0c;否则抛出硬件异常。 比如&#xff0c;当一个平台要取一个…

黑马程序员2023新版JavaWeb企业开发全流程学习笔记(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)

目录 零、Web开发一、HTML-CSS初识Web前端Web前端课程安排小结 HTML、CSS介绍HTML快速入门HTML小结VS Code开发工具基础标签 & 样式-合集&#xff08;拟新浪微博为例&#xff09;标题排版样式超链接 正文排版布局 表格、表单标签表格标签表单标签表单项 二、JavaScriptJS基…

车载软件架构 —— AUTOSAR Vector SIP包(三)

车载软件架构 —— AUTOSAR Vector SIP包(三) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在…

【计算机网络笔记四】应用层(一)DNS域名解析

因特网的域名空间是一棵倒着生长的树&#xff0c;各级域名由其上一级域名管理机构管理。 这种按等级管理的命名方法便于维护名字的唯一性&#xff0c;并且容易设计出一种高效的域名查询机制。 注意&#xff1a;域名只是个逻辑概念&#xff0c;并不代表计算机所在的物理地点 域…

10.mysql系统配置与启动选项

title: “mysql系统配置与启动选项” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” 启动选项与系统变量 启动选项 长格式与短格式 在执行启动脚…

el-tree实现表格方式菜单

<template><div class"table"><!-- default-expand-all 默认展开全部数据 --><!-- expand-on-click-node 只有点击箭头才会收缩节点 --><!-- check-on-click-node 点击文本选中 --><!-- show-checkbox 复选框 --><div class&…

Mybatis-分页插件

Mybatis-分页插件 前言一、分页插件的使用步骤1.添加依赖2.配置分页插件3. 分页插件的使用 前言 可以通过分页插件在实现以下前端样式时更加方便&#xff1a; 首页 上一页 2 3 4 5 6 下一页 末页 limit index,pageSize pageSize&#xff1a;每页显示的条数 pageNum&#xff…

TVP 专家谈腾讯云 Cloud Studio:开启云端开发新篇章

点击链接了解详情 导语 | 近日&#xff0c;由腾讯云 TVP 团队倾力打造的TVP 吐槽大会第六期「腾讯云 Cloud Studio专场圆满落幕&#xff0c;6 位资深的 TVP 专家深度体验腾讯云 Cloud Studio 产品&#xff0c;提出了直击痛点的意见与建议&#xff0c;同时也充分肯定了腾讯云 Cl…

虚拟机桥接模式下没有无线网卡选项

我以为是雷电模拟器占用了网卡的缘故&#xff0c;但想起之前可能修改了无线网卡的某些内容&#xff0c;于是到网络属性里面查看。 如下所示&#xff0c;原来是之前我不小心把这个红箭头指向的项目取消勾选了。

【数据结构】B树、B+树的知识点学习总结

目录 1、B树 1.1 定义 1.2 特性 1.3 查找操作 1.4 插入操作 1.5 删除操作 2、B树 2.1 定义 2.2 特性 3、B树与B树的对比 1、B树 1.1 定义 B树是一种平衡树数据结构&#xff0c;用于存储和访问大量数据。B树的每个节点可以存储多个键值&#xff0c;节点中的键值按照…

虚幻4学习笔记(15)读档 和存档 的实现

虚幻4学习笔记 读档存档 B站UP谌嘉诚课程&#xff1a;https://www.bilibili.com/video/BV164411Y732 读档 添加UI蓝图 SaveGame_UMG 添加Scroll Box 修改Scrollbar Thickness滚动条厚度 15 15 勾选 is variable 添加text 读档界面 添加背景模糊 添加UI蓝图 SaveGame_Slot …

Linux初识+环境部署

文章目录 版权声明Linux初识Linux的诞生Linux内核Linux发行版 环境部署vmcentosWSL-Ubuntu 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用&…

100天精通Python(可视化篇)——第102天:Pyecharts绘制多种炫酷关系网图参数说明+代码实战

文章目录 专栏导读一、关系网图介绍1. 关系网图是什么&#xff1f;2. 关系网图的应用场景 二、关系网图类配置选项1. 导包2. add函数3. 关系网络图的节点4. 关系网络图的边5. 节点分类的类目 三、关系网图实战1. 普通关系网图2. 复杂关系网图3. 带边信息的关系网络图4. 微博转发…

2023 年解锁物联网端点安全

物联网 (IoT) 和端点安全的融合已成为小型企业的关键焦点。这些企业正在努力保护其数字环境。物联网的集成彻底改变了运营流程。通过这样做&#xff0c;它们为创新和增长提供了前所未有的机会。然而&#xff0c;它也带来了无数的安全挑战&#xff0c;需要采取强有力的保护措施。…

(一)NIO 基础

&#xff08;一&#xff09;NIO 基础 non-blocking io&#xff1a;非阻塞 IO 1、三大组件 1.1、Channel & Buffer Java NIO系统的核心在于&#xff1a;通道&#xff08;Channel&#xff09;和缓冲&#xff08;Buffer&#xff09;。通道表示打开到 IO 设备&#xff08;例…

开关电源-交流220V降压电路-电阻电容降压原理

阻容降压原理 电容电阻降压的原理其实比较简单。它的工作原理是电容在交流信号的情况下&#xff0c;产生容抗来限制最大的工作电流。说白了就是电容使用它自己的通交流阻直流的性能&#xff0c;在交流信号输入时电容产生容抗。我们通过他的这个特性&#xff0c;可以设计出&…

Java基础(一)——Hello World,8种数据类型,键盘录入

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…