您现在的位置是:首页 >其他 >MySQL:创建数据库,数据表,主键和外键网站首页其他
MySQL:创建数据库,数据表,主键和外键
目录
前言:
MySQL数据库安装了很久,一直也没静下心来学习,因为起步太晚,所以什么都想学点,又感觉有些力不从心,目前为爬虫打基础,这是一项漫长的工程,希望能够坚持下去。
安装MySQL:
mysql8.0.25安装配置教程(windows 64位)最详细_mysql8.0.25安装教程图解_聚精会神搞学习的博客-CSDN博客
这里放上大佬的安装教程,非常简单实用,且一看就懂。最主要的是路径配置,省去很多麻烦。
打开MySQL:
很多教程中直接win + r,如果数据库没有装入C盘,则要转到你安装数据库的盘中。
首先第一步——将数据库联网:
net start mysql
联网联网,不联网啥都没有!直接error!
第二步,登录:
mysql -u root -p
第三步,输入密码。
我个人更偏向用终端(管理员)打开mysql:(看起来更加舒适一些)
右键开始菜单 --> 终端(以管理员身份)--> 重复上面的三个步骤。
再次提醒!不要遗漏掉“连接网络”这一步,如果打开后直接登录,就会报错。
如果想要断开网络连接,直接写:
net stop mysql
创建数据库:
CREATE DATABASE 数据库名称;
查看已建数据库:
SHOW DATABASES;
请注意,要大写!否则:
而且也不要忘记最后面的 ‘分号’
问题:有 :SHOW DATABASES; 这个命令,那么 SHOW CREATE DATABASE database_name; 又是什么呢?
即:显示已创建的 database_name (注意,这是数据库的名字) 的内容。
很容易在刚开始使用的时候认错,以为其默认输出上一个创建的数据库,其实不然,后面一定要附上数据库的名字,否则会报错:
以上两个语句的错误各有千秋,大家是否看出来了呢?
一定要注意DATABASE 的单复数。
查看数据库引擎:
最常见的引擎有三种:
InnoDB (我的数据库引擎就是这个)
MyISAM
MEMORY
当然,可以通过命令输出数据库引擎。
(上图只截取了一部分)
也可以:
support 表示引擎能否使用;default则表示默认引擎
有一个教程上写有另一种方法可以直接查看默认引擎:
我试了,是这样:
不知道是什么情况,如有路过大佬,还请指点迷津。
以上是创建“数据库”,接下来创建数据表。
创建数据表:
在创建数据表之前,一定要先选择在哪个库中创建:
USE 表名称
出现: Database changed 表示:已经选中了该数据库,接下来创建数据表:
CREATE TABLE tb1
# 创建数据表的命令为:CREATE TABLE 后面要加上所创建数据表的名字,注意到这里还没有结束。
# 这里可以按下回车,但是在末尾千万不要加上分号。
(id INT(11), name VARCHAR(25), deptID INT(11), salary FLOAT);
# 以上是创建表的全部语句,结束之后需要加上分号。
#在终端操作不建议在这一句上进行分行处理,尤其是写习惯代码,敲对号一次敲一对的,就更不能按回车!
#如果实在是想给他分行写,那么最外面的括号的右半要最后再敲上去。
# 在这里插播一下,我们在括号内部写的是表的结构(下面简单举两个例子):
字段名称 | 数据类型 | 备注 |
id | INT(11) | |
name | VARCHAR(25) |
目前还没有弄清楚为什么会出现 2warnings,后续弄明白再补充上。
到此为止,建立了一个表,只不过这个表是空的。
我们来查看一下该表:
SHOW TABLES;
主键约束:
主键就是主码,主键约束,即要求主键列数据唯一,且不能为空。这样就能够明确标注该键所在的一行数据。(主键其实可以不在列首,甚至一个表格内可以有多个主键约束)
主键约束可以是一个字段,也可以是多个字段(字段说白了就是每一列的列头名称。)
单字段主键:
可以直接在字段之后设置
# 我又创建了一个名为 tb2 的表格,只是在ID(这就是一个字段)后添加了 PRIMARY KEY ,不要写错字母。
# 所以这个表格的主键就是 ID
# 查看一下,确实创建完成了。
除此之外,可以先确定各个字段,在最后标明主键。
# 如果在写入字段的时候发生错误,注意,一定要重新创建表格!
# 报错提示会标明错误的地方。终端和pycharm不同,终端没有提示,很容易写错,建议写两个字就赶快查看一下是否出错。
# 这里敲代码也是可以进行复制和粘贴操作的。
# 下面是我的前车之鉴。
即使字段设置完成,没有创建表的命令,也一样会报错。
多字段联合主键:
只能选用第二个方法啦!就是在括号内写入多个字段即可。
外键约束:
外键可以在多个表之间建立联系。
外键在子表中,外键依赖的主键在父表中。
子表中所设置的外键可以不是子表的主键:即,子表主键为id,其外键可以是septID,但是这个外键一定是要关联到父表的主键上。
举个例子:
我们就拿之前的tb3作为父表:
此时 tb3 的主键是 id
我们再创建一个子表:
其中字段内容和 tb3 相同,外键设置为 deptID,链接到父表的主键上:
主要语句:
CONSTRAINT <外键名> FOREIGN KEY (<子表中作为外键的字段>) REFERENCES <父表名称>(<父表的主键>);
注意,如果在设置外键时,名称不小心打错了,就会报错:
这个报错提示很明显。
注意:
子表的外键必须关联父表的主键,且两个字段的数据类型必须相同!