当前位置: 首页 > news >正文

MYSQL------sql基础

SQL基础与简介

  • 定义:SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,用于存取数据以及查询、更新和管理关系数据库系统。
  • 作用:可以用于数据库的创建、数据的插入、查询、更新和删除等操作,还能进行数据的统计分析、权限控制等。
  • 特点:语法简单易学,非过程化,只需提出“做什么”,无需指明“怎么做”,集合操作能力强,能对一组数据进行操作。

MySQL使用入门

  • 安装:可从MySQL官方网站下载对应操作系统的安装包,按照安装向导进行安装。
  • 连接数据库:安装完成后,可使用命令行工具或图形化工具(如Navicat、MySQL Workbench)连接到MySQL数据库。
  • 基本操作:创建数据库使用CREATE DATABASE语句;创建表使用CREATE TABLE语句;插入数据使用INSERT INTO语句;查询数据使用SELECT语句;更新数据使用UPDATE语句;删除数据使用DELETE FROM语句。

SQL分类

  • 数据定义语言(DDL):用于定义数据库对象,如数据库、表、视图、索引等,主要语句有CREATEALTERDROP等。
  • 数据操纵语言(DML):用于对数据库中的数据进行操作,包括插入、查询、更新和删除数据,主要语句有SELECTINSERTUPDATEDELETE
  • 数据控制语言(DCL):用于控制对数据库中数据的访问和操作权限,主要语句有GRANTREVOKE
  • 事务控制语言(TCL):用于管理数据库事务,如提交事务COMMIT、回滚事务ROLLBACK等。

SQL语句

常见SQL语句包括数据查询语句、数据更新语句等。如查询语句SELECT * FROM table_name WHERE condition;更新语句UPDATE table_name SET column1=value1,column2=value2 WHERE condition;插入语句INSERT INTO table_name (column1,column2,column3) VALUES (value1,value2,value3);删除语句DELETE FROM table_name WHERE condition

DDL语句

  • CREATE:创建数据库CREATE DATABASE database_name;创建表CREATE TABLE table_name (column1 type1, column2 type2)
  • ALTER:添加列ALTER TABLE table_name ADD column_name column_type;修改列类型ALTER TABLE table_name MODIFY column_name new_type;删除列ALTER TABLE table_name DROP COLUMN column_name
  • DROP:删除数据库DROP DATABASE database_name;删除表DROP TABLE table_name

DML语句

  • SELECT:查询所有列SELECT * FROM table_name;条件查询SELECT column1,column2 FROM table_name WHERE condition
  • INSERT:插入一条记录INSERT INTO table_name (column1,column2) VALUES (value1,value2);插入多条记录INSERT INTO table_name (column1,column2) VALUES (value1,value2),(value3,value4)
  • UPDATE:更新一条记录UPDATE table_name SET column1=value1 WHERE condition;更新多条记录UPDATE table_name SET column1=value1,column2=value2 WHERE condition
  • DELETE:删除一条记录DELETE FROM table_name WHERE condition;删除表中所有记录DELETE FROM table_name

DCL语句

  • GRANT:授予权限GRANT SELECT,INSERT ON table_name TO user_name,表示授予用户对表的查询和插入权限。
  • REVOKE:撤销权限REVOKE SELECT ON table_name FROM user_name,表示撤销用户对表的查询权限。

帮助的使用

  • MySQL命令行帮助:在MySQL命令行中,可使用HELP命令获取帮助,如HELP SELECT可查看SELECT语句的帮助信息。
  • 官方文档:MySQL官方网站有详细的文档,涵盖了安装、配置、使用等各个方面的内容,可根据需求查找相关信息。

按照层次看帮助

可以从基础概念开始,逐步深入到具体的语句和操作。先了解SQL的基本概念、数据库的基本结构等基础知识,再学习各类SQL语句的语法和用法,最后学习高级特性和优化技巧等。

快速查询帮助

可利用搜索引擎,输入关键词,如“MySQL SELECT语句用法”,快速找到相关的教程和文档。也可在技术论坛和社区中提问,如Stack Overflow、CSDN等,向其他开发者请教。
在这里插入图片描述

以下是各类 SQL 语句的代码示例,基于 MySQL 8.0 运行:

DDL(数据定义语言)示例

  1. 创建数据库
-- 创建一个名为 test_db 的数据库
CREATE DATABASE test_db;
  1. 创建表
-- 使用 test_db 数据库
USE test_db;
-- 创建名为 students 的表,包含 id(主键,自增长整数)、name(字符串)、age(整数) 三个字段
CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT
);
  1. 修改表结构
-- 给 students 表添加一个新的 gender 字段,类型为 CHAR(1)
ALTER TABLE students ADD COLUMN gender CHAR(1);
  1. 删除表
-- 删除 students 表
DROP TABLE students;
  1. 删除数据库
-- 删除 test_db 数据库,前提是数据库为空或者你确认要删除其中的数据
DROP DATABASE test_db;

DML(数据操纵语言)示例

  1. 插入数据
-- 向 students 表插入一条记录
INSERT INTO students (name, age, gender) VALUES ('Alice', 20, 'F');
-- 插入多条记录
INSERT INTO students (name, age, gender) VALUES 
('Bob', 22, 'M'),
('Cindy', 21, 'F');
  1. 查询数据
-- 查询 students 表所有记录
SELECT * FROM students;
-- 按条件查询,查询年龄大于 20 岁的学生
SELECT * FROM students WHERE age > 20;
  1. 更新数据
-- 将名字为 'Bob' 的学生年龄更新为 23
UPDATE students SET age = 23 WHERE name = 'Bob';
  1. 删除数据
-- 删除名字为 'Cindy' 的学生记录
DELETE FROM students WHERE name = 'Cindy';

DCL(数据控制语言)示例

  1. 授予权限
-- 创建一个新用户 'test_user',密码为 'test123'
CREATE USER 'test_user' IDENTIFIED BY 'test123';
-- 授予 'test_user' 对 test_db 数据库中 students 表的查询权限
GRANT SELECT ON test_db.students TO 'test_user';
  1. 撤销权限
-- 撤销 'test_user' 对 test_db 数据库中 students 表的查询权限
REVOKE SELECT ON test_db.students FROM 'test_user';

在这里插入图片描述

相关文章:

MYSQL------sql基础

SQL基础与简介 定义:SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,用于存取数据以及查询、更新和管理关系数据库系统。作用:可以用于数据库的创建、数据的插入、查询、更新和…...

React Router 用法概览

React Router 用法 React 使得开发者能够轻松地创建交互式的单页应用(SPA),单页应用的一个常见挑战是如何处理页面导航和路由吗,React Router 就是解决这个问题的工具 路由(Router)是 React Router 的核心…...

网络安全之高防IP的实时监控精准防护

高防IP是一种网络安全设备,用于保护网络服务不受到各类攻击的影响,确保业务的持续稳定运行。它通过监控、识别和封锁恶意攻击流量,提供高级别的防护,降低业务被攻击的风险,并提升网络的稳定性和可靠性。 一、实时监控的…...

2024年中国新能源汽车用车发展怎么样 PaperGPT(二)

用车趋势深入分析 接上文,2024年中国新能源汽车用车发展怎么样 PaperGPT(一)-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程:2024年纯电车辆月均行驶超过1500公里&…...

LINUXC 时间相关操作

文章目录 时间戳获取本地时间struct tm 结构体高精度的时间struct timeval 结构体相关函数time()localtime()gmtime()gettimeofday()strftime()mktime() 示例代码 时间戳 时间戳是指计算机中存储的数字型时间。它是以一个特定的时间点作为起点(通常是1970年1月1日0…...

网络游戏之害

网络游戏之害: 网络游戏于今之世风靡四方,其娱人耳目、畅人心怀之效,固为人知,然所藏之害,若隐伏之暗潮,汹涌而至时,足以覆舟,尤以青年为甚,今且缕析其害,以…...

SpringMVC的消息转换器

SpringMVC的消息转换器(Message Converter)是Spring框架中用于处理HTTP请求和响应体与Java对象之间转换的组件。它们使得开发人员可以轻松地将HTTP请求的数据映射到方法参数,并将返回的对象转换为HTTP响应。 工作原理 当一个HTTP请求到达Spr…...

Chrome 浏览器下载安装教程,保姆级教程

大家好,今天我们来聊一聊如何在国内下载和安装最新版本的 Chrome 浏览器。由于众所周知的原因,Google 的网站在国内是被屏蔽的,因此很多朋友在下载 Chrome 浏览器 时会遇到困难。其实,不必担心,今天我将为大家带来一份…...

ElasticSearch系列(一)

一.了解ES、倒排索引、es的一些概念、安装es、kibana 二.DSL;索引库操作 三.Java RestClient:索引库操作 一、了解ES、倒排索引、es的一些概念、安装es、kibana kibana、logstash、beats Elasticserach 存储,计算 ,搜索数据 –…...

C++技巧:map和vector

一,map是有序的,unordered_map是无序的 在C中,std::map 和 std::unordered_map 是两种不同的容器,它们都用于存储键值对,但是它们的底层实现和性能特性有所不同。以下是它们的详细介绍: std::map std::m…...

中建海龙:科技助力福城南产业片区绿色建筑发展

在快速发展的城市化进程中,绿色建筑以其环保、节能、可持续的特点日益受到重视。作为建筑工业化领域的领军企业,中建海龙科技有限公司(简称“中建海龙”)凭借其卓越的科技实力和创新举措,在推动绿色建筑发展方面做出了…...

模块化通讯管理机在物联网系统中的应用

安科瑞刘鸿鹏 摘要 随着能源结构转型和智能化电网的推进,电力物联网逐渐成为智能电网的重要组成部分。本文以安科瑞ANet系列智能通信管理机为例,探讨其在电力物联网中的应用,包括数据采集、规约转换、边缘计算、远程控制等技术实践&#…...

建立一个Macos载入image的实例含界面

前言 为了方便ios程序的开发,有时候需要先用的Macos平台进行一些功能性的程序开发。 作为对比和参考。 1、创建一个MacOS的App 2、主界面控件的增加 添加的控件方法与ios相同,也是再用commandshiftL(CtrlShiftL),就会弹出控件…...

Redis List列表

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Redis List列表 收录于专栏[redis] 本专栏旨在分享学习Redis的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 概述 常用命令 LPUSH …...

继承与多态 - 继承机制、虚函数、纯虚函数

引言 C 是一种支持面向对象编程(OOP)的编程语言,继承和多态是 OOP 的两个核心概念。通过继承,我们可以创建新的类,这些新类可以重用现有类的代码,并且可以根据需要进行扩展或修改。多态则允许我们编写更加…...

【QT】C++线程安全的单例模板

模板代码 #pragma once #include <mutex> #include <atomic>// CRTP基类模板 Curiously Recurring Template Parttern—奇异递归模板模式。 template <typename T> class SingletonCRTP { public:// 禁止拷贝构造和赋值操作SingletonCRTP(const SingletonCR…...

node.js内置模块之---EventEmitter 类

EventEmitter 类什么作用 EventEmitter 类的主要方法 EventEmitter 类什么作用 在 Node.js 中&#xff0c;EventEmitter 是一个非常核心的类&#xff0c;它提供了一种事件驱动的机制。几乎所有的 Node.js 核心模块&#xff08;如 fs, http, net 等&#xff09;都采用了事件驱…...

SWM221系列芯片之电机应用及控制

经过对SWM221系列的强大性能及外设资源&#xff0c;TFTLCD彩屏显示及控制进行了整体介绍后&#xff0c;新迎来我们的电控篇---SWM221系列芯片之电机应用及控制。在微控制器市场面临性能、集成度与成本挑战的当下&#xff0c;SWM221系列芯片以其卓越性能与创新设计&#xff0c;受…...

单片机-静动态数码管实验

P0控制数码管 &#xff0c;P0低电平 P1,P2,P3高电平 1、静态数码管 需求&#xff1a;数码管显示0&#xff0c;即让p0端口输出数字0的段码0x3f(共阴) #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; //数码管显示数字的数组 共阴极 …...

Fabric环境部署

官方下载文档&#xff1a;A Blockchain Platform for the Enterprise — Hyperledger Fabric Docs main documentation 1.1 创建工作目录 将Fabric代码按照GO语言的推荐方式进行存放&#xff0c;创建目录结构并切换到该目录下。具体命令如下&#xff1a; mkdir -p ~/go/src/g…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

2.2.2 ASPICE的需求分析

ASPICE的需求分析是汽车软件开发过程中至关重要的一环&#xff0c;它涉及到对需求进行详细分析、验证和确认&#xff0c;以确保软件产品能够满足客户和用户的需求。在ASPICE中&#xff0c;需求分析的关键步骤包括&#xff1a; 需求细化&#xff1a;将从需求收集阶段获得的高层需…...