sql学习

因为之前sql学的太烂了,想整理一下

一.什么是 SQL?

SQL 是用于访问和处理数据库的标准的计算机语言。

  • SQL 指结构化查询语言
  • SQL 使我们有能力访问数据库
  • SQL 是一种 标准计算机语言

二.SQL 能做什么?

  • SQL 面向数据库执行查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插入新的记录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限

三.sql分类

DQL(数据查询语言,用来查询记录(数据))

1.SELECT 语句

SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

SELECT 列名称 FROM 表名称


SELECT * FROM 表名称  (* :通配符,表示所有列)

 

注释:SQL 语句对大小写不敏感。SELECT 等效于 select。

SELECT TABLE_SCHEMA FROM COLUMNS

这里我们在columns这个表中查询table——schema这列

 

SELECT * FROM COLUMNS
查询columns这个表

2.WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
SELECT COLUMN_NAME FROM `COLUMNS` WHERE COLUMN_NAME='TABLE_SCHEMA'

这里是在columns这个表中查找column_name这一列当COLUMN_NAME='TABLE_SCHEMA'的时候

3.GROUP BY 语句

用于结合合计函数,根据一个或多个列对结果集进行分组。

简单来说就是select两列,一列用了函数,一列没有,然后用group by来组合一下

SELECT TABLE_NAME,sum(ORDINAL_POSITION) FROM `COLUMNS` group by TABLE_NAME

查询两列,一列是table_name,一列是ordinal_position求和

4.HAVING 语句

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

所以having 一定要有group by存在

SELECT TABLE_NAME,sum(ORDINAL_POSITION) FROM `COLUMNS` GROUP BY TABLE_NAME HAVING sum(ORDINAL_POSITION)>30

查询两列,table_name,还有ordinal_position求和,用group by来组合两列,用having来限制条件

5.limit

用来限定查询结果的起始行,以及总行数。

SELECT * from columns limit 0,5

从0开始查询,查询5条数据

DDL(数据定义语言,用来定义数据库对象:库、表、列等;)

1.create

CREATE DATABASE 语法:CREATE DATABASE database_name

create database mmm

创建一个名为mmm的数据库

SQL CREATE TABLE 语法

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

在mmm数据库中创建一个表名为persons 的表,其中有4列,每列容量都是255

2.drop

3.desc

查看表的结构

DML(数据操作语言,用来定义数据库记录(数据);)

1.INSERT INTO 语句

INSERT INTO 语句用于向表格中插入新的行。

语法

INSERT INTO 表名称 VALUES (值1, 值2,....)

我们也可以指定所要插入数据的列:

INSERT INTO 表名 (列1, 列2,...) VALUES (值1, 值2,....)

插入新的行

insert into mmm values('1','wy','18','women')

在mmm表中插入一行数据1,wy,18,women

 

在指定的列中插入数据

insert into mmm (sname,age)values('wwy','20')

在mmm表中插入一行,只有sname,age这两列有数据

 

2.UPDATE 语句

Update 语句用于修改表中的数据。

语法:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

更新某一行中的一个列

update mmm set sname='lll' where age='18'

更新snmae的值为lll当age的值为18的时候

 

 更新某一行中的若干列

UPDATE mmm set sname='123',age='30' WHERE gender='women'

更新mmm表中的sname为123,age为30 当gender=‘women’的时候

 

      

3.DELETE 语句

DELETE 语句用于删除表中的行。

语法

DELETE FROM 表名称 WHERE 列名称 = 值

删除行

DELETE from mmm where sname='123'

删除mmm表中的sanme为123的这一行

删除所有行

delete FROM mmm

删除mmm表中的所有行

DCL(数据控制语言,用来定义访问权限和安全级别;)

1.创建用户

语法:
CREATE USER ‘用户名’@地址 IDENTIFIED BY '密码';

CREATE USER 'user1'@localhost IDENTIFIED BY '123'

2.给用户授权

语法:
GRANT 权限 1, … , 权限 n ON 数据库.* TO ‘用户名’@地址;

GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON dvwa.* TO 'user1'@localhost;

GRANT ALL ON dvwa.* TO user2@localhost;

 

3.撤销授权

语法:
REVOKE 权限 1, … , 权限 n ON 数据库.* FROM ‘用户名’@地址;

REVOKE CREATE,ALTER,DROP ON dvwa.* FROM 'user1'@localhost;

4.查看用户权限

语法:
SHOW GRANTS FOR ‘用户名’@地址;

SHOW GRANTS FOR 'user1'@localhost;

5.删除用户

语法:
DROP USER ‘用户名’@地址;

DROP USER 'user1'@localhost

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue的双向绑定的原理,和angular的对比

目录 前言 Vue的双向绑定用法 代码 Vue的双向绑定原理 Angular的双向绑定用法 代码 Angular的双向绑定原理 理解 效率: 虽然Vue和Angular的双向绑定原理不同,但它们都致力于提供高效的数据更新机制。但是,由于Vue使用的是数据劫持,其…

linux驱动之等待队列

阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两种设备访问模式,在编写驱动的时候一定要考虑到阻塞和非阻塞。 一.阻塞和非阻塞 IO (1)阻塞访问 阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足…

048-第三代软件开发-数据回放

第三代软件开发-数据回放 文章目录 第三代软件开发-数据回放项目介绍数据回放 关键字: Qt、 Qml、 Data、 play back、 数据 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C 的…

2023.11.9 IDEA 配置 Lombok

目录 什么是 Lombok 如何使用 Lombok Lombok 的 Data 注解 什么是 Lombok Lombok 是一个 Java 库,能自动插入编译器并构建工具,简化 Java 开发它通过注解实现这一目的,可用来帮助开发人员消除 Java 的冗长代码,尤其是对于简单…

华为取消6000万订单影响在扩大,高通嘴硬强调不受影响

高通公布了2023年第三季度的业绩,业绩显示营收下滑24%,净利润下滑36%,不过高通强调预计今年四季度业绩将回升,意思是说华为取消订单带来的影响较小。 一、高通处境不利已延续4年时间 2019年美国对华为采取措施,众多中国…

go-sync-mutex

Sync ​ Go 语言作为一个原生支持用户态进程(Goroutine)的语言,当提到并发编程、多线程编程时,往往都离不开锁这一概念。锁是一种并发编程中的同步原语(Synchronization Primitives),它能保证多…

Django之三板斧的使用,全局配置文件介绍,request对象方法,pycharm链接数据库,Django链接数据库,ORM的增删改查

【1】三板斧(3个方法)的使用 Httpresponse() 括号内写什么字符串,返回的就是什么字符串返回的是字符串 render(request, 静态文件 ) request是固定的静态文件是写在templates文件夹里面的,如,HTML文件 redirect( 重定向的地址 ) 重…

利用三次样条插值调整鱼眼扭曲程度

本文利用三次样条插值算法,改变鱼眼扭曲程度。效果如下图所示: 源码下载地址:利用三次样条插值算法更改鱼眼特效的扭曲程度资源-CSDN文库 (说明:源码基于QT和opencv ) 主要代码 鱼眼扭曲 void fisheye(…

在Windows 10上安装单机版的hadoop-3.3.5

1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以不需要了解分布式底层细节的情况下,开发分布式程序。充分利用集群进行高速运算和存储。 2、下载Hadoop,我们在清华大学的镜像站下载 Index of /apache/hadoop/core/hadoop-3.3.6 (t…

Django文件配置、request对象、连接MySQL、ORM

文章目录 Django静态文件及相关配置静态文件前言静态文件相关配置 form表单request对象request请求结果GET请求POST请求 pycharm连接数据库Django连接MySQLDjango ORM简介 Django静态文件及相关配置 在此篇博客我将以一个用户登录页面来引入相关知识 首先我们先编写一个html页面…

一种libuv实现websockets服务的解决方案

方法是libuv用多事件循环来驱动。说起来容易,做起来还是比下面的方法更容易: 上图是某位网友的方法代表子大部分网络资料。此方法对部署不友好,因为软件仓库提供的libwebsockets是不能用了。如何简化部署,利用好现有的软件仓库呢&…

vue开发环境搭建部署(mac版)

前言 目前后端工作越来越少了,年底了,为了先过验收。项目负责人、产品、需求制定的方案就是先做假页面,所以前端的活多点。 其实现在不喜欢搞前端,原因很多,但是感觉现在似乎流行的码林绝学又是九九归一的瓶颈期…

【Kurbernetes资源管理】声明式资源管理+配置清单文件详解(附实例)

声明式 一、声明式资源管理方式1.1 简介1.2 基本语法1.3 子命令详解1.3.1 获取资源配置清单1.3.2 创建/更新资源补充:creat和apply的区别 1.3.3 删除资源----- delete1.3.4 编辑资源配置 -----edit1.3.5 获取资源的解释-----explain 二、资源清单格式详解2.1 yaml语…

Flutter 第三方 flutter_screenutil(屏幕适配)

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络&#xff0…

Git的基本使用

目录 一.Git的简介 1.1 Git与SVN的区别(优势与劣势) 1.2 Git的工作流程 二.Git的安装及常用命令 2.1 使用前准备 ​编辑 ​编辑 2.2 在Windows中安装Git 官网链接 Git - Downloadshttps://git-scm.com/downloads 2.3 Git的常用命令 三、Git命令…

人工智能-卷积神经网络之多输入多输出通道

多输入多输出通道 每个图像的多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来代表红、绿和蓝。 但是到目前为止,我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通道时,我们的输…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(二)

新增员工功能开发 1. 新增员工1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码开发1.2.1 设计DTO类1.2.2 Controller层1.2.3 Service层接口1.2.4 Service层实现类1.2.5 Mapper层 1.3 功能测试1.3.1 接口文档测试 1.4 代码完善1.4.1 问题一1.4.2 问题二1.…

H5网页漫画小说苹果cms模板源码/支持对接公众号/支持三级分销

H5网页漫画小说苹果cms模板源码,支持对接公众号、支持三级分销,评论、收藏、历史记录、三级分销。 独有的模板搜索功能,微信、qq防红,站外采集接口、记录阅读章节,SEO优化(后台配置)&#xff0…

16.字符连接

#include<stdio.h> #include <cstring> int main(){char s1[44];char s2[33];scanf("%s",s1);scanf("%s",s2);strcat(s1,s2) ;printf("连接两个字符为&#xff1a;%s ",s1); return 0;}

Java数据的基本(原始)类型和引用类型的特点差别

本文作为“Java数据类型”一文的补充https://blog.csdn.net/cnds123/article/details/110517272 Java的数据类型可以分为基本类型&#xff08;primitive types&#xff09;和引用类型&#xff08;reference types&#xff09;两大类。在实际编程中&#xff0c;要根据需求选择合…