SQL 增删改查:我能玩出这花样儿?

简介: SQL 增删改查:我能玩出这花样儿?

📚 前言

SQL是什么?


官方解释:SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。

SQL能用来干什么?


通俗的讲:让您可以访问和处理数据库,包括数据插入、查询、更新和删除。

image.png

SQL 对于现在的互联网公司生产研发等岗位几乎是一个必备技能,如果不会 SQL 的话,可能什么都做不了。可以把 SQL 当做是一种工具,利用它可以帮助你完成你的工作,创造价值。


❤️ 情景学习


下面让我们看看小美是如何零基础学习SQL的:

image.png

image.png

使用这个SQL语句可以查看数据库当前时间,当然也可以把 SYSDATE 换成任意东西。


例如:


计算器:SELECT 365 * 24 FROM dual;

image.png

这个SQL我们在开发中会经常用到,作为入门第一个SQL轻松有趣。小美,你觉得难吗?


image.png


CREATETABLE bookshelf
(BOOK_ID NUMBER,BOOK_NAME VARCHAR2(100),BOOK_TYPE VARCHAR2(100),AUTHOR VARCHAR2(100),INTIME DATE);


表名为:bookshelf,有列:图书id,图书名称,图书类型,作者,入库时间。通过上面学习的 SELECT语法,来查询一下这张表:

SELECT*FROM bookshelf;

image.png

可以发现,新建的bookshelf表没有任何记录。现在,图书馆里已经增加一个空的书架,是不是需要将书放入书架上呢?这时就需要用到 增 操作了。


image.png

INSERTINTO bookshelf 
(book_id,book_name,book_type,author,intime)VALUES(1,'飘','长篇小说','玛格丽特·米切尔',SYSDATE);COMMIT;


增 的基本语法:

insertinto 表名 (需要插入的列名,用逗号隔开)values(对应列名的值);

image.png

通过sql查询发现,这本书《飘》已经放入了书架上,可供大家借用和查看。

image.png

改 的基本语法:

UPDATE 表名 SET 列名 = 新的值;


删 的基本语法:

DELETEFROM 表名;


现在来模拟一下场景:


1、修改作者名:

UPDATE bookshelf SET author='Margaret Mitchell';COMMIT;

image.png

2、下架图书:

DELETEFROM bookshelf;COMMIT;

image.png

通过以上两个场景,演示了 改 和 删 两种操作。


image.png


先上架3本书:

INSERTINTO bookshelf (book_id,book_name,book_type,author,intime)VALUES(1,'飘','长篇小说','玛格丽特·米切尔',SYSDATE);INSERTINTO bookshelf (book_id,book_name,book_type,author,intime)VALUES(2,'倾城之恋','爱情小说','张爱玲',SYSDATE);INSERTINTO bookshelf (book_id,book_name,book_type,author,intime)VALUES(3,'从你的全世界路过','短篇小说','张嘉佳',SYSDATE);COMMIT;

image.png

查看《倾城之恋》:

SELECT*FROM bookshelf WHERE BOOK_NAME ='倾城之恋';

image.png

更新《飘》:

UPDATE bookshelf SET author='Margaret Mitchell'WHERE book_name ='飘';COMMIT;

image.png

删除《从你的全世界路过》:

DELETEFROM bookshelf WHERE book_name ='从你的全世界路过';COMMIT;


通过上面的几个栗子🌰,应该能很好的理解 WHERE 查询条件的使用了。

image.png


☀️ 趣味 SQL

文末,赠送给各位看官几个一句SQL画图的趣味小SQL:


⭐️ 五角星:

WITH a AS(SELECTDISTINCT round(SUM(x) over(ORDERBY n)) x,                  round(SUM(y) over(ORDERBY n)) y
FROM(SELECT n,                 cos(trunc(n /20)*(1-1/5)*3.1415926)*2 x,                 sin(trunc(n /20)*(1-1/5)*3.1415926) y
FROM(SELECT rownum -1 n
FROM all_objects
WHERE rownum <=20*5)))SELECT REPLACE(sys_connect_by_path(point,'/'),'/',NULL) star
FROM(SELECT b.y,               b.x,               decode(a.x,NULL,' ','*') point
FROM a,(SELECT*FROM(SELECT rownum -1+(SELECT MIN(x)FROM a) x
FROM all_objects
WHERE rownum <=(SELECT MAX(x)- MIN(x)+1FROM a)),(SELECT rownum -1+(SELECT MIN(y)FROM a) y
FROM all_objects
WHERE rownum <=(SELECT MAX(y)- MIN(y)+1FROM a))) b
WHERE a.x(+)= b.xAND a.y(+)= b.y)WHERE x =(SELECT MAX(x)FROM a) START WITH x =(SELECT MIN(x)FROM a)CONNECT BY y = PRIOR y
AND x = PRIOR x +1;

image.png

📢 注意: 调整期中数字 5,你还可以输出 7 角星,9 角星!


🇨🇳 奥运五环:

WITH a AS(SELECTDISTINCT round(a.x+ b.x) x,                  round(a.y+ b.y) y
FROM(SELECT(SUM(x) over(ORDERBY n)) x,                 round(SUM(y) over(ORDERBY n)) y
FROM(SELECT n,                         cos(n /30*3.1415926)*2 x,                         sin(n /30*3.1415926) y
FROM(SELECT rownum -1 n
FROM all_objects
WHERE rownum <=30+30))) a,(SELECT n,(SUM(x) over(ORDERBY n)) x,                 round(SUM(y) over(ORDERBY n)) y
FROM(SELECT n,                         cos(m /3*3.1415926)*2*15 x,                         sin(m /3*3.1415926)*15 y
FROM(SELECT CASE
                                   WHEN rownum <=2 THEN
3                                   WHEN rownum =3 THEN
-2                                   ELSE
-6                                 END m,                                 rownum -1 n
FROM all_objects
WHERE rownum <=5))) b)SELECT REPLACE(sys_connect_by_path(point,'/'),'/',NULL) star
FROM(SELECT b.y,               b.x,               decode(a.x,NULL,' ','*') point
FROM a,(SELECT*FROM(SELECT rownum -1+(SELECT MIN(x)FROM a) x
FROM all_objects
WHERE rownum <=(SELECT MAX(x)- MIN(x)+1FROM a)),(SELECT rownum -1+(SELECT MIN(y)FROM a) y
FROM all_objects
WHERE rownum <=(SELECT MAX(y)- MIN(y)+1FROM a))) b
WHERE a.x(+)= b.xAND a.y(+)= b.y)WHERE x =(SELECT MAX(x)FROM a) START WITH x =(SELECT MIN(x)FROM a)CONNECT BY y = PRIOR y
AND x = PRIOR x +1;

image.png

📅 打印当月日历:

SELECT MAX(decode(dow,1,                  d,NULL)) sun,       MAX(decode(dow,2,                  d,NULL)) mon,       MAX(decode(dow,3,                  d,NULL)) tue,       MAX(decode(dow,4,                  d,NULL)) wed,       MAX(decode(dow,5,                  d,NULL)) thu,       MAX(decode(dow,6,                  d,NULL)) fri,       MAX(decode(dow,7,                  d,NULL)) sat
FROM(SELECT rownum d,               rownum -2+ to_number(to_char(trunc(SYSDATE,'MM'),'D')) p,               to_char(trunc(SYSDATE,'MM')-1+ rownum,'D') dow
FROM all_objects
WHERE rownum <=               to_number(to_char(last_day(to_date(SYSDATE)),'DD')))GROUPBY trunc(p /7)ORDERBY sun NULLS FIRST;

image.png

相关文章
|
4月前
|
SQL 关系型数据库 MySQL
mysql 简单的sql语句,入门级增删改查
介绍MySQL中的基本SQL语句,包括数据的增删改查操作,使用示例和简单的数据表进行演示。
mysql 简单的sql语句,入门级增删改查
拿php写个原生增删改查案例出来(提供全部代码+sql)
拿php写个原生增删改查案例出来(提供全部代码+sql)
拿php写个原生增删改查案例出来(提供全部代码+sql)
|
SQL 关系型数据库 MySQL
Python 与 MySQL 进行增删改查的操作以及防止SQL注入
Python 与 MySQL 进行增删改查的操作以及防止SQL注入
250 0
|
SQL 程序员 数据库
【python】连接sql server数据库,并实现简单的增删改查(1)
Python编程语言越来越受到大家的喜爱,本篇文章就从链接微软数据库进行增删改查操作的讲解
692 0
|
4月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
82 1
|
6月前
|
SQL NoSQL API
MongoDB 增删改查 常用sql总结
MongoDB 增删改查 常用sql总结
224 1
|
7月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
102 2
|
8月前
|
SQL 数据库
sql server 增删改查(基本用法)
sql server 增删改查(基本用法)
|
8月前
|
SQL 存储 搜索推荐
SQL server增删改查(1)
SQL server增删改查(1)
153 0
|
8月前
|
SQL Java 数据库连接
【mybatis】动态sql之批量增删改查
【mybatis】动态sql之批量增删改查
103 0