文章目录

  • 一.创建数据库关系图
  • 二.数据的操作
    • 1.添加数据
      • (1) 添加单行数据
      • (2) 添加多行数据
    • 2.简单查询数据
    • 3.修改数据
    • 4.删除数据
    • 5.还原数据表
  • 三.数据库的设计
    • 1.主键的选择
    • 2.外键的选择

一.创建数据库关系图

生成数据库关系图



出现的报错


解决:


二.数据的操作

1.添加数据

(1) 添加单行数据
    INSERT [INTO] 目标表名 [(字段)]  VALUES (字段对应的数据)INSERT INTO Teacher([NAME],TEL,SUBID) VALUES ('张三',110,1)

使用这种插入语法必须要注意:必须要明确这张表中具有非空约束的字段是哪些
注意:

  1. 列名的个数必须和数据值对应
  2. 非数值类型的数据,必须放在单引号内
  3. 数据值的类型必须和定义的字段的数据类型保持一致
  4. 添加数据一定要注意数据表中的字段的各种约束问题,违反约束添加失败
  5. 这种添加数据的语法是只能添加一行数据
    INSERT Teacher VALUES ('李四',1111111,2)

使用这种插入语法必须要注意:这张表里面的所有字段都必须为其提供对应的数据值除过自增列之外,而且数据值的顺序必须保持和数据表字段的顺序一致

(2) 添加多行数据
    INSERT INTO [SUBJECT]SELECT '.NET' UNIONSELECT 'WEB' UNIONSELECT 'JAVA' UNIONSELECT 'Python'

2.简单查询数据

    SELECT <字段名> FROM 表名 [WHERE <查询条件>]SELECT ID,[NAME] FROM TEACHER

注意:

  1. 在查询表的语法中不提供查询条件,则默认是查询整张表
  2. 在查询表的语法中提供了表中已有的部分字段,则查询结果中只会出现语法中提供的字段对应的数据,而且顺序和语法中字段的顺序一致
  3. 如果想要查询整张表的数据,则直接将字段名替换成一个“*”即可
       SELECT * FROM TEACHER
    --根据条件查询SELECT * FROM TEACHER WHERE ID=10010

3.修改数据

    UPDATE 表名 SET <字段名1=数据值1,字段名2=数据值2,……> [WHERE<条件>]UPDATE TEACHER SET SUBID=6 WHERE ID=10002

注意:
修改语法中的条件可以不提供,如果不提供条件则默认将目标表中的指定的这个字段的所有数据全部进行修改
具体的修改方案可以根据实际情况的不同,去书写SQL语句

    UPDATE TEACHER SET SUBID=6 WHERE ID=10002UPDATE TEACHER SET SUBID=1,TEL=112233 WHERE ID=10000UPDATE TEACHER SET SUBID=2 WHERE ID=10001UPDATE TEACHER SET SUBID=3 WHERE ID=10009UPDATE TEACHER SET SUBID=4 WHERE ID=10010 OR ID=10011

4.删除数据

    DELETE FROM 表名 [WHERE 条件]DELETE FROM TEACHER WHERE ID=10011

注意:

  1. 删除表中的数据不等于删除整张表所以删除不能用DROP
  2. 如果使用DELETE删除语法不提供删除条件则默认删除整张表中的数据
  3. 使用DELETE语法删除的数据如果有自增字段,那么被删除的自增数据不会再次被填充

5.还原数据表

    TRUNCATE TABLE 表名TRUNCATE TABLE TEACHER

注意

  1. 清空数据表中的数据可以使用
    DELETE FROM 表名 或者
    TRUNCATE TABLE 表名
    DELETE整张表中的数据相当于将表中的数据直接全部删除自增量属于表字段的特征不会被改变
    TRUNCATE还原整张表,相当于将表格式化清空,里面的所有数据被清除,表的所有字段特征属性还原,数据表恢复到创建数据时的状态
  2. 以上的两种清空数据表中的数据都不会影响数据表对象本身,而使用DROP删除表则是将数据库中的这个数据表对象直接 删除不可恢复
  3. TRUNCATE比DELETE执行速度快TRUNCATE比DELETE使用的系统资源和事务日志资源更少

总结
使用数据库管理系统软件操作数据基本上划分为两种操作:添加数据查询数据

三.数据库的设计

牢记三大范式要求

1.主键的选择

(1)最少性原则:尽量选择单个键作为主键
(2)稳定性原则:尽量选择数值更新少的字段作为主键

2.外键的选择

(1) 要求数据类型、数据长度必须对应的主键表字段完全一致
(2) 添加数据时,要首先添加从表中的主键字段,再添加主表中的外键字段
(3)删除数据时,要首先删除外键表数据,再删除从表中的数据

完整数据库的创建
建库–>建表–>主键约束–>域的完整性约束–>外键约束
数据库创建好之后再考虑添加数据

插入数据的过程

  验证主键、主外键关系、各种约束检查......--->插入成功

SQL Server数据库关系图和数据库中数据的操作(添加,查询,修改,删除)相关推荐

  1. SQL Server 2012 关系图

    文章目录 准备知识 创建数据库关系图 添加数据表 新建数据表 切换数据表视图 定义主键约束 定义外键约束 准备知识     数据库的关系图以图表的形式,直观地显示出数据库的整体结构.使用数据库关系图可 ...

  2. cmd命令窗口mysql查询表数据命令行_cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)...

    一 查看数据库.表.数据字段.数据 1 首先配置环境变量 进入mysql  或者通过一键集成工具 打开mysql命令行  或者mysql 可视化工具 打开命令行 进入这样的界面   不同的机器操作不同 ...

  3. SQL server 数据库关系图无法打开 解决办法

    SQL Server Management Studio中数据库关系图无法打开 由于数据库关系图只有数据库创建者或者所有者才能打开,所以只需要更改其所有者我当前登录用户就行了 选中数据库,右键,属性 ...

  4. SQL server数据库关系图

    数据库关系图-新建数据库关系图-添加想要的表-表视图-自定义修改–得到想要的列名和说明,说明可以自己添加字段意思 http://www.coozhi.com/youxishuma/g4/15328.h ...

  5. sqlserver数据库学习之创建数据库关系图

    在学习SQLserver的过程中,当我们需要写一些系统有关数据库的数据结构说明文档的时候,我们常常会用到一些表的数据库关系图,利用SQLserver本身的创建数据库关系图的功能就可以很好的画出来. 建 ...

  6. MS SQLServer 创建数据库关系图

    我们会用到一些表的数据库关系图,利用SQLserver本身的创建数据库关系图的功能就可以很好的画出来. 新建数据库关系图的时候常常会碰到下图的提示: 解决一: 新建查询页面当中输入该SQL语句 exe ...

  7. SQL Server数据库关系图中,此数据库没有有效所有者......的两种解决办法

    导语: 在建立数据库关系图时,你是否遇到了这样得问题:"此数据库没有有效所有者,因此无法安装数据库关系图支持对象.若要继续-",如下图: 别急,有如下两种方法解决这个问题:(其中一 ...

  8. 【2 - 数据库是如何存储数据的】Sql Server - 郝斌(字段、记录、表;图形化界面及sql语句建表;六种约束;一对一、一对多、多对多、数据库关系图;主外键)

    课程地址:数据库 SQLServer 视频教程全集(99P)| 22 小时从入门到精通_哔哩哔哩_bilibili 目录 数据库是如何解决数据存储问题的 1. 表的相关数据 2. create tab ...

  9. mysql的关系图_学会sql数据库关系图

    很久以前就知道微软的Petshop的很经典,昨天抽出时间去学习,一开始还真的不适应,什么成员资格,还真的看不太懂,运行petshop想从登陆学起,但是用户名和密码都不知道,后来发现有更注册的页面,自己 ...

最新文章

  1. 客快物流大数据项目(四):大数据项目为什么使用Docker
  2. 如何设计一个牛逼的本地缓存!
  3. 使用DFS求任意两点的所有路径
  4. 在MyEclipse中添加 XML Catalog (xwork-validator dtd )
  5. 拒绝双写:巧用Lindorm数据订阅
  6. AI云原生浅谈:好未来AI中台实践
  7. java baen转json 已经 json 转java bean 优秀博客分享
  8. 推荐一个很棒的JS绘图库Flot
  9. JEPLUS之特殊字段类型的使用——JEPLUS软件快速开发平台
  10. android studio bug : aidl is missing 解决方案
  11. c语言 屏幕亮度调节_好手机的屏幕有什么不同?我们为何需要一块好屏幕?
  12. openwrt(路由器)的源码地址
  13. 一位同行工作6年的总结
  14. selinium如何多线程_求教个selenium+grid+testng多线程运行的问题
  15. 前端开发之谷歌实用插件fehelper JSON助手
  16. 【安全测试工程师】超实用的Web渗透测试学习路线~
  17. 从返乡潮六大变化看2019新机遇
  18. 【网络安全】GitHub项目监控,teemo子域名查询
  19. MacOS查看DNS服务器地址
  20. 微信小程序自定义生成动态分享内容

热门文章

  1. java包装和引用_回顾值传递和引用传递关于Java是值传递还是引用传递,网上有不一样的说法。1、基本类型或基本类型的包装类以及String是值传递,引用类型是引用传递。2...
  2. MetaMask与Web3中智能合约调用
  3. 【CSUOJ 1623】Inspectors
  4. 关于使用Latex制作简历的说明
  5. React-Native环境搭建各种问题处理
  6. App Startup原理解析
  7. python岗位任职要求-2020 python web开发就业要求锦集
  8. 深度学习100例 | 第41天-卷积神经网络(CNN):UrbanSound8K音频分类(语音识别)
  9. matlab 折线图 柱状图,数据可视化分析(柱状图、折线图、热力图、柱状图)
  10. 复杂grid 支持多表头,固定表头,冻结列,合并行