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

Yashan SQL语句

一、Yashan DB SQL分类

SQL语言概述

• 定义:SQL(Structured Query Language)是结构化查询语言,是一种用于访问和管理数据库的标准计算机语言。

• 优点:

• 不是某个特定数据库供应商专有的语言,几乎所有关系型数据库都支持SQL。

• 简单易学。

• 强大,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。


SQL分类

分类    常用SQL语句    功能    
数据定义语言(DDL)    CREATE、ALTER、DROP、TRUNCATE TABLE    创建、修改、删除数据库中的对象和对象属性,以及删除表全部数据    
数据操纵语言(DML)    SELECT、INSERT、UPDATE、DELETE    执行对数据库的表、视图等对象的查询操作,以及对表的插入、修改、删除记录操作    
数据控制语言(DCL)    COMMIT、ROLLBACK、GRANT、REVOKE    提交事务、回滚事务、授予权限、收回权限    


数据类型

数据类型    作用    存储数据说明    数据示例    
数值型    存储数值数据    INT:整数类型,取值范围[-2147483648, 2147483647];NUMBER:整数类型,取值范围0,绝对值[1E-130,1E126)    128、1280000    
字符型    存储字符数据    CHAR:定长字符串,包括英文字母、中文汉字、数字字符和特殊字符等;VARCHAR/VARCHAR2:变长字符串,包括英文字母、中文汉字、数字字符和特殊字符等    ‘YashanDB’    
日期型    存储时间数据    DATE:时间类型,包含了年、月、日、时、分、秒;

TIMESTAMP:时间戳类型,包含了年、月、日、时、分、秒、微秒    2023-01-01 00:00:00、2023-01-01 12:30:30.123456    

二、DDL语句介绍及操作

用户操作

• 创建用户并赋权:

SQL>CREATE USER sales IDENTIFIED BY 123456;
SQL>GRANT DBA TO sales;

• 使用用户连接数据库:SQL>CONN sales/123456


表操作

• 创建表:

• 示例:创建表area

SQL>CREATE TABLE area(area_no CHAR(2)NOT NULL PRIMARY KEY,area_name VARCHAR2(60),DHQ VARCHAR2(20)NOT NULL);

• 字段说明:area_no为区域编号,area_name为区域名称,DHQ为区域总部。

• 修改表:

• 删除列:

SQL>ALTER TABLE area DROP COLUMN num;

• 删除表:

SQL>DROP TABLE area;

• 添加列:

SQL>ALTER TABLE area ADD NUM number(20);

• 修改列长度:

SQL>ALTER TABLE area MODIFY DHQ VARCHAR(80);

• 清空表数据:

• SQL>TRUNCATE TABLE area;

• DELETE和TRUNCATE的区别:

• DELETE可以删除部分数据也可以删除全部数据;TRUNCATE只能删除表中所有数据。

• DELETE是DML语句,没提交事务还可以回滚;TRUNCATE是DDL语句,操作完马上生效,不能回滚。

三、DML语句介绍及操作

INSERT语句

• 插入数据:

• SQL>INSERT INTO area VALUES('01','华东','Shanghai');

• SQL>INSERT INTO area VALUES('02','华西','Chengdu');

• SQL>INSERT INTO area VALUES('03','华南','Guangzhou');

• SQL>INSERT INTO area VALUES('04','华北','Beijing');

• SQL>INSERT INTO area VALUES('05','华中','Wuhan');

• SQL>COMMIT;

• 获取插入表的表结构:

SQL>DESC area;

• 插入指定列数据:

• 示例:向area表中的area_no,area_name,dhq三列插入数据‘06’,‘东北’,‘Dalian’

• SQL>INSERT INTO area(area_no,area_name,dhq)VALUES('06','东北','Dalian');

• 注意:要插入的数据必须要和列名一一对应,如果省略列名,默认代表全部列。

• 提交插入的数据:SQL>COMMIT;


UPDATE语句

• 更新数据:

• SQL>UPDATE area SET dhq='Haerbin'WHERE area_no='06';

• 注意:如果不指定where条件,则是更新指定列的所有数据。

• 提交更新的数据:SQL>COMMIT;


DELETE语句

• 删除数据:

• SQL>DELETE FROM area WHERE area_no='06';

• 注意:如果不指定where条件,则是删除指定列的所有数据。

• 提交删除的数据:SQL>COMMIT;


SELECT语句

• 查询指定列数据:

• SQL>SELECT area_no,area_name FROM area;

• 说明:在选择多个列时,列名之间用逗号(,)隔开,最后一个列名后不需要加上逗号。

• 使用WHERE条件查询数据:

• SQL>SELECT * FROM area WHERE area_name='华东';

• 说明:WHERE语句可以指定过滤条件对查询结果进行限制输出。

• 对结果进行排序:

• SQL>SELECT * FROM area ORDER BY area_no DESC;

• 说明:ORDER BY子句可以按需排序查询出来的数据,DESC代表降序,ASC代表升序(默认是ASC)。

• 多表关联查询:

• 内连接(INNER JOIN):

• 作用:把来自表table1和表table2的公共部分的行结合起来。

• 语法:

SELECT column1,column2,...FROM table1 INNER JOIN table2 ON condition;

• 示例:查询华北地区的机构信息

• SQL>SELECT branch_name,address FROM area a INNER JOIN branches b on a.area_no=b.area_no AND area_name='华北';

• 等价写法(省略INNER JOIN):

SQL>SELECT branch_name,address FROM area a,branches b where a.area_no=b.area_no AND area_name='华北';

• 左连接(LEFT JOIN):

• 作用:从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为NULL。

• 语法:

SELECT column1,column2,...FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;

• 示例:

SQL>SELECT branches.branch_name,branches.address FROM branches LEFT JOIN area on branches.area_no=area.area_no;

• 右连接(RIGHT JOIN):

• 作用:从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为NULL。

• 语法:

SELECT column1,column2,...FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name;

• 示例:

SQL>SELECT area.area_no,area_name,branch_name FROM branches RIGHT JOIN area on branches.area_no=area.area_no;

• 全连接(FULL JOIN):

• 作用:返回两个表中的所有记录,并且对于那些在另一个表中没有匹配的记录,会填充NULL值。

• 语法:

SELECT column1,column2,...FROM table1 FULL JOIN table2 ON table1.column_name=table2.column_name;

• 示例:

SQL>SELECT area_name,branch_name,address FROM branches FULL JOIN area on branches.area_no=area.area_no;

四、DCL语句介绍及操作

用户和权限操作

• 创建用户:

SQL>CREATE USER ycauser IDENTIFIED BY yca123456;

• 给用户授予CONNECT角色:

SQL>GRANT CONNECT TO ycauser;

• 回收用户CONNECT角色:

SQL>REVOKE CONNECT FROM ycauser;


事务操作

• ROLLBACK(回滚):

• 示例:

• SQL>CONN sales/123456

• SQL>INSERT INTO area(area_no,area_name,dhq)VALUES('06','东北','Dalian');

• SQL>ROLLBACK;

• COMMIT(提交):

• 示例:

• SQL>INSERT INTO area(area_no,area_name,dhq)VALUES('06','东北','Dalian');

• SQL>COMMIT;

五、总结

• Yashan DB SQL语句可以分为DML、DDL和DCL。

• DDL语句用于表的创建、字段修改等操作。

• DML语句包括SELECT、INSERT、UPDATE、DELETE语句,以及多表查询。

• DCL语句用于创建用户、授权、回收

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

相关文章:

  • OSCP最新备考攻略:迎接2024改版后的OSCP+认证
  • STM32-I2C通信协议
  • 苦瓜书盘官网,免费pdf/mobi电子书下载网站
  • SyntaxError: Unexpected identifier
  • 期权帮|中证1000股指期权交割结算价怎么算?
  • WEB登录认证与鉴权
  • (七)企业级高性能 WEB 服务 - HTTPS 加密
  • C语言_数据结构总结4:不带头结点的单链表
  • fopen
  • 简单的二元语言模型bigram实现
  • Maxbotix超声波测距传感器:高灵敏度与抗干扰能力,确保复杂环境中的稳定性能
  • 一周学会Flask3 Python Web开发-SQLAlchemy简介及安装
  • 4.归一化技术:深度网络中的关键优化手段——大模型开发深度学习理论基础
  • R语言使用scitable包交互效应深度挖掘一个陌生数据库
  • 数字化转型的点、线、面、体
  • 基于磁数据的伤痕、生锈、断丝分类训练平台搭建规划
  • 单细胞的一组基因或富集分数的高低表达分组差异分析作图教程
  • 【GoTeams】-4:为项目引入etcd
  • Day03 反向代理配置 -V2024小迪全栈
  • Baklib驱动企业知识资产增值
  • MySQL有哪些高可用方案?
  • Bazel搭建CUDA工程入门
  • Spring Boot + MyBatis + MySQL:快速搭建CRUD应用
  • Vue 2 和 Vue 3 区别
  • 数据类型——long long
  • Jupyter Notebook 入门教程
  • P8:使用pytorch实现YOLOv5-C3模块
  • STM32之软件SPI
  • DeepSeek 医疗大模型微调实战讨论版(第一部分)
  • 一周学会Flask3 Python Web开发-SQLAlchemy连接Mysql数据库