【SQL Server + MySQL二 】SQL: DDL数据定义【定义、修改、删除基本表】,DML【憎删改查】,DCL数据控制语言

news2025/1/15 23:27:12

极其感动!!!当时学数据库的时候,没白学!!

  • 时隔很长时间回去看数据库的笔记都能看懂,每次都靠这份笔记巩固
  • 真的是语雀分享要花钱,要不一定把笔记给贴出来
  • (;´༎ຶД༎ຶ`) ,除了vue和react之外,最常看的一份笔记了!!!!

xd们,一定要收藏粘贴下来,真的没有自夸!!!!

  • 当时学的时候,想来:就一份笔记么?脑子有病的人才一直记来记去的【框框自嘲】!有啥可分享的?现在,真香!!!

文章目录

  • 三、关系数据语言-- SQL概述
    • 3-1 SQL概述
    • 3-2 DDL 数据定义功能
      • 3-2-1 定义基本表
        • 3-2-1-1 创建基本表
          • 3-2-1-1-1
          • 3-2-1-1-2 表级完整性约束 与 列级完整性约束
      • 3-2-2 SQL支持的数据类型
        • 3-2-3-1
        • 3-2-3-2 创建教学数据库中四个基本表
      • 3-2-3 修改基本表
        • 3-2-3-1
      • 3-2-4 删除基本表
    • 3-3 DML
      • 3-3-1 SELECT 表单查询
        • 3-3-1-1 单表查询
          • 3-3-1-1-1 select子句 : 查询指定**属性列** :
          • 3-3-1-1-2 选择表中若干元组【where】
          • 3-3-1-1-3 对查询结果排序【5.3P22】
          • 3-3-1-1-4 使用集函数【统计不计Null值】
        • 3-3-1-2 连接查询
          • 3-3-1-2-1 交叉连接(广义笛卡尔积)
          • 3-3-1-2-1 交叉连接(自身连接)
      • 3-3-3 SQL---数据更新UPDATE
        • 3-3-3-1
        • 3-3-3-2 完整性校验
        • 3-3-33 修改数据
      • 3-3-4 删除
        • 3-3-4-1
        • 3-3-3-2 带子查询的删除语句
    • 3-4 视图
      • 3-4-1 关系(Relations)
      • 3-4-2 定义视图(DDL)
      • 3-4-3 建立视图 :
        • 3-4-3-1 例子 :
      • 3-4-4 删除视图
        • 3-4-4-1 删除视图 例子
      • 3-4-5 查询视图
      • 3-4-6 更新视图[避免]
      • 3-4-7 视图的作用
    • 3-5 索引
      • 3-5-1 建立与删除索引
      • 3-5-2-1 建立索引
        • 3-5-2-2 删除索引
    • 3-6 DCL【数据控制语言,grant和revoke(授权和回收权力)】 和嵌入式SQL
      • 3-6-1
      • 3-6-2 SQL语言的两种使用方式

三、关系数据语言-- SQL概述

image-20220321151753082

3-1 SQL概述

  1. 关系数据库的标准语言

  2. 特点 :

    • 综合统一: DDL,DML,DCL
    • 高度非过程化
    • 面向集合的操作方式
    • 同一种语法结构提供两种使用方式
      • 自含式语言
      • 嵌入式语言
    • 语言简洁
  3. SQL三大类11个命令词 :

    • 数据定义DDL : create,drop,alter
    • 数据操纵DML : select ,insert,update,delete
    • 数据控制DCL:grant,revoke
  4. SQL支持数据库的三级模式结构 :

    image-20220321152506490

  5. 用户用SQL语言对 基本表、视图、索引等进行操作

    • 基本表(模式)
    • 存储文件(内模式)
    • 视图(外模式)

    image-20220321152730385

3-2 DDL 数据定义功能

    • 定义表(模式)
      • 创建删除表,修改表定义
    • 定义视图(外模式)
      • 创建删除视图
      • 间接修改视图定义 : 删除+创建
    • 定义索引(内模式)
      • 创建删除索引
      • 间接修改索引定义 : 删除+创建
  1. 定义、删除与修改基本表

3-2-1 定义基本表

3-2-1-1 创建基本表

3-2-1-1-1
  1. 定义基本表 :

    • 关系名(表名)
    • 属性名(列名)
    • 属性数据类型
    • 完整性约束
  2. 定义基本表语法格式 :

    image-20220321153303039

  3. 例子:

    create database teach;   -- 建表
    use teach;
    create table student{
    	sid char(8) primary key,
    	sname varchar(20) not null,
    	sqender char(1),
    	sdept int,
    	sbirth date
    };
    
3-2-1-1-2 表级完整性约束 与 列级完整性约束
  1. 常用完整性约束

    • 主码约束 : primary key
    • 参照完整性约束 : foreign key...references...
    • 唯一性约束 : unique
    • 非空值约束 : not null
    • 取值约束 : check
  2. SQL支持的数据类型

    • 整数数据

      • bigint

      • int

      • smallint

      • tinyint

      • bit

        image-20220423091949442

    • 精确数值数据

    • decimal

    • numeric

      image-20220423091941113

    • 浮点数值数据

      • float :

      • real

      • image-20220423092143814

    • 字符串数据

      • char

      • varchar

        image-20220423092213532

    • 日期数据类型

      image-20220423092250291

3-2-2 SQL支持的数据类型

3-2-3-1

  1. 整数数据

    • bigint:以8个字节来存储正负数,范围 : -263 到 263 - 1
    • int : 4个字节
    • smallint : 2个字节
    • tinyint : 最小的整数类型,存储正负数
    • bit : 值只能是0 或 1

    image-20220321154340072

  2. 精确数值 数据

    • decimal : 存储从
    • numeric
  3. 浮点 数值 数据

    • float
    • real
    • image-20220321154719784
  4. 字符串数据

    • char
    • varchar
    • image-20220321154758653
  5. 日期时间数据

    • date : 日期类型
    • time
    • datetime
    • image-20220321154836676
  6. 例子 :

    • 建立一个”学生选课“表SC,由学号Sno,课程号Cno,成绩Grade组成,其中(Sno,Cno)为主码

    • Create table SC(
      	Sno char(5),
          Cno int,
          Grade int,
          primary key(Sno,Cno)
      )
      

3-2-3-2 创建教学数据库中四个基本表

  1. image-20220321163630884

  2. create table T(
    	TID char(4),
        Tname varchar(8) not null,
        title varchar(10),
        primary key(TID)
    );
    
     table C(
    	CID char(4),
        CNAME varchar(10) not null,
        TID char(4),
        primary key(CID),
        foreign key(TID) references T(TID)
    )
    
    create table S(
    	SID char(4) primary key,
        SNAME varchar(10) not null,
        age samllint,
        sex char(1)
    )
    
    create table SC(
    	SID char(4) not null,
        CID char(4) not null,
        score real,
        primary key(SID, CID),
        foreign key(SID) references S(SID),
        foreign key(CID) references C(CID)
    )
    

3-2-3 修改基本表

3-2-3-1

  1. 增加 列 【可以 增删列,可以增删完整性约束】

    • alter table STUDENT add CTIME datetime
    • alter table STUDENT add primary key(sid)
  2. 删除列

    • alter table STUDENT drop CTIME

    • 删除主键约束 :

      • alter table SYUDENT drop 主键约束的名字
    • 删除 学生姓名必须取唯一值的约束

      • alter table STUDENT drop unique(Sname)
    • 删除 一列

      alter table Student drop column score;

  3. 修改列数据类型

  • alter table SC alter column score INT;

3-2-4 删除基本表

  1. drop table <表名>;

3-3 DML

3-3-1 SELECT 表单查询

  1. 查询语句格式 :

    select A,B,...C
    from r,t,y
    where condition
    Group By columns
    Having condition
    Order by columns
    

    image-20220423095904647

  2. 两者不同 :

    • select是等值选择
    • 在condition中要有等值连接条件
    • select结果不是集合是包,复元组

3-3-1-1 单表查询

-- 查询语句格式
select [all|distinct]
	<目标列表达式>[<别名>]
	<目标列表达式>[<别名>]
from <表名或视图名>[别名]
	[<表名或视图名>[别名]]
[where<条件表达式>]
[group by<列名>]
	[having<条件表达式>]
[ordedr by <列名>]
	

image-20220423100036539

  1. 查询涉及一个表,是一种最简单的查询操作

    • 选择表中的若干列 : select 子句
    • 选择表中的若干元组 : where 子句
    • 对查询结果排序 : order by 子句
    • 使用集函数 : 5个集函数
    • 对查询结果分组 : group by 子句
    • 对分组之后结果进行筛选 : having 子句
  2. 选择表中的若干列 :

  • 属投影运算 : 不消除重复行
3-3-1-1-1 select子句 : 查询指定属性列 :
    • 查询所有列
    • 查询经过计算的值
  1. 例题 :

    • 查询全体学生的学号与姓名
    select sno,sname from student;
    

    image-20220328153539565

  2. 例题 :

    • 查询全体学生的姓名及其出生年份

      select ssex,2020-age from student;
      select sname,year(getdate())-sage as 'birth' from student;
      select year(getdate())
      
      • year(): 返回指定日期的“年”日期部分的整数
  3. 例题 :

    select Sname,'Year of Birth:',2020-Sage,Lower(Sdept) from Student;
    

    image-20220328154431036

select Sname Name,'Year of Birth:' BIRTH,2020-Sage BIRTHDAY,lower(Sdept) department
from student;

image-20220328154649854

3-3-1-1-2 选择表中若干元组【where】
  1. 消除取值重复的行
  • 在SC表中查询选修了课程的学生学号【一个学生选修多项,会有重复的学号】

    select distinct Sno from SC;
    
  • 查询选修课程的各种成绩

    select distinct Cno,Grade from SC;
    
  1. 查询满足条件的元组

    • 选择运算
      • 通过 where Condition子句实现
      • image-20220329103332760
  2. 【where】查询计算机系全体学生的名单

    select Sname from Student where Sdept = 'CS'
    

    image-20220329103543256

  3. 【where】

    • 使用谓词 :Between…and…

    • not between … and…

      • between 后: 范围的下限
      • and后:范围的上限
    • 多重条件查询实现

    • select Sname,Sdept,Sage
      from Student
      where Sage between 20 and 23
      
  4. 【where】【确定集合】使用谓词:

    • in<值表>

    • not in<值表>

    • <值表> : 用逗号分隔的一组取值

    • 查询是信息系、数学系和计算机科学系的学生的姓名和性比

      select name,Ssex
      from  Student 
      where Sdept in('IS','MA','CS')
      
  5. 【where】【字符串匹配】使用谓词 LIKE或NOT LIKE

    • [not] like ‘<匹配串>’[escape’<换码字符>']

    • 通配符 :

      • % : 代表任意长度的字符串
      • _ : 代表任意单个字符
    • 查询姓”欧阳“且全名为三个汉字的学生的姓名

      • 
        select Sname,Sno,Ssex
        from Student
        where Sname like '欧阳_'
        
  6. Escape 短语

    • 当用户查询的字符串本身含有 % 或_时,要使用**ESCAPE’<换码字符>'**短语对通配符进行转义

    • 查询DB_…i…

      select *
      from Course
      where Cname Like 'DB\_%i__' ESCAPE '\';
      
  7. 涉及空值的查询

    • 使用谓词IS NULL 或者IS NOT NULL

    • select Sno,Cno
      from SC
      where Grade is null;
      
  8. 多重条件查询

    • 逻辑运算符and和or来联结多个查询条件

      • and优先级高于or
      • 用括号改变优先级
    • select Sname
      from Student 
      where Sdept = 'CS' and Sage<20;
      
    • 查询信息系(IS)/数学系(MA)和计算机(CS)学生的姓名和sex

      select Sname,Ssex
      from student
      where Sdept in('IS','MA','CS')
      
    • image-20220329115811302

3-3-1-1-3 对查询结果排序【5.3P22】
  1. 使用ORDER BY 一个列名或多个列名子句 :

    • 按一个或多个属性列排序
    • 升序: ASC;降序:DESC缺省值为升序
  2. 当排序列含空值时

    • ACS:排序列为空值得元组最后显示
    • DESC: 排序列为空值得元组最先显示
  3. 例题 : 查询选修了3号课程的学生的学号及成绩,查询结果按分数降序排列

select Sno,Grade
	from SC
	where Cno = 3
	order by Grade desc;
  1. 例题 : 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中得学生按年龄降序排列

    select * 
    from Student
    order by Sdept,Sage desc
    
3-3-1-1-4 使用集函数【统计不计Null值】
  1. 统计个数 : count(<列名>)

    • 计算列总和 : sum(<列名>)
    • 计算列平均值 : avg(<列名>)
    • 求列最大值 : max(<列名>)
    • 求列最小值” min(<列名>)
    • 注意 :
      • 统计时不计NULL值
      • COUNT(*) : 统计行数
      • DISTINCT :在列名前加DISTINCT,则统计时去掉重复行
  2. 例题 :

    • 查询学生的总人数:

      • select count(*) from student
      • select count(sno) from student
    • 查询选修了课程的学生人数

      • select count(distinct Sno) from SC
    • 计算1号课程的学生平均成绩

      select avg(Grade)
      	from SC
      	where Cno = 1;
      
    • 查询选修1号课程的学生最高分数

    select max(Grade)
    	from SC
    	where Cno = 1;
    
  3. 对查询结果 分组

    • 分组方法 : 按指定的一列或多列值分组,值相等为一组
    • 使用group by 字句后,select子句的列名列表中只能出现分组属性和集函数
    • group by子句的作用对象是查询的中间结果表
  4. 【对查询结果分组】求各个课程号及相应的课程成绩在90分以上的学生人数

    select Cno,Count(Sno) 
    	from sc
    	where Grade >= 90
        grounp by cno;
    
    • 求各个课程号及相应的选课人数

      select cno,count(*) from sc group by cno
      
  5. 使用having短语筛选最终输出结果

    • 只用满足having短语指定条件的组才输出
  6. having短语 与where子句的区别 : 作用对象不同

    • 查询选修3门以上课程的学号

      select Sno 
      	from SC
      	group by Sno
      	having count(*) >= 3
      
    • 查询有3门以上课程在90分 以上的学生的学号及90分以上的课程数

      select Sno, count(*)
      	from SC
      	where Grade >= 90
      	group by Sno
      	having count(*) >= 3;
      
  7. 统计每门课程的最高分

    select cno,max(grade)
    	from SC
    	group by cno
    

3-3-1-2 连接查询

3-3-1-2-1 交叉连接(广义笛卡尔积)
  1. 等值连接

    • 查询每个学生及其选修课程的学生
      • select Student.*,SC.* 
        	FROM Student,SC
        	where Student.Sno = SC.SNO;
        
      • 等值连接
  2. 查询计算机系(CS)学生的学号、姓名、所在系,选修的课程号,课程名和成绩

select SC.Sno,Sname,Sdept,SC.Cno,Cname,Grade
	from Student,SC,Course
	where Student.Sno = SC.Sno and Course.Cno = SC.Cno and Sdept='CS';
3-3-1-2-1 交叉连接(自身连接)
  1. select a1.Cname,a2.Cname
    	from Course a1,Course a2
    	where a1.Cpno = a2.Cno
    

3-3-3 SQL—数据更新UPDATE

3-3-3-1

  1. image-20220331205446514

  2. 插入数据

    • 插入单个元组

      insert 
      	into <表名>[(<属性列1>)],
      	values (<常量1>[,<常量2>]...)
      
      • 功能 : 把新元组插入指定表中
    • 插入子查询结果

      insert into <表名>
      [(<属性列1>[,<属性列2>…])]
      子查询;

      
      - 
      
      
  3. 插入数据—例子 :

    • 将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;18岁)插入到Student表中

      insert 
         into Student 
         values('95020','陈东', 'M',18,'IS');
      insert into SC(Sno,Cno)
      	values('95020',1);
      insert into SC values('95020',2,null),('95021',2,null),('95022',2,null)
      
  4. 插入子查询—例子 :

    -- 建表
    create table Deptage(Sdept char(15)),Avage smallint);
    
    -- 插入数据
    insert into Deptage(Sdept,Avgage)
    	select Sdept,Avg(Sage)
    	from Student
    	group by Sdept;
    

3-3-3-2 完整性校验

  1. DBMS在形式插入语句时会检查元组是否破环表上已定义的完整性规则
    • 实体完整性
    • 参照完整性
    • 用户定义的完整性
      • 有NOT NULL约束的属性列是否提供非空值
      • 对于有unique约束的属性列是否提供了非重复值
      • 对于有值域约束的属性列所提供的属性值是否在值域范围内

3-3-33 修改数据

  1. 修改指定表中满足where子句条件的元组

    update <表名>
    	set <列名>=<表达式>
    	where <条件>
    
  2. 三种修改方式

    • 修改某一个元组的值
    • 修改多个元组的值
    • 带子查询的修改语句
  3. 修改某一个元组的值

    • 将学生95001的年龄改为22岁

      update Student
      	set Sage = 22
      	where Sno= '95001';
      
    • 将所有学生的年龄增加1岁

      update student set Sage = Sage+1;
      
    • 将信息系所有学生的年龄增加1岁

      update Student
      	set Sage = Sage +1
      	where Sdept ='IS'
      
  4. 带子查询的修改语句

    • 将计算机科学系全体学生的成绩置0

      update SC
      	set Grade=0
      	where 'CS'=(select Sdept from Student where Student.Sno = SC.Sno);
      

3-3-4 删除

3-3-4-1

    • 删除某一个元素的值
    • 删除多个元组的值
    • 带子查询的删除语句
    • 删除学号为95019的学生记录
    delete 
    	from Student
    	where Sno = '95019';
    
    • 删除2号课程 的所有选课记录

      delete
      	from SC
      	where Cno = 2;
      
    • 删除所有的学生选课记录

      delete from SC;
      
  1. 带子查询的删除语句 :

  • 删除计算机科学系所有学生的选课记录

    delete 
    	from SC
    	where 'CS'=(select Sdept 
                   from Student
                   where Student.Sno = SC.Sno)
    

3-3-3-2 带子查询的删除语句

3-4 视图

3-4-1 关系(Relations)

  1. 三种类型关系

    • 表(Table)-- 基表,存储关系(Base tables,Stored relations)
    • 视图(Views)— 虚拟关系
    • 临时结果—用于构建子查询的结果
  2. SQL支持数据库的三级模式结构 :

    • image-20220331213156833
  3. 视图的特点 :

    • 虚表 : 一个或几个基本表(或视图)导出的表
    • 只存放试图的定义,不会出现数据冗杂
    • 基表中的数据发生改变,从试图中查询出的数据也随之改变
  4. 基于视图的操作

    • 定义视图(DDL)
      • 建立
      • 定义基于该视图的新视图
      • 删除
    • 查询视图(DML)
    • 更新视图(DML)

3-4-2 定义视图(DDL)

  1. 建立视图 :

    create view <视图名>[<列名>]
    	as <子查询>
    	[with check option];
    
  2. 组成视图的属性列名或全部省略或全部指定 :

    • 省略视图的各个属性列名,则隐含该视图由子查询中select子句目标列中的各字段组成
    • 必须明确指定组成视图的所有列名的情形 :
      • 某个目标列不是单纯的属性名,而是集函数或列表达式
      • 目标列为*
      • 多表连接时选出了几个同名列作为视图的字段
      • 需要在视图中为某个列启用新的合适的名字
  3. 视图定义的select语句 :

    • 不能包含order by子句和distinct短语
  4. with check option

    • 透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式)

3-4-3 建立视图 :

  1. DBMS执行create view语句时只是把视图的定义存入数据字典,并不执行其中的select语句

  2. 只是对视图查询时,才按视图的定义从基本表中将数据查出

  3. 行列子集视图

    • 从单个基本表导出

    • 只是去掉了基本表的某些行和某些列,但保留了

    • 例子 : 建立信息系学生的视图 :

      create view V_StuIS as
      	select Sno,Sname,Sage
      	from Student
      	where Sdept='IS'
      
  4. with check option 的视图 :

  • 建立信息系学生的视图,并要求透过该视图进行的更新操作涉及信息系学生

    create view V_STUIS
    	as select Sno,Sname,Sage from Student
        where Sdept = 'IS' with check option;
    
  • 对V_StuIS 视图的更新操作 :

    • 修改操作 : DBMS自动加上Sdept =‘IS’的条件
    • 删除操作: DBMS自动加上Sdept=’IS’的条件
    • 插入操作 : DBMS 自动检查Sdept属性值是否为’IS’
      • 如果不是,则拒绝该插入操作
      • 没有提供Sdept属性值,则自动定义Sdept为’IS’
  1. 基于多个基表的视图

    • 建立信息系选修了1号课程的学生视图

      create view V_S1(Sno,Sname,Grade)
      	ass select Student.Sno,Sname,Grade
      	from Student,SC
      	where Sdept = 'IS' and
      		Student.Sno = SC.Sno and
      		SC.Cno = 1;
      
  2. 基于视图的视图 :

    • 建立信息系选修了1号课程且成绩在90分以上的学生的视图

      create view V_S2
      	as 
      	select Sno,Sname,Grade
      	from V_S1
      	where Grade >= 90;
      
      • 视图建立在V_S1之上
  3. 带表达式的视图 :

3-4-3-1 例子 :

  1. 建立1号课程的选课试图,并要求透过该视图进行更新操作时只涉及1号课程

    create view V_SCCno
    	as
    	select Sno,Cno,Grade
    	from SC
    	where Cno = 1
    	with check option;
    
  2. 以select * 方式创建的视图

    • 将student表中所有女生记录定义为一个视图

      create view V_Student1(stdnum,name,sex,age,dept)
      	as select *
      	from Student
      	where Ssex='女'
      
    • 修改基表Student的结构后,Student表与V_Student1视图的映像关系,导致视图不能正确工作

  3. 上例可以这样写 :

    create view V_Student2(stdnum,name,sex,age,dept)
    	as select Sno,Sname,Ssex,Sage,Sdept
    	from Student
    	where Ssex='女'
    
    • 为基表Student增加属性列不会破坏Student表与V_Student2视图的关系

3-4-4 删除视图

  1. drop view <视图名>;
    • 该语句从数据字典中删除指定的视图定义
    • 由该视图到处的其他视图定义仍在数据字典中,但已不能使用,必须删除
    • 删除基表时,由该基表导出的所有视图定义都必须删除

3-4-4-1 删除视图 例子

  1. 删除视图V_S1

    drop view V_S1;

    • 执行此语句后,V_S1 视图的定义将从数据字典中删除,

3-4-5 查询视图

  1. 例1 : 在信息系学生的视图中找出年龄小于20岁的学生

    image-20220401110813216

3-4-6 更新视图[避免]

  1. DBMS :
    • 视图实体化法(View Materialization)
    • 视图消解法(View Resolution)

3-4-7 视图的作用

  1. 视图最终定义在基本表上,对视图的一切操作最终要转换对基本表的操作
  2. 对于非行列子集视图进行查询或更新时还有可能出现问题
  3. 视图的作用 :
    • 能够简化用户的操作
    • 使用户能以多种角度看待同一种数据
    • 视图对重构数据库提供了一定程度的逻辑独立性
    • 视图能够对机密数据提供安全保护

3-5 索引

3-5-1 建立与删除索引

  1. 建立 索引是加快查询速度的有效手段
  2. 建立索引
    • DBMS自动建立
      • Primary key
      • unique
    • DBA或表的属主(即建立表的人)根据需要建立
  3. 维护索引 : DBMS自动完成
  4. 使用索引 :DBMS自动选择是否使用索引以及使用哪些索引

3-5-2-1 建立索引

  1. create [unique][cluster] index <索引名>
    	on<表名>(列名)
    
    • <表名>指定要建索引的基本表名字
    • 索引可以建立在该表的一列
    • 用<次序>指定索引值的排列次序,升序 : ASC,降序:DESC
    • unique 表名此索引的每一个索引值值对应唯一的数据记录
  2. 唯一值索引 :

    • 对于已含重复值的属性列不能建unique索引
    • image-20220401113840422

3-5-2-2 删除索引

  1. drop index<索引号>
    • 删除索引时,系统会从数据字典中删除有关该索引的描述
    • 例子 : 删除Student表的idx_Stusname索引
      • drop index idx_Stusname;

3-6 DCL【数据控制语言,grant和revoke(授权和回收权力)】 和嵌入式SQL

3-6-1

  1. 完整性 :
    • 数据库的完整性 : 数据库中数据的有效性、正确性和相容性
    • SQL语言定义完整性约束条件
      • 取值唯一的列
      • 参照完整性
      • 其他约束条件
  2. 并发控制 :
    • 多个用户并发对数据库进行操作时,对他们加以控制、协调,以保证并发造作正确执行,并保证数据库的一致性
  3. 恢复
  4. 安全性

3-6-2 SQL语言的两种使用方式

  1. 在终端交互方式使用,称为交互式SQL
  2. 嵌入在高级语言的程序中使用,称为嵌入式SQL
    • 宿主语言: java,C

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

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

相关文章

SpringCloud搭建微服务之OAuth2实现SSO单点登录

SSO单点登录实现方式有多种&#xff0c;在这里不介绍理论&#xff0c;本文只讨论采用spring-security-oauth2来实现&#xff0c;本文共有三个服务&#xff0c;一个权限认证中心&#xff0c;两个客户端 1. 认证服务搭建 1.1. 引入核心依赖 <dependency><groupId>…

网络服务---OSI七层参考模型及各层工作原理详解

OSI网络模型概念 OSI模型&#xff08;Open System Interconnection/Reference Model&#xff09;是指国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架&#xff0c;简称OSI。1981年&#xff0c;为了解决不同体系结构的网络的互联问题&#xff…

在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能

在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能 一&#xff1a;在IDEA中配置MySQL数据库连接 第一步&#xff1a;在IDEA右侧区域有database选项&#xff0c;点击进去 第二步&#xff1a;database -> data soucre -> mysql 第三步&#xf…

只看优点,这2款可视化产品你更心水谁?

现代的数据可视化设计一般喜欢追求更加高效的工具&#xff0c;我们在选择可视化工具的时候&#xff0c;一定会被繁多的可视化产品晃得眼花缭乱。今天给大家推荐2款我用过的可视化软件&#xff0c;不谈缺陷&#xff0c;只看优点&#xff0c;看看哪款更和你的心意吧&#xff01; …

Acrel-2000M马达保护与监控系统解决方案具有保护、遥控功能可实现无人或少人值守

安科瑞 李可欣 具体可咨询&#xff1a;Acrel_lkx Acrel-2000M马达保护与监控系统&#xff0c;是根据马达监控系统自动化及无人值守的要求&#xff0c;总结国内外的研究和生产的先进经验&#xff0c;专门研制出的新一代马达监控系统。本系统具有保护、遥测、遥信、遥脉、遥调、…

瑞吉外卖(五) 全局异常处理

全局异常处理如何进行全局异常处理&#xff1f;效果展示**ControllerAdvice**如何进行全局异常处理&#xff1f; 效果展示 ControllerAdvice 本质上就是Component&#xff0c;然后&#xff0c;我们来看一下此类的注释&#xff1a; 这个类是为那些声明了&#xff08;ExceptionH…

Airtest手机APP自动化操作微信

感觉Appium太垃圾了&#xff0c;于是顺手学了下Airtest 安装并解压 官网&#xff0c;有很显眼的下载按钮 下载完zip文件后进行解压 启动自带AirtestIDE.exe 不想登录的可以跳过 因为提前通过数据线连接了手机和电脑了&#xff0c;所以一进去就显示已经连接到手机设备了 当然…

前端css元素yi

996技术站 - 活在未来 | KingSun966技术站&#xff0c;极客带你看世界&#xff01;https://www.996station.com程序员开发指南Descriptionhttps://guide.996station.com css元素溢出 当子元素的尺寸超过父元素的尺寸时&#xff0c;需要设置父元素显示溢出的子元素的方式&#x…

[附源码]SSM计算机毕业设计小锅米线点餐管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Redis——》数据类型:bitmap

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 Redis——》数据类型&#xff1a;bitmap一、底层结构二、最大长度三、操作示…

IPv6进阶:IPv6 过渡技术之 6to4 自动隧道

实验拓扑 R1-R3-R2之间的网络为IPv4公网&#xff1b;PC1及PC2处于IPv6孤岛。 实验需求 R1及R2为IPv6/IPv4双栈设备&#xff1b;在R1及R2上部署6to4自动隧道使得PC1及PC2能够互相访问。 实验步骤及配置 Internet Router的配置如下 [R3] interface GigabitEthernet0/0/0 [R3…

gan与dcgan训练自己的数据集

gan https://blog.csdn.net/weixin_50113231/article/details/122959899 dcgan 源码地址&#xff1a;https://github.com/carpedm20/DCGAN-tensorflow 安装教程 环境配置 将代码克隆到本地后首先按照官网所需依赖环境进行配置 由于该文章比较早所以python与tensorflow最好按…

做好QA质量管理,4大注意事项和技巧。

1、QA检查单&#xff1a;全过程质量管理体系。 为了做好过程质量管理&#xff0c;QA检查单需要按照检查类型、检查阶段、实践域、检查对象、检查项进行层层划分&#xff0c;构建了全过程质量管理体系。 如QA检查单按照检查阶段划分为&#xff1a;需求分析、系统设计、系统实现、…

5G无线技术基础自学系列 | SU-MIMO原理

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 通过多天线技术支持单用户在上下行数据…

SSM考试题库管理系统毕业设计源码069043

SSM考试题库管理系统 摘 要 随着计算机办公自动化程度的不断提高&#xff0c;开发各种数据库管理应用软件用于各种工作中能有效地提高工作效率&#xff0c;节省时间&#xff0c;能使学校的教学工作上一个新的台阶。传统的人工命题形成试卷&#xff0c;往往会出现大量的重复劳动…

java 串口通讯获取检验码

/*** 获取校验码* crc16 X16x15x21* 16进制报文是 02 03 00 00 00 40 CRC16* 传输的str&#xff1a;“020300000040”* 结果&#xff1a;4409* param str* return*/ public static String getCRC(String str) {byte[] bytes NumberUtils.hexStringToBytes(str);int CRC 0x000…

【Spring Boot】Spring Boot 统一功能处理

文章目录Spring拦截器为何需要Spring拦截器&#xff1f;自定义拦截器加入系统配置并配置拦截规则验证登陆拦截器添加统一访问前缀验证统一前缀是否添加成功统一异常处理统一数据返回格式Spring拦截器 为何需要Spring拦截器&#xff1f; 在之前Servlet开发中&#xff0c;对登陆…

深入理解java虚拟机:虚拟机字节码执行引擎(2)

文章目录3. 方法调用3.1 解析3.2 分派接着深入理解java虚拟机&#xff1a;虚拟机字节码执行引擎&#xff08;1&#xff09;&#xff0c;我们继续往下看&#xff1a; 3. 方法调用 方法调用并不等同于方法执行&#xff0c;方法调用阶段唯一的任务就是确定被调用方法的版本&…

【LeetCode每日一题】——771.宝石与石头

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 字符串 二【题目难度】 简单 三【题目编号】 771.宝石与石头 四【题目描述】 给你一个字符串…

配电网电压调节及通信联系研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…