[JavaWeb]SQL介绍-DDL-DML

SQL介绍-DDL-DML

  • 一.SQL简介
    • 1.简介
    • 2.SQL通用语法
    • 3.SQL语言的分类
  • 二.DDL-操作数据库与表
    • 1.DDL操作数据库
    • 2.DDL操作表
      • ①.查询表(Retrieve)
      • ②.创建表(Create)
      • ③.修改表(Update)
      • ④.删除表(Delete)
  • 三.Navicat的安装与使用
  • 四.DML-操作表数据
    • 1.添加(Insert)
    • 2.修改(Update)
    • 3.删除(Delete)

一.SQL简介

1.简介

  • SQL: Structured Query Language–结构化查询语言
  • 用来操作关系型数据库的编程语言, 定义了关系型数据库的统一标准
  • 每一种数据库可能有不一样的语法, 我们称其为"方言"

2.SQL通用语法

  • SQL语句可以单行或多行书写,以分号结尾
  • MySQL语句不区分大小写, 但是关键字建议用大写
  • 注释:
    单行注释-- 注释内容(–后必须有空格)或#注释内容(MySQL特有)(#后可以没有空格)
    多行注释/*注释*/

3.SQL语言的分类

  • DDL(Data Definition Laguage)数据定义语言,用来定义数据对象: 数据库, 表, 列等
  • DML(Data Manipulation Laguage)数据操作语言, 用来对数据库中表的数据进行增删改
  • DQL(Data Query Language)数据查询语言, 用来查询数据库中的记录(数据)
  • DCL(Data Control Language)数据控制语言, 用来定义数据库的访问权限和安全级别, 以及创建用户

二.DDL-操作数据库与表

1.DDL操作数据库

动作SQL语句
查询数据库SHOW DATABASES;
创建数据库CREATE DATABASE 数据库名称;
创建(判断是否已经存在)CREATE DATABASE IF NOT EXISTS 数据库名称;
删除数据库DROP DATABASE 数据库名称;
删除(判断是否还存在)DROP DATABASE IF EXISTS 数据库名称;
查看当前使用的数据库SELECT DATABASE();
使用数据库USE 数据库名称;

2.DDL操作表

①.查询表(Retrieve)

  • 查询当前数据库下所有表的名称SHOW TABLES;
  • 查询表结构DESC 表名称;

②.创建表(Create)

  • 创建表用CREATE TABLE 表名来进行创建具体语法如下
create table 表名 (
	字段名1 数据类型1,
	字段名2 数据类型2,
	...,
	字段名n 数据类型n
);
  • SQL的数据类型基本可以分为三类
    数值型
    日期型
    字符串型

案例练习:

create table student(
   id int,
   name varchar(10),
   gender char(1),
   birthday date,
   score double(5,2),
   email varchar(64),
   tel varchar(15),
   status tinyint
);

③.修改表(Update)

  • 修改表的命令一般以ALTER TABLE开头具体可以分为
操作语法
修改表名ALTER TABLE 表名 RENAME TO 新表名;
添加一列ALTER TABLE 表名 ADD 列名 数据类型;
修改数据类型ALTER TABLE 表名 MODIFY 列名 新数据类型;
修改列名和数据类型ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
删除列ALTER TABLE 表名 DROP 列名;

④.删除表(Delete)

  • 删除表DROP TABLE 表名;
  • 删除时判断是否存在DROP TABLE IF EXISTS 表名;

三.Navicat的安装与使用

  • Navicat for MySQL是管理和开发MySQL或MariaDB的理想解决方案.
  • 它为开发者提供了一款直观而强大的图形界面.
  • 官网链接: http://www.navicat.com.cn

    安装完成后直接打开,填写需要连接的ip与主机的地址
    如果连接过程提示报错,可以参看这个博主的文章
  • 登录成功后可以通过Navicat来查看MySQL的数据库了

四.DML-操作表数据

1.添加(Insert)

说明语法
给指定的列添加数据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,...)...;
-- 查询所有数据
SELECT
	*
FROM
	stu;

-- 给指定列添加数据 INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...);
INSERT INTO stu (id, NAME) VALUES (1, '叶子');

-- 给所有列添加数据(可以省略列名的列表)INSERT INTO 表名 VALUES(值1,值2,...);
INSERT INTO stu
VALUES (2,'老黄','男','1997-07-24',99.1,'14587138@qq.com','11929305651',1);

-- 批量添加,其实就是把之前的括号中的内容多次执行
INSERT INTO stu
VALUES
	(3,'罗磊','男','1997-05-24',110.1,'14333138@qq.com','11929467551',1),
	(4,'娟老师','女','1999-04-14',120.1,'556587138@qq.com','1349305651',1),
	(5,'雷der','男','1993-04-24',130.1,'16487138@qq.com','17629305651',1);

SELECT * FROM stu;

2.修改(Update)

  • 语法UPDATE 表名 SET 列名1=值1,列名2=值2,... [WHERE 条件];
-- 将表中 老黄的邮箱改为163邮箱
UPDATE stu SET email = 'finsq@163.com' WHERE id=2;

-- 将表中老黄的分数改为100,电话改为110,状态改为3
UPDATE stu SET score=100,tel=110,`status`=3 WHERE name='老黄';

-- 注意:如果update语句中不添加where条件,则会修改表中的所有数据!!!!

3.删除(Delete)

  • 与修改相似DELETE FROM 表名 [WHERE 条件];
-- 删除表中 '雷der'相关的数据
DELETE FROM stu WHERE name='雷der';

SELECT * FROM stu;
-- 如果不加where限制会清除所有表数据

B站视频课程
笔记与源码文件

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

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

相关文章

Elasticsearch:如何将整个 Elasticsearch 索引导出到文件 - Python 8.x

在实际的使用中,我们有时希望把 Elasticsearch 的索引保存到 JSON 文件中。在之前,我写了一篇管如何备份 Elasticsearch 索引的文章 “Elasticsearch:索引备份及恢复”。在今天,我们使用一种 Python 的方法来做进一步的探讨。你可…

冒泡排序算法

冒泡排序 算法说明与代码实现: 简单分析,外循环次数为数据len(arr)-1次,内循环为len(arr)-外循环次数 下面是使用Go语言实现冒泡排序算法的示例: package mainimport "fmt"func bubbleSort(arr []int) {n : len(arr…

使用Jetpack Compose构建时间轴组件的逐步指南

使用Jetpack Compose构建时间轴组件的逐步指南 最近,我们开发一个时间轴组件,显示用户与客户之间的对话。每个对话节点应具有自己的颜色,取决于消息的状态,并且连接消息的线条形成颜色之间的渐变过渡。 我们慷慨地估计了未来的工…

北方多地暴雨引思考:如何降低暴雨负面影响?

受今年第五号台风“杜苏芮”残余环流北上影响,北方多地这两天出现了大范围的强降雨。 7月31日晚上,国家防总办公室、应急管理部加密研判会商,与中国气象局、水利部会商研判,视频连线北京、天津、河北等重点省份,滚动分…

Kafka3.0.0版本——Broker(总体工作流程)

目录 一、Kafka中Broker总体工作流程图解二、Kafka中Broker总体工作流程步骤解析 一、Kafka中Broker总体工作流程图解 总体工作流程图解 二、Kafka中Broker总体工作流程步骤解析 1、broker启动后在zk中注册,如下图所示: 2、controller谁先注册&…

STM32 CubeMX 定时器(普通模式和PWM模式)

STM32 CubeMX STM32 CubeMX 定时器(普通模式和PWM模式) STM32 CubeMXSTM32 CubeMX 普通模式一、STM32 CubeMX 设置二、代码部分STM32 CubeMX PWM模式一、STM32 CubeMX 设置二、代码部分总结 STM32 CubeMX 普通模式 一、STM32 CubeMX 设置 二、代码部分 …

《工具箱-VNCServer》配置VNCServer,使用VNCViewer实现局域网内页面共享

VNCServer设置 通过VNCServer配置,与VNCviewer配套使用 1.下载并安装VNCServer 2.邮箱密码注册后用户登录 3.设置VNC密码 4.设置viewer不能控制本机 5.打开VNClicensewiz,选择“Enter a license key …” BQ24G-PDXE4-KKKRS-WBHZE-F5RCA BQ24G-PDXE4-…

详解AMQP协议以及JAVA体系中的AMQP

目录 1.概述 1.1.简介 1.2.抽象模型 2.spring中的amqp 2.1.spring amqp 2.2.spring boot amqp 1.概述 1.1.简介 AMQP,Advanced Message Queuing Protocol,高级消息队列协议。 百度百科上的介绍: 一个提供统一消息服务的应用层标准高…

FFmpeg 音视频开发工具

目录 FFmpeg 下载与安装 ffmpeg 使用快速入门 ffplay 使用快速入门 FFmpeg 全套下载与安装 1、FFmpeg 是处理音频、视频、字幕和相关元数据等多媒体内容的库和工具的集合。一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 官网:http…

力扣 343. 整数拆分

题目来源:https://leetcode.cn/problems/integer-break/description/ C题解1:动态规划。dp[i] 代表数字i拆分后得到的最大乘积。递归公式为拆分后两个数的最大乘积相乘,即 dp[i] max(dp[i], dp[j] * dp[i-j])。对于n2或3需要另外讨论。 cla…

Android 面试题 线程间通信 六

🔥 主线程向子线程发送消息 Threadhandler🔥 子线程中定义Handler,Handler定义在哪个线程中,就跟那个线程绑定,在线程中绑定Handler需要调用Looper.prepare(); 方法,主线程中不调用是因为主线程默认帮你调用…

IP 工具

什么是IP 工具 IP 工具是用于轻松扫描和排除网络 IP 地址空间故障的网络工程工具。IP 工具使网络管理员能够审核、跟踪和监视 IP 地址、子网以及使用 IP 的设备和主机的性能。这个全面的网络工程工具集包括高级 IP 工具,如 Ping、系统资源管理器、MAC 地址解析器和…

网格简化(QEM)学习笔记

文章目录 网格简化(QEM)1 概述与原理1.1 网格简化的应用1.2 常见的简化操作1.3 二次误差度量 2 算法流程2.1 逐步分析 3 Python代码实现3.1 测试结果 4 总结参考 网格简化(QEM) 1 概述与原理 网格简化,通过减少复杂网格数据的顶点、边和面的数量简化模型的表达&am…

Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单

 工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据…

021 - STM32学习笔记 - Fatfs文件系统(三) - 细化与总结

021 - STM32学习笔记 - Fatfs文件系统(三) - 细化与总结 上节内容中,初步实现了FatFs文件系统的移植,并且实现了设备的挂载、文件打开/关闭与读写功能,这里对上节遗留的一些问题进行总结,并且继续完善文件…

Mybatis插件

文章目录 1. 如何自定义插件1.1 创建接口Interceptor的实现类1.2 配置拦截器1.3 运行程序 2. 插件原理2.1 解析过程2.2 创建代理对象2.2.1 Executor2.2.2 StatementHandler2.2. 3ParameterHandler2.2.4 ResultSetHandler 2.3 执行流程2.4 多拦截器的执行顺序 3. 1. 如何自定义插…

【Redis】内存数据库Redis进阶(Redis持久化)

目录 分布式缓存 Redis 四大问题Redis 持久化RDB (Redis DataBase)RDB执行时机RDB启动方式——save指令save指令相关配置save指令工作原理save配置自动执行 RDB启动方式——bgsave指令bgsave指令相关配置bgsave指令工作原理 RDB三种启动方式对比RDB特殊启动形式RDB优点与缺点 A…

Git全栈体系(三)

第六章 GitHub 操作 一、创建远程仓库 二、远程仓库操作 命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 远程库地址别名 远…

基于SpringCloud+Vue的分布式架构网上商城系统设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Spring入门-技术简介、IOC技术、Bean、DI

前言 Spring是一个开源的项目,并不是单单的一个技术,发展至今已形成一种开发生态圈。也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring是一个基于IOC和AOP的架构多层j2ee系统的架构。 SpringFramework:Spring框架…