创建表格

1.创建表格之identity

create table TableName(
id int not null primary key identity(1,1),
col_1 varchar(50),
col_2 nvarchar(50)
)

这是一个简单的表格创建,identity这个是指在创建表格时候,将表格的id这个列设置为自增的,第一个参数表示自增是从几开始,第二个参数表示的是自增的数量是多少。

这张是identity(1,1)的时候

这张是identity(1,4)的时候

2.创建表格之主键和外键

create table Student(
id int not null primary key identity(1,1), --主键的关键字是primary key。字段的后边跟着这个词就是创建一个自增的,自增长度为1的不为空的,主键是id的列
Sage int,
Sname nvarchar(50),
Ssex varchar(50),
Cid int
FOREIGN KEY (Cid) REFERENCES Class(Cid)         --这里是创建一个外键
)

什么是主键:可以这么理解,它是特别的,它是一种唯一标识。就像是身份证一样。比如说我们的名字,性别,年龄都是可以重复的,但是身份证号是绝对不可能重复的,它就代表了你这个人。在比如说是学籍号这个在你的学校里也是认定你这个人的唯一标识。

同理,主键也可以理解为认识这一行的唯一标识。查询它,就可以查询出这一行的其他数据。

1) 一个表中只能有一个主键。
2)主键的值不可重复,也不可为空。

创建主键应当遵循的规则:

1、主键对于用户来说没有太大意义。就像这个学生表的id,它除了能够快速的找到你这个人,并没有很大的意义。

2、尽量不要自己去更新主键,最好是自增的,计算机自动生成的

3、主键不要包含动态变化数据。如时间戳、创建时间列、修改时间列等。

什么是外键:外键是一种约束。它是关系的有效性检查。可以这么理解:

  id Sname Sage Cid
1 小明 16 1
2 小黑 18 2
3 小小 19 8

   

Cid Cname
1 一年级一班
2 一年级二班
3 一年级三班

 

这是两张表格,一张是学生表,一张是班级表。他们之间存在这联系。小明是所在的班级的cid是1所以可以很直观的看见他是一年级一班的学生,小黑是一年级二班的学生,小小的cid是8在班级表中并没有找到班级为8的班级。也就是说不存在八班的学生

这样的话数据容易出错,所以需要外键来对他们的关系进行约束。对cid进行约束的时候,不让学生表当中出现不存在班级表的id。总的来说就是只要班级表没有的Cid,你的学生表就不能填入这个不存在的Cid。

数据库艰难求生之路(基础:创建数据库表格)part1的更多相关文章

  1. 数据库艰难求生之路(基础:增删改查)part2

    一.数据库查询 由于这个点的东西实在是多的,我就和题目,知识点一起演示. 首先是创建数据库: create database ExampleInfo --创建数据库 use ExampleInfo - ...

  2. 数据库入门(mySQL):创建数据库

    基于JetBrains DataGrip创建数据库.SQL语句创建数据库 MySQL数据库存储引擎和数据类型 创建数据库表及基本操作 导出数据库.删除数据库.导入数据库 一.基于JetBrains D ...

  3. MySQL数据库实验:任务一 创建数据库和表

    目录 任务一 创建数据库和表 [实训目的与要求] [实训原理] [实训步骤] 一.熟悉MySQL环境 二.利用MySQL命令行窗口创建数据库及表 三.利用界面工具创建数据库及表 任务一 创建数据库和表 ...

  4. asp.net core 使用EF7 Code First 创建数据库,同时使用命令创建数据库

    1.首先下载vs2015的Asp.Net Core(RC2)的插件工具(https://www.microsoft.com/net/core#windows)2.创建一个asp.net Core的项目 ...

  5. 【Android】数据库的简单应用——创建数据库

    SQLiteOpenHelper是一个抽象类,要使用它必须写一个类继承它.SQLiteOpenHelper有两个抽象方法onCreate()和onUpgrade(),我们要在类里面重写这两个方法来实现 ...

  6. mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库

    本节相关: 创建数据库 查看数据库 修改数据库 删除数据库 首发时间:2018-02-13 20:47 修改: 2018-04-07:考虑到规范化,将所有语法中“关键字”变成大写;以及因为整理“mys ...

  7. MySQL数据库执行sql语句创建数据库和表提示The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working

    MySQL创建数据库 只想sql文件创建表时候提示 The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to ha ...

  8. Android——SQLite数据库(一)创建数据库、创建表、初始化数据

    xml <Button android:layout_width="match_parent" android:layout_height="wrap_conten ...

  9. 云数据库 RDS 版怎么创建数据库和账号MySQL 5.7版

    若要使用云数据库RDS,您需要在实例中创建数据库和账号.对于MySQL 5.7版本的实例,您需要通过RDS控制台创建一个初始账号,然后可以通过数据管理(DMS)控制台创建和管理数据库.本文将主要介绍在 ...

随机推荐

  1. Jenkins使用教程

    1 软件安装  1.1 运行环境   1.1.1 Maven的安装   1.1.2 Git的安装   1.1.3 Tomcat的安装  1.2 安装Jenkins  1.2.1 msi和war包安装2 ...

  2. Android 8.1 源码_启动篇(一) -- 深入研究 init(转 Android 9.0 分析)

    前言 init进程,它是一个由内核启动的用户级进程,当Linux内核启动之后,运行的第一个进程是init,这个进程是一个守护进程,确切的说,它是Linux系统中用户控件的第一个进程,所以它的进程号是1 ...

  3. React Native开发 - 搭建React Native开发环境

    移动开发以前一般都是原生的语言来开发,Android开发是用Java语言,IOS的开发是Object-C或者Swift.那么对于开发一个App,至少需要两套代码.两个团队.对于公司来说,成本还是有的. ...

  4. WebGL three.js学习笔记 阴影与实现物体的动画

    实现物体的旋转.跳动以及场景阴影的开启与优化 本程序将创建一个场景,并实现物体的动画效果 运行的结果如图: 完整代码如下: <!DOCTYPE html> <html lang=&q ...

  5. 你需要知道的这几种 asp.net core 修改默认端口的方式

    一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望 被框架所管制,那如何实现默认端口的修改 ...

  6. Java基础练习3(重载和重写)

    1.(多选题)给定java代码如下所示,在1处新增下列()方法,是对show()方法的重载 public class Test{ public void show(int x, int y, int ...

  7. rsync命令详解、rsync用ssh隧道方式同步

    ● rsync格式安装命令 yum install -y rsync与scp的区别:scp复制为完全覆盖,rsync为增量同步,只同步修改过的数据.rsync命令格式如下: rsync 选项 源文件 ...

  8. SQL Server 2008R2 :远程调用失败 的解决方法(全部方法)

    SQL 中远程调用失败的原因 1.服务里面的启动权限未能启动,修改sql对应的服务进程权限就可以了 2.是因为VS 和SQL 起冲突了,数据库找不到访问地址导致的.解决的办法很简单,就是卸载掉多余的版 ...

  9. 数字信号处理专题(3)——FFT运算初探

    一.前言 FFT运算是目前最常用的信号频谱分析算法.在本科学习数字信号处理这门课时一直在想:学这些东西有啥用?公式推来推去的,有实用价值么?到了研究生后期才知道,广义上的数字信号处理无处不在:手机等各 ...

  10. 华为云.NET Core支持情况调查

    各大公有云都提供了开发者开发的SDK,今天我们来看看华为云对.NET Core的支持情况怎么样? .NET SDK地址 https://developer.huaweicloud.com/sdk#.N ...