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

本文主要是介绍【SQL Server + MySQL二 】SQL: DDL数据定义【定义、修改、删除基本表】,DML【憎删改查】,DCL数据控制语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

  • 时隔很长时间回去看数据库的笔记都能看懂,每次都靠这份笔记巩固
  • 真的是语雀分享要花钱,要不一定把笔记给贴出来
  • (;´༎ຶД༎ຶ`) ,除了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,Gradefrom SCwhere Cno = 3order 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 SCwhere Cno = 1;
      
    • 查询选修1号课程的学生最高分数

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

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

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

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

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

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

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

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

    select cno,max(grade)from SCgroup by cno
    
3-3-1-2 连接查询
3-3-1-2-1 交叉连接(广义笛卡尔积)
  1. 等值连接

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

select SC.Sno,Sname,Sdept,SC.Cno,Cname,Gradefrom Student,SC,Coursewhere Student.Sno = SC.Sno and Course.Cno = SC.Cno and Sdept='CS';
3-3-1-2-1 交叉连接(自身连接)
  1. select a1.Cname,a2.Cnamefrom Course a1,Course a2where 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 Studentgroup by Sdept;
    
3-3-3-2 完整性校验
  1. DBMS在形式插入语句时会检查元组是否破环表上已定义的完整性规则
    • 实体完整性
    • 参照完整性
    • 用户定义的完整性
      • 有NOT NULL约束的属性列是否提供非空值
      • 对于有unique约束的属性列是否提供了非重复值
      • 对于有值域约束的属性列所提供的属性值是否在值域范围内
3-3-33 修改数据
  1. 修改指定表中满足where子句条件的元组

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

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

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

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

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

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

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

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

3-3-4 删除

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

      deletefrom SCwhere Cno = 2;
      
    • 删除所有的学生选课记录

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

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

    delete from SCwhere 'CS'=(select Sdept from Studentwhere 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 asselect Sno,Sname,Sagefrom Studentwhere Sdept='IS'
      
  4. with check option 的视图 :

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

    create view V_STUISas select Sno,Sname,Sage from Studentwhere 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,Gradefrom Student,SCwhere Sdept = 'IS' andStudent.Sno = SC.Sno andSC.Cno = 1;
      
  2. 基于视图的视图 :

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

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

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

    create view V_SCCnoasselect Sno,Cno,Gradefrom SCwhere Cno = 1with check option;
    
  2. 以select * 方式创建的视图

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

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

  3. 上例可以这样写 :

    create view V_Student2(stdnum,name,sex,age,dept)as select Sno,Sname,Ssex,Sage,Sdeptfrom Studentwhere 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

这篇关于【SQL Server + MySQL二 】SQL: DDL数据定义【定义、修改、删除基本表】,DML【憎删改查】,DCL数据控制语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/262147

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置