初写MySQL四张表:(1/4)

今天我们的任务主线,便是完成创建该表:

表:

何为表:

表,Table也。

我在这里只是简单谈谈:

数据库的对象之一:数据库的对象有四大类,表是其中最根本的存在对象。其特点就是,物理存在。何为物理存在,就是存在硬盘某个特定的磁道上。四个字:物理存在,两个字------实在。

创建表:

我们要创建出上图这张表,抛开代码思维,什么关键字啥的。我们以常识来看,要完成这个任务,无外乎下面这几步:

  1. 创建一张空表
  2. 表名叫Dept
  3. 添加这些属性

前两步都统一,但是第三步说得宽泛,难免会有分歧,我们仔细看:

两行属性,deptid有一横排都是它的;deptname亦是如此;你会选择一列一列去添加,还是添加完了deptid这一排,再去添加deptname这一排?

MySQL选择的是后者,我猜是因为写着省事又得劲,接下来你就知道了。

1.创建空表 + 表名

关键字CREATE

格式: CREATE TABLE 表名()

咱们直接上了:

sql 复制代码
CREATE TABLE dept();

快是快,报错也确实在。

sql 复制代码
Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar.

这关键是哪? No database selected。

哦,忘说了(其实是故意的):数据库,都能叫库了,可见这个库可存不少数据。但是就让这些都散着,东一个,西一个嘛? 好的,计算机不让。(没想到,这计算机还是个J人)

所以,现在有了表了。数据库里面,你所看到的数据,会存进表里。最后,数据装进表里,形成一张张表,表就放在库里,外面就不会散落着可疑数据,达到管理组织数据的目的(突然想起来,上次说这话的,还是数据结构)。

其实,数据库是表的容器,一装表的库------世界大千,库也无穷,更别说里面千千万万张表了。

我们在创建表的时候,就要决定好,这张表最后进哪个库,用哪个库的数据。------其实,到这儿,我们也能合理猜测,不同的库肯定根据需求装不同的数据,比如这个库装A市的,那个库装W市的(博主现在才疏学浅,猜测哈,但应该合理)

创建数据库:

数据库并非系统给你配好,我们要吃就要吃现成的:

sql 复制代码
#创建数据库
CREATE DATABASE testdb;
#还是CREATE关键字 + DATABASE + 数据库名

温馨tips:会写注释的豹子应该已经看到,MySQL的单行注释就是#.....

从上面创建表,到这里创建数据库可以看到,无论是创建数据库对象,还是数据库,都使用CREATE关键字。

(深夜赶文哈哈哈)

我们再看SCHEMAS有我们刚刚创建出来的testdb没:

毫无动静,解决:右键 + Refesh All

(千呼万唤始出来)

那创建空表的代码也有所依了:

sql 复制代码
CREATE TABLE testdb.dept();
# testdb.dept 一个点足以解释他们的从属关系

我们在Java里也聊过,C里面也学过,C++好像也说过: . 后面接成员变量或者方法(函数)

我们前面说:表是数据库的对象,现在有了. 更加证明表是数据库的成员。

2.添加字段

这里的字段:就是下面的deptid 和deptname

字段:标记实体属性的命名单位称为字段,也称为数据项。

(确实,一句话看完我都想申请中译中)

举个例子:如学生,有姓名,学号等字段。这句话可以合理推测,字段应该就是属性的意思:此处学院有两个属性:编号和名称。

MySQL给字段名字还不够,还有数据类型,这里一个给CHAR,一个给VARCHAR,多少个char也有限制(即长度)

主键:

最后一列,deptid有个主键,我们猜测大概是个功能吧。

主键:PRIMARY KEY约束

PRIMARY KEY 约束用于定义基本表的主码,起到唯一标识作用,保证数据表中记录的唯一性。

一张表只能有一个PRIMARY KEY约束,可以作用于一个字段,......(后面这句我先省略)

可以分析上面这段话:一个被PRIMARY KEY约束的字段,添加该属性的数据是不允许重复的,比如:Stuid加上主键约束,我们插入数据,先插入一个学号007,再插入一个学号007,这时候主键就不干了,不会让你再加一个重复的学号。

NOT NULL:

最后一列,deptname有个NOT NULL,估计又是个约束。

NOT NULL约束:

NOT NULL约束可以确保这些字段总是包含有效值,not null就是不空,名字即功能。

添加字段的代码:

字段名 类型(长度)空/不空 COMMENT '中文备注' ,

活学活用:

比如就写这里的deptid

sql 复制代码
deptid CHAR(4) COMMENT '学院编号',
# 没说NOT NULL我也就不管它空不空了

这些添加字段的语句我们放在哪里呢?

看到括号了吗,没错就是括号内

所以这张表的创建代码也就完成7788了:

sql 复制代码
# 创建表
CREATE TABLE testdb.dept
(
   deptid CHAR(4) COMMENT '学院编号',
   deptname VARCHAR(100) NOT NULL COMMENT '学院名称',
   #主键约束放哪,单写一句,放最后
   PRIMARY KEY(deptid)
);

细心的同学发现了,添加字段语句中末尾一句不需要逗号(不是因为是增加主键约束)

运行:

创建成功了,但是文字始终没有图来得直接:

推荐一句:

DESC 关键字

sql 复制代码
DESC 表名;
# 实现查看表结构的功能

这里你会怎么写?我们的表叫什么来着,dept。

不对,testdb.dept。

是不是更好看,更直观? 快Get这个关键字吧

咱们的表就创建好了,任务也完成了,明天再见吧

相关推荐
无为之士6 分钟前
Linux自动备份Mysql数据库
linux·数据库·mysql
小汤猿人类19 分钟前
open Feign 连接池(性能提升)
数据库
阳冬园40 分钟前
mysql数据库 主从同步
数据库·主从同步
XiaoH2331 小时前
培训机构Day15
sql·mysql
ThisIsClark1 小时前
【后端面试总结】MySQL主从复制逻辑的技术介绍
mysql·面试·职场和发展
Mr.132 小时前
数据库的三范式是什么?
数据库
Cachel wood2 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Python之栈2 小时前
【无标题】
数据库·python·mysql
风_流沙2 小时前
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
java·数据库·elasticsearch
亽仒凣凣2 小时前
Windows安装Redis图文教程
数据库·windows·redis