[JavaWeb]SQL介绍-DDL-DML

news2024/11/16 7:54:17

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站视频课程
笔记与源码文件

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

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

相关文章

【C++】反向迭代器的模拟实现通用(可运用于vector,string,list等模拟容器)

文章目录 前言一、反向迭代器封装(reverseiterator)1.构造函数1解引用操作.3.->运算符重载4.前置,后置5.前置--,后置--6.不等号运算符重载7.完整代码 二、rbegin()以及rend()1.rb…

[nlp] TF-IDF算法介绍

(1)TF是词频(Term Frequency) 词频是文档中词出现的概率。 (2) IDF是逆向文件频率(Inverse Document Frequency) 包含词条的文档越少,IDF越大。

01-导数的定义_左导数和右导数

微积分 导数的定义 左导数与右导数、可导函数 趋近于 0 有两个方向,从左边趋向于 0 是左导数,反之是右导数 下面的绝对值函数的左导数和右导数不相同,一个-1 一个1,0 位置不可导 f(x)|x|, 导数可以理解为某点的斜率…

生命在于学习——指纹混淆技术学习

一、前言 本篇文章仅为学习笔记记录,不得用于违规用途。 本篇文章为安全社公众号的Poker安全所发,本文仅为学习复现。 二、介绍 指纹混淆技术,顾名思义,就是迷惑指纹扫描识别技术。 三、思路 作者的思路: 1、伪…

代码随香录day31

今天开始贪心算法了! 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心算法一般分为如下四步: 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 455. 分发饼干 这里的思路…

openEuler?搭建java开发环境的详细过程

目录 1. 初始化环境2. 安装jdk83. 安装SVN4. 安装Git5. 安装Node.js6. 下载并激活IntelliJ IDEA7. 下载并激活Navicat 本文操作系统及版本号:↓ openEuler release 22.03 LTS Linux version 5.10.0-60.35.0.64.oe2203.x86 _64 1. 初始化环境 ? 1 2 3 4 # 1. 更新…

Spring事务的传播机制与隔离级别

目录 前言事务的隔离级别事务特性Spring 中设置事务隔离级别MySQL的隔离级别Spring中的隔离级别 Spring的传播机制事务传播机制是什么?为什么需要事务传播机制?事务传播机制有哪些? 事务的隔离级别 与 传播机制 解决的问题 前言 无论对于那个…

2020年全国硕士研究生入学统一考试管理类专业学位联考写作试题——解析版

四、写作第56~57小题,共65分。其中论证有效性分析30分,论说文35分。 56. 论证有效性分析:分析下述论证中存在的缺陷和漏洞,选择若干要点,写一篇600字左右的文章,对该论证的有效性进行分析和评论。( 论证有…

自动装配再次理解

随便点进去一个自动装配类,也就是spring.factories 文件下的一个全限定名指定的一个配置类 里面有个内部类 Encoding 类 这个注解是绑定了yaml文件,通过前缀可以往里面赋值,来实现自定义配置Springboot 了解完自动装配的原理后,我…

<C语言> 预处理和宏

1.预定义符号 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是C语言内置的。 举个例子&…

如何高效维护电脑

电脑维护技巧:让你的电脑始终高效稳定 电脑维护技巧:让你的电脑始终高效稳定引言方向一:介绍你的电脑方向二:介绍一下你的日常维护措施方向三:给出一些你觉得有用的维护技巧方向四:其他你想补充的方向五&am…

苍穹外卖学习心得与总结【对比瑞吉】【如何获得铁粉】

对于苍穹外卖项目,从学习课程加复习已经13天了。 对于一名已经学习过SSMLinuxRedis数据库的Java练习生来说,这个项目相对于之前学习的《瑞吉外卖》新增了很多功能和技术,是很值得练手和提升的课程,下面给出自己的一些见解。&#…

【点云处理教程】02从 Python 中的深度图像估计点云

一、说明 这是“点云处理”教程的第二篇文章。“点云处理”教程对初学者友好,我们将在其中简单地介绍从数据准备到数据分割和分类的点云处理管道。在本教程中,我们将学习如何在不使用 Open3D 库的情况下从深度图像计算点云。我们还将展示如何优化代码以获…

调整数组顺序使奇数位于偶数前面——剑指 Offer 21

文章目录 题目描述法一 两次遍历法二 双指针一次遍历法三 原地交换 题目描述 法一 两次遍历 class Solution{ public:vectro<int> exchange(vector<int>& nums){vector<int> res;for(auto & num : nums){if(num%21){res.push_back(num);}}for(auto &…

Java常用API:StringBuilder、StringBuffer、StringJoiner

StringBuilder的几个常用的API StringBuilder s new StringBuilder("111");//111 //1.拼接内容 s.append(12); s.append("11"); s.append(true);//2.支持链式编程 s.append(12).append("11").append(true);//输出是1211true //3.反转操作 s.reve…

c++[左值+右值](25)

左值 对左值取别名 左值举例 int main() {//左值&#xff1a;可以取地址int a 10;const int b 20;int* p &a; //a&#xff0c;b&#xff0c;p均是左值*p 100; //*p也是左值return 0; }左值引用举例 int main() {//以下 p、b、c、*p都是…

《向量数据库指南》:向量数据库Pinecone如何集成Elasticsearch

目录 上传嵌入模型 上传数据集 创建嵌入 将Elasticsearch索引移动到Pinecone 概要 是一个强大的开源搜索引擎和分析平台,广泛用作基于关键字的文本搜索的文档存储。 Pinecone是一个广泛用于生产应用程序的向量数据库,例如语义搜索、推荐系统和威胁检测,需要在数亿甚…

【多模态】20、OVR-CNN | 使用 caption 来实现开放词汇目标检测

文章目录 一、背景二、方法2.1 学习 视觉-语义 空间2.2 学习开放词汇目标检测 三、效果 论文&#xff1a;Open-Vocabulary Object Detection Using Captions 代码&#xff1a;https://github.com/alirezazareian/ovr-cnn 出处&#xff1a;CVPR2021 Oral 一、背景 目标检测数…

关于rtthread的I/O设备模型

分层 从官方给的架构可以看出&#xff0c;官方是将IO设备的使用分成了三层。 IO设备管理层&#xff1a;也就是正常用户接触的一层&#xff0c;用户直接调用该层接口实现IO设备的操作。例如代码中的device.c文件 设备驱动框架层&#xff1a;这一层可以称为中间层了&#xff0c…

Spring之BeanDefinition(三)

Spring之BeanDefinition&#xff08;三&#xff09; 文章目录 Spring之BeanDefinition&#xff08;三&#xff09;一、Spring的启动类三行代码研究二、Spring创建工厂类型和属性三、Spring中内置的BeanDefinition四、注册配置类五、BeanDefinition总结 一、Spring的启动类三行代…