1、数据库的结构

1.1数据库

不同数据库叫做Catalog(在有的 DBMS 中也称为 Database,即数据库) 。採用多 Catalog 以后能够给我们带

来例如以下优点:

便于对各个 Catalog 进行个性化管理。

DBMS 都同意我们指定将不同的 Catalog 保存在不

同的磁盘上, 因为人力资源数据相对次要一些, 因此我们能够将 HR 保存在普通硬盘上。

而将 BIZ 保存在 RAID 硬盘上。 我们还能够对每一个 Catalog 所能占领的最大磁盘空间、日

志大小甚至优先级进行指定,这样就能够针对不同的业务数据进行个性化定制了。

避免了命名冲突。同一个 Catalog 中的表名是不同意反复的,而不同 Catalog 中的表名

则是能够反复的。这样 HR 中能够有 Persons 表,而 BIZ 中也能够有 Persons 表,二者结

构能够全然不同样。保存的数据也不会互相干扰。

安全性更高。DBMS 同意为不同的 Catalog 指定不同的用户,而且能够限定用户能訪问

的 Catalog。比方用户 hr123 仅仅能訪问 HR,而用户 sales001 仅仅能訪问 BIZ。这就大大加

强了系统数据的安全性。

1.2表

解决问题的方法就是将不同类型的资料放到不同的 “区域” 中,我们将这样的区域叫做 “表”( T able)。

1.2.1列字段

1.2.2记录

2数据的增删改

2.1建表语句

(1)CREA TE  T ABLE  T_Person  (FName  VARCHAR(20),FAge  INT ,FRemark  VARCHAR(20),PRI MARY 

KEY  (FName));

(2)CREA TE T ABLE T_Debt (FNumber V ARCHAR(20),FAmount  DECIMAL(10,2) NOT NULL, 

FPerson VARCHAR(20),PRIMARY KEY (FNumber), 

FOREIGN KEY (FPerson) REFERENCES T_Person(FName)) ;

2.2数据的插入

2.2.1简单的 INSERT 语句

INSERT INTO T_Person(FName,FAge,FRemark)  VALUES('T om',18,'USA')

须要注意的是 V ALUES 前列出的字段名和 VALUES 后边列出的字段值是按顺序一一相应的。

2.2.2简化的 INSERT 语句

INSERT 语句中也并不须要我们指定表中的全部列,比方在插入数据的时候某些字段没

有值,我们能够忽略这些字段。以下我们插入一条没有备注信息的数据:

INSERT INTO T_Person(FAge,FName) VALUES(22,'LXF')。

INSERT 语句还有还有一种使用方法。能够不用指定要插入的表列,这样的情况下将依照定义表

中字段顺序来进行插入,我们运行以下的 SQL:

INSERT INTO T_Person VALUES('luren1',23,'China')。

2.2.3非空约束对数据插入的影响

正如“非空约束” 表达的意思, 假设对一个字段加入了非空约束, 那么我们是不能向这

个字段中插入 NULL 值的。T_Debt 表的 F Amount 字段是有非空约束的,假设我们运行以下

SQL:

    INSERTINTO T_Debt (FNumber , FPerson) V ALUES ('1', 'Jim') 。

2.2.4主键对数据插入的影响

主键是在同一张表中必须是唯一的, 假设在进行数据插入的时候指定的主键与表中已有

的数据反复的话则会导致违反主键约束的异常。

2.2.5外键对数据插入的影响

外键是指向还有一个表中已有数据的约束, 因此外键值必须是在目标表中存在的。 假设插

入的数据在目标表中不存在的话则会导致违反外键约束异常。

2.3 数据的更新

2.3.1简单的数据更新

UPDATE 语句用来对数据表中的数据进行更新。UPDATE T_Person  SET FRemark = 'SuperMan' 。

UPDATE T_PersonSET  FRemark = 'Sonic', FAge=25 。

2.3.2带 WHERE 子句的 UPDATE 语句

UPDATE  T_Person  SET  FAge = 12  WHERE FNAME='T om' 。

UPDATE T_Person SET FAge = 22 WHERE FName='jim' OR FName='LXF' 。

2.3.2主键对数据更新的影响

主键是在同一张表中必须是唯一的。 假设在进行数据更新的时候指定的主键与表中已有

的数据反复的话则会导致违反主键约束的异常。

2.3.3外键对数据更新的影响

外键是指向还有一个表中已有数据的约束, 因此外键值必须是在目标表中存在的。 假设更

新后的数据在目标表中不存在的话则会导致违反外键约束异常。

2.4数据的删除

数据库中的数据一般都有一定的生命周期,当数据不再须要的时候我们就要将其删除,

运行 DELETE 语句就能够将数据从表中删除。

只是须要注意的就是假设被删除的数据行是某

个外键关联关系中的被引用数据的话, 则进行删除的时候会失败。 假设要删除成功则必须首

先删除引用者才干够。

2.4.1简单的数据删除

DELETE FROM T_Debt; DELETE FROM T_Person;

不过 DELETE 语句不过删除表中的数据行。 而表的结构还存在。 而 DROP T ABLE 语句则不仅将表中的数据行所有删除,并且还将表的结构也删除。DELETE 语句也提供了 WHERE 语句进行数据的过滤,这样唯独符合过滤条件的数据行才会被删除。

2.4.2带 WHERE 子句的 DELETE 语句

DELETE FROM T_Person WHERE FAge > 20 or FRemark = 'Mars' 。

DROP TABLE T_Debt; 

DROP TABLE T_Person;

数据库学习之简单的SQL语句的更多相关文章

  1. 数据库学习(三) sql语句中添加函数 to_char,round,连接符||

    ** to char 是把日期或数字转换为字符串  to date 是把字符串转换为数据库中得日期类型  参考资料:https://www.cnblogs.com/hllnj2008/p/533296 ...

  2. 吴裕雄--天生自然ORACLE数据库学习笔记:优化SQL语句

    create or replace procedure trun_table(table_deleted in varchar2) as --创建一个存储过程,传入一个表示表名称的参数,实现清空指定的 ...

  3. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  4. MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...

  5. (转载)异构数据库之间完全可以用SQL语句导数据

    <来源网址:http://www.delphifans.com/infoview/Article_398.html>异构数据库之间完全可以用SQL语句导数据 告诉你一个最快的方法,用SQL ...

  6. [20190328]简单探究sql语句相关mutexes.txt

    [20190328]简单探究sql语句相关mutexes.txt --//摘要:http://www.askmaclean.com/archives/understanding-oracle-mute ...

  7. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  8. tp5 r3 一个简单的SQL语句调试实例

    tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...

  9. Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句(原创)

    Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句 查找活动的事务以及活动事务关联的会话信息 select s.sid 会话ID, s.serial# 会话序列号, s.usernam ...

随机推荐

  1. tp在页面输出时间

    输出时间戳 :{:time()} 输出当前时间:{:date('Y-m-d H:i:s')} 输出1970的时间:{:date('Y-m-d H:i:s',$vo['create_time'])}

  2. poi导出word时设置兼容性

    接上一篇poi导出word http://www.cnblogs.com/xiufengd/p/4708680.html. public static void setAuto(XWPFDocumen ...

  3. Flask框架 之request对象

    一.request对象属性 属性 说明 类型 data 记录请求的数据,并转换为字符串 * form 记录请求中的表单数据 MultiDict args 记录请求中的查询参数 MultiDict co ...

  4. <东方梦符祭> N2无尽40波通关

    先上图吧 阵容:纯粹 + 伪魔法队 主C:神妈 露米娅(我觉得不厉害了) 灵梦 控制:琪露诺 + 蕾蒂 永江依玖(听说很厉害 没培育满 没看到效果) 挂件:铃仙挂机 帕秋莉 大妖精(链神妈) 圣今天才 ...

  5. node 实现Token状态登录 及数据库增删改查

    1.项目目录结构 2.启动入口文件代码index.js const express = require('express') const bodyParser = require('body-pars ...

  6. iOS-关于一些手势冲突问题(scrollView 嵌套 tableView)

    简单说下关于开发中容易遇到的父试图添加手势与子试图点击事件冲突,UIScrollView 嵌套 UIScrollView . UIScrollView 嵌套 UITableView的情况手势冲突问题: ...

  7. A2. JVM 类加载机制

    [概述] 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制. 与那些在编译时需要进行连接 ...

  8. 22万个木箱!TWaver 3D极限压榨

    打开个门户网站都千呼万唤,我们还能期待网页上的3D技术会有“酣畅淋漓”.“一气呵成”的感受吗?也许现在还差点火候.但是HTML5.WebGL等技术一直在飞速的发展,可能很快你就会惊讶它的能力.现在,我 ...

  9. ionic3视频播放功能

    因为项目的需要,需要使用视频播放的功能,使用的是videogular2插件,但是报了一个无法识别video-player 这个标签,百度了很多,发现原来是版本 不对,ionic3是以来angular5 ...

  10. 「 CODE[VS] P2853 」 方格游戏

    题目大意 给定一张 $n\times n$ 的网格.每个格子上都有一个系数 $a$,先下 $A$ 和 $B$ 两人选择两条 $(1,1)\rightarrow (n,n)$ 路径.要求着两条路径不能相 ...