数据库艰难求生之路(基础:创建数据库表格)part1
创建表格
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、主键对于用户来说没有太大意义。就像这个学生表的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的更多相关文章
- 数据库艰难求生之路(基础:增删改查)part2
一.数据库查询 由于这个点的东西实在是多的,我就和题目,知识点一起演示. 首先是创建数据库: create database ExampleInfo --创建数据库 use ExampleInfo - ...
- 数据库入门(mySQL):创建数据库
基于JetBrains DataGrip创建数据库.SQL语句创建数据库 MySQL数据库存储引擎和数据类型 创建数据库表及基本操作 导出数据库.删除数据库.导入数据库 一.基于JetBrains D ...
- MySQL数据库实验:任务一 创建数据库和表
目录 任务一 创建数据库和表 [实训目的与要求] [实训原理] [实训步骤] 一.熟悉MySQL环境 二.利用MySQL命令行窗口创建数据库及表 三.利用界面工具创建数据库及表 任务一 创建数据库和表 ...
- asp.net core 使用EF7 Code First 创建数据库,同时使用命令创建数据库
1.首先下载vs2015的Asp.Net Core(RC2)的插件工具(https://www.microsoft.com/net/core#windows)2.创建一个asp.net Core的项目 ...
- 【Android】数据库的简单应用——创建数据库
SQLiteOpenHelper是一个抽象类,要使用它必须写一个类继承它.SQLiteOpenHelper有两个抽象方法onCreate()和onUpgrade(),我们要在类里面重写这两个方法来实现 ...
- mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库
本节相关: 创建数据库 查看数据库 修改数据库 删除数据库 首发时间:2018-02-13 20:47 修改: 2018-04-07:考虑到规范化,将所有语法中“关键字”变成大写;以及因为整理“mys ...
- 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 ...
- Android——SQLite数据库(一)创建数据库、创建表、初始化数据
xml <Button android:layout_width="match_parent" android:layout_height="wrap_conten ...
- 云数据库 RDS 版怎么创建数据库和账号MySQL 5.7版
若要使用云数据库RDS,您需要在实例中创建数据库和账号.对于MySQL 5.7版本的实例,您需要通过RDS控制台创建一个初始账号,然后可以通过数据管理(DMS)控制台创建和管理数据库.本文将主要介绍在 ...
随机推荐
- Android P Beta发布!最新版本抢先体验!
在不久前结束的谷歌I/O开发者大会上,谷歌公布了下一个版本的 Android,也就是 Android P 的 beta 版本.Android P 将 AI 定位为操作系统的核心,并侧重于提供智能且简洁 ...
- 命令提示符编译java
先新建一个文件夹kun,kun就是类所在的package.新建一个java文件. HelloWorld.java的代码如下: package kun; public class HelloWorld{ ...
- Hibernate-ORM:05.Hibernate中的list()和iterator()
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Hibernate中查多条(全部)使用list()或iterator() 本篇介绍: 1.如何使用list() ...
- 一个Java程序猿眼中的前后端分离以及Vue.js入门
松哥的书里边,其实有涉及到 Vue,但是并没有详细说过,原因很简单,Vue 的资料都是中文的,把 Vue.js 官网的资料从头到尾浏览一遍该懂的基本就懂了,个人感觉这个是最好的 Vue.js 学习资料 ...
- Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...
- Python调用ansible API系列(一)获取资产信息
你想让ansible工作首先就需要设置资产信息,那么我们如何通过使用Python调取Ansible的API来获取资产信息呢? 要提前准备一个hosts文件 获取组或者主机 #!/usr/bin/env ...
- 强化学习(十五) A3C
在强化学习(十四) Actor-Critic中,我们讨论了Actor-Critic的算法流程,但是由于普通的Actor-Critic算法难以收敛,需要一些其他的优化.而Asynchronous Adv ...
- Hystrix源码解析
1. Hystrix源码解析 1.1. @HystrixCommand原理 直接通过Aspect切面来做的 1.2. feign hystrix原理 它的本质原理就是对HystrixCommand的动 ...
- 驰骋工作流引擎 -CCBPM如何自动升级
关键词:工作流引擎自动升级 工作流自动升级升级步骤设置1,CCBPM把更新分成三类, 应用程序代码更新.数据表结构更新.数据更新.2,CCBPM在您登录流程设计器时自动判断当前的版本与数据库版本是 ...
- PyCharm 如何远程连接服务器编写程序
写在前面 我之前一直通过mstsc远程服务器桌面修改代码,或者本地修改后上传到远程服务器等,各种不爽,现在改用xshell,但有时候还是感觉不方便.于是乎,自己动手配置PyCharm远程连接服务器,这 ...