今天为大家带来的是数据库的基本用法

 

首先带大家了解下数据库。

大量的数据正在不断产生,伴随而来的是如何安全有效地存储、检索、管理他们。

对数据的有效存储、高效访问、方便共享和安全控制等问题成为信息时代一个非常重要的问题。

而这些问题对于数据来说都不是问题、、、

那么了解了数据库的大致概念,接下来就让我们一起来看看数据库到底是怎样管理我们的数据的、、

相信大家对生活中的某一些事物都会感到一反感、而这些事物大多是没有自身的调理性的、这违背了大多数人的意志、、

而数据库就是帮我们把日常中的一些杂乱无章的数据归类保存起来,在我们需要的时候随时调用,

所以数据库大致是以表格的形式展现在我们的眼前,这样看上去内容就会一目了然!

接下来就带大家一起来了解下数据库中的表格

表格要求数据完整性,那么就是通过约束性来实现输入的数据是否完整,

大致需要两部:

    1.检验每行数据是否符合要求

    2.检验每列数据是否符合要求

在约束的过程中,SQL Server为我们提供了一下四中类型的约束:

    1.实体完整性

      他要求表中的每一行数据都反映不同的实体,不可能存在相同的实体

    2.域完整性约束

      指的是给定列输入的有效性

    3.引用完整性约束

      在输入或删除数据行时,用来保持表之间已定义的关系

    4.自定义完整性约束

      用户自定义完整性用来定义特定的规则

那么在了解了表的大致规则后,再来看下表间的关系,一般来说表间的关系就是主键和外键的关系

ok。就先说主键和外键吧!

    主键:

    在设计表时我们鼠标右击某一列名称,设置他为主键就ok!

    什么是外键呢?

    解析:如果有一列(id)在一张表(Grade)中式主键,但是在另外一张表(Student)中不是主键,那么该列就称为外键

   提醒:

      一张表中可以有几个主键?
      解析:一个
      复合主键一般不用,因为我们选用主键的原则是用尽量少的列来区分表中的每一条记录,如果表中没有合适的列作为
      主键列,我们可以在表中加多MyID列,让自动编号列作为该表的主键。

 

 注意:设置外键的时候只能在外键表中设置

    

    在知道了怎么设置一张表以后,再来说一下表中常用的几种数据类型

     int 保存数字

      保存字符串(姓名):
    char(4):能存储四个字母或者数字,但是只能存储两个汉字。
    char(李连杰)
    nchar unicode()
    n代表的含义是unicode,unicode编码是国际通用编码,使用unicode编码
    可以防止乱码出现,所以以后推荐大家使用unicode。
    varchar:可变长度
    char和varchar类型区别:
    var关键字代表的是可变长度
    nvarchar(50)
    nvarchar(4000)
    varchar(8000)
    ntext():存储大文本

再来说一下标识列吧、

标识列本身没有具体的意义,不反映数据信息,只是用来区别不同的数据。

标识列只能是int类型(smallint)

标识列的实现方式:

  1.如果一列的数据属于数组类型(如整数),那么可以把该列定义为标识列。

  2.定义成标识列之后,还需要分别指定“标识种子”和“标识增量”,默认值都是1。

  3.定义了标识列之后,在以后每次输入数据的时候,该列随数据行的增加而自动增加数值,

   并且不会重复,第一次的数字就是“标示种子”值,以后每次按照“标示增量”增加数值。

   标识列通常也被定义为主键,通常所说的“自动编号”就是指示标识列的数字自动增加。

通配符:

Check约束:用于定义列中可以接受的数据值或者格式

       _有且只有一个字符

      %任意个任意字符

      Like ‘’

那么接下来就是最重要的了_“建立表间关系”。

建立表间关系实际上就是实施引用完整性约束,建立主表和从表关系。

 

有一个关键点在这里提一下:

  如果你不确定到底要怎么建立表间的关系,最好是先用笔在纸上画出表间关系图。

如何看懂这张图?

在图上表格之间的连接线上有一个金色的小钥匙,小钥匙指向哪里,哪里就是主键的位置小钥匙的尾巴指向的就是外键。

SQL--大解密之组织数据的更多相关文章

  1. SQL Server用表组织数据

    一.主键 主键作为表中的唯一标识,标识这一列不允许出现重复数据    如果两列或多列组合起来唯一标识表中的每一行,该主键叫“复合主键” 选择主键的原则     最少性      尽量选择单个键作为主键 ...

  2. SQL 大数据查询如何进行优化?

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而 ...

  3. SQL大数据操作统计

    SQL大数据操作统计 1:select count(*) from table的区别SELECT object_name(id) as TableName,indid,rows,rowcnt FROM ...

  4. sql大数据量查询的优化技巧

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  5. SQL大数据查询优化

    常写的SQL可能主要以实现查询出结果为主,但如果数据量一大,就会突出SQL查询语句优化的性能独特之处.一般的数据库设计都会建索引查询,这样较全盘扫描查询的确快了不少.下面总结下SQL查询语句的几个优化 ...

  6. SQL Server 递归查询上级或下级组织数据(上下级数据通用查询语法)

    查询上级组织数据: WITH OCTE AS ( AS LVL FROM IOV_Users U LEFT JOIN IOV_Organization O ON U.OrgId=O.ID UNION ...

  7. SQL SERVER存储引擎——04.数据

    4. SQL SERVER存储引擎之数据篇 (4.1)文件 (0)主数据文件.mdf初始文件大小至少为3MB,次要数据文件.ndf初始大小,同日志文件一样至少为512KB: (1)SQL SERVER ...

  8. sql语句中----删除表数据drop、truncate和delete的用法

    sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...

  9. 关于SQL查询效率,100w数据,查询只要1秒

    1.关于SQL查询效率,100w数据,查询只要1秒,与您分享:机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试,比 ...

随机推荐

  1. hdu 2224 双调欧几里得旅行商问题tsp

    /* 题意:平面上n个点,确定一条连接各点的最短闭合旅程且每个点仅用一次.这个解的一般形式为NP的(在多项式时间内可以求出) 建议通过只考虑双调旅程(bitonictour)来简化问题,这种旅程即为从 ...

  2. 【BZOJ4650&UOJ219】优秀的拆分(二分,hash)

    题意: 思路: 在实现时SA可以用hash+二分代替,会多一个log BZ上跑的飞快,但UOJ上extra卡出翔,已经放弃 不过转C或者写SA没准就过了 看来转C迫在眉睫 ; ..]of int64; ...

  3. Win32编程API 基础篇 -- 5.使用资源

    使用资源 你可能想参考教程结尾的附近,为了获得跟VC++和BC++资源相关的信息. 在我们讲得更加深入之前,我将大致讲解一下资源的主题,这样在每个小节中我就不必再去重讲一遍了.在这一小节中,你不需要编 ...

  4. 线程间的通信----wait/notify机制

    wait/notify机制 实现多个线程之间的通信可以使用wait.notify.notifyAll三个方法.这三个方法都是Object类的方法.wait():导致当前线程等待,直到另一个线程调用此对 ...

  5. 为什么Java使用System.getenv()获取刚刚设置的环境变量时为空

    场景: 在Ubuntu下已经启动了Eclipse,然后通过终端设置了环境变量(export $ENV=123),然后通过System.getenv()获取时显示为空. 解释: 环境变量仅在进程树下方, ...

  6. Ubuntu 16.04设置开机关机时显示命令详细信息不显示进度条Logo

    1.编辑grub文件 sudo gedit /etc/default/grub 把 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改成 GRU ...

  7. Spring实现封装自定义注解@Trimmed清除字符串前后的空格

    在Spring中实现字符串清除的方法有很多,原生方法String自带trim()方法,或者使用StringUtils提供的trim...方法. 通常可以将上面的方式封装成自定义注解的形式去实现来节省更 ...

  8. 21、Java并发性和多线程-Java中的锁

    以下内容转自http://ifeve.com/locks/: 锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂.因为锁(以及其它更高级的 ...

  9. Hadoop2.0之开启日志

    配置 修改 mapred-site.xml <property> <name>mapreduce.jobhistory.address</name> <val ...

  10. 【CV论文阅读】 Fast RCNN + SGD笔记

    Fast RCNN的结构: 先从这幅图解释FAST RCNN的结构.首先,FAST RCNN的输入是包含两部分,image以及region proposal(在论文中叫做region of inter ...