1、SQL分类
1.1SQL概述
什么是SQL语言
- SQL(Structured Query Language)是结构化查询语言。
- SQL是一种用于访问和管理数据库的标准计算机语言。
- SQL语言集数据定义、操纵、控制功能于一体。
1.2SQL优点
- SQL不是某个特定数据库供应商专有的语言,几乎所有关系型数据库都支持SQL。
- SQL是简单易学的语言。
- SQL是一种强大的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
1.3数据类型
1.4DML语句介绍及操作
01、创建示例表
创建示例用户
SQL> CREATE USER sales IDENTIFIED BY "Sxc1%sd27" ;
SQL> GRANT DBA TO sales ;
后 续 案 例 , 都 是 在sales用 户 下 操 作 。
切换到sales用户下操作
SQL > conn sales;
please input password :
提 示 输 入 密 码 , 输 入 我 们 上 面 设 置 的 密 码 即 可
创建示例表area
SQL >CREATE TABLE area
( area_ no CHAR(2) NOT NULL PRIMARYKEY,
area_namE VARCHAR2(60),
DHQ VARCHAR2(20) DEFAULT 'ShenZhen' NOT NULL);
列 名 : area_no 区 域 编 号 。
列 名 : area_name 区 域 名 称 。
列 名 : D H Q 区 域 总 部 。
插入示例数据
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;
1.4.1 select操作
02、查询单个列
SQL > SELECT area_name FROM area ;
03、查询多个列
SQL >SELECT area_no,area_name FROM area;
04、查询所有列
SQL >SELECT * FROM area;
1.4.2where操作
01、使用WHERE条件
SQL >SELECT * FROM area WHERE area_name = '华 东' ;
1.4.3ORDER BY操作
02、 对结果进行排序
SQL >SELECT * FROM area ORDER BY DHQ;
03、对结果进行降序排序
SQL >SELECT * FROM area ORDER BY DHQ DESC;
分析
- ORDER BY子句的默认是升序排序,如果需要降序排序使用DESC关键。
- DESC关键字可以根据需要降序排序查询出来的数据。
1.4.4多表关联查询
为什么要使用多表关联查询
- 如果所需的数据存储在多个表中,怎么样查询出来数据呢?
- 这时候就需要用到多表关联查询,多表关联查询需要用到JOIN语句。
- JOIN语句作用是把两个或多个表的行结合起来,返回这些表的共同数据。
多表关联查询一般可以分为:
内连接 INNER JOIN
左连接 LEFT JOIN
右连接 RIGHT JOIN
全连接 FULL JOIN
INNER JOIN可以描述为:把来自表table1和表table2的
公共部分的行结合起来,如右图所示:
INNER JOIN语法:
SELECT column1, column2, . . .
FROM table1
INNER JOIN table2 ON condition ;
参数说明:
c o l u m n 1 , c o l u m n 2 , . . . : 要选择的列名称,可以为多个列 。 如 果不指定列名称, 则会选择所有列 。
table1 : 要 连 接 的 第 一 个 表 。
table2 : 要 连 接 的 第 二 个 表 。
condition : 连 接 条 件 , 用 于 指 定 连 接 方 式 。
1.4.5 INSERT INTO操作
01、获取插入表的表结构(注意:DBeaver暂不支持DESC语句)
SQL > DESC area ;
02、插入语句INSERT
SQL > INSERT INTO area (area_no,area_name,dhq) VALUES('06','东北','Dali an') ;
SQL > COMMIT;
1.4.6UPDATE操作
01、更新表中部分数据
SQL > UPDATE area SET dhq = 'Haerbin' WHERE area_no = '06' ;
SQL > COMMIT ;
1.4.7DELETE操作
01、删除表中部分数据
SQL > DELETE FROM area WHERE area_no = '06' ;
SQL > COMMIT ;
02、删除表中所有数据
SQL > DELETE FROM area ;
SQL > COMMIT ;
1.5DDL语句介绍及操作
1.5.1 TRUNCATE
清空表中所有数据
SQL > TRUNCATE TABLE area ;
DELETE和TRUNCATE 都可以删除表中数据,他们的区别如下:
DELETE可以删除部分数据也可以删除全部数据;TRUNCATE只能删除表中所有数据。
DELETE 是DML语句,没提交事务还可以回滚;TRUNCATE是DDL 语句,操作完马上生效,不能回滚。
1.5.2 表
01、创建表area_01
SQL > CREATE TABLE area_01
( area_no CHAR(2) NOT NULL PRIMARY KEY,
area_name VARCHAR2(60) ,
DHQ VARCHAR2(20) NOT NULL) ;
n02、添加NUM列
SQL > ALTER TABLE area_01 ADD NUM number(20) ;
03、修改列的长度
SQL > ALTER TABLE area_01 MODIFY DHQ VARCHAR(80);
04、删除列
SQL > ALTER TABLE area_01 DROP COLUMN num ;
05、删除表
SQL > DROP TABLE area_01 ;
1.5.3索引
01、创建索引
SQL > CREATE TABLE area_02
( area_no CHAR(2) NOT NULL PRIMARY KEY,
area_name VARCHAR2(60),
DHQ VARCHAR2(20) NOT NULL) ;
SQL > CREATE INDEX idx_area_02_area_name ON area_02(area_name) ;
02、重建索引
SQL > ALTER INDEX idx_area_02_area_name REBUILD;
03、删除索引
SQL > DROP INDEX idx_area_02_area_name ;
1.5.4视图
1.6 DCL语句介绍及操作
1.6.1用户概述
用户(User),即登录数据库的账号,是能对数据库进行访问的一个逻辑的对象。 YashanDB中的用户分为系统用户与普通用户。
系统用户
系统用户是预置在YashanDB产品中的用户,其账号名称为sys,超级管理员,负责数据库系统的管理,拥有全部的权限。其密码通过yaspwd工具生成和维护。
普通用户
通过CREATE USER语句创建的用户为普通用户,对普通用户进行授权后,即可明确其对应的身份,例如DBA、安全管理员、采购录入员、报告分析员等。
1.6.2权限概述
权限机制是YashanDB安全体系的其中一部分,目的是将数据库中的数据及对数据的操作按照使用者的不同身份进行隔离,避免发生数据的破坏和泄露事件。
通过YashanDB所提供权限相关功能的支持,按照企业的实际业务,进行企业权限体系规划,可以让数据库管理员更有效地管理数据库的使用和保障数据库的安全。例如:
- 通过定义角色,来划分用户的行为,用户的行为可能由其岗位和职能来确定,如销售部门的数据分析岗。
- 通过角色授权,来控制用户的访问策略,如对于销售部门的数据分析岗,赋予其所拥有的数据库对象级权限和系统级权限。
- 某些情况下,收回用户的角色,或者收回角色的某个权限。
YashanDB实现的权限机制包括:
角色:包括系统内置角色和用户自定义角色。
系统权限:允许用户执行特定的数据库动作,如创建表、创建索引等。
对象权限:允许用户操纵一些特定的对象,如读取视图,可更新某些列等。
1.6.3 内置角色
YashanDB内置角色说明:
DBA:具有比较高级的权限,比如可以创建用户、删除用户。将DBA角色授权给一个普通用户后,该用户即成为拥有角色包含管理权限的管理员。
CONNECT:CONNECT角色具有CREATE SESSION权限,通过赋予CONNECT角色使用户能够登录会话。
RESOURCE:RESOURCE角色具有CREATE TABLE、CREATE SEQUENCE、CREATE PROCEDURE、CREATE TRIGGER的权限。
注意:
- 一个程序应用账号最少应该具备CONNECT和RESOURCE权限。
- DBA角色具有较高权限,谨慎授予。
01、创建用户
SQL > CREATE USER ycauser IDENTIFIED BY yca123456 ;
n 02、给用户授予CONNECT角色
SQL > GRANT CONNECT TO ycauser;
n 03、回收用户CONNECT角色
SQL > REVOKE CONNECT FROM ycauser;
04、给用户授予CONNECT和RESOURCE角色
SQL > GRANT CONNECT TO ycauser ;
SQL > GRANT RESOURCE TO ycauser ;
登录ycauser用户后,创建测试表:
YCA官方报名链接:https://www.yashandb.com/YCA_courses