头歌 MySQL数据库 - 初识MySQL

本章内容是为了完成老师布置的作业,同时也是为了以后考试的时候方便复习。

数据库部分一条一条的写,可鼠标手动粘贴,除特定命令外未分大小写。

第1关:创建数据库

        在操作数据库之前,需要连接它,输入命令:

mysql -u用户名 -p密码。

        在平台上连接数据库还需要加上一句:

mysql -uroot -p123123 -h127.0.0.1

         创建数据库:

create database MyDb;

第2关:创建表

        连接数据库:

mysql -uroot -p123123 -h127.0.0.1

        创建数据库

create database TestDb;

         进入数据库:

use TestDb;    //进入数据库

         创建表:

 CREATE TABLE 表名
(
    字段名,数据类型,
    字段名,数据类型,
    .....
)

create table t_emp (id int,name varchar(32),deptId int,salary float
);

第3关:使用主键约束

        主键,是表中一列或者多列的组合,主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空,主键能够唯一的标识表中的每一条记录,可以结合外键来定义与不同数据表之间的关系。

         怎么理解主键?数据库中的表可以存放很多数据,如果把表中的每一个数据比作一个人的话,那么表的主键就可以看做是人的身份证

         有两种方式可以添加主键约束:

        1.在定义列的同时指定主键

ad0a2e930d6e436a9bda0ec5363783f5.png

        2.在定义完字段之后再指定主键

a4d2c049089f4cdb9b7681b22efe4cb8.png

         在数据库MyDb中,创建两张表t_user1t_user2,表结构如下,请为两张表分别创建主键约束,t_user1的主键为userId,t_user2的主键为联合主键,将字段namephone作为t_user2的联合主键。

ccce8f867b884c5498d5077d0d12fd0e.png937f6c2ddc6b436bae2aa55c90ab1647.png

mysql -uroot -p123123 -h127.0.0.1create database MyDb;use MyDb;
create table t_user1(userId INT PRIMARY KEY,name VARCHAR(32),password VARCHAR(11),phone VARCHAR(11),email VARCHAR(32)
);
create table t_user2(name VARCHAR(32),phone VARCHAR(11),email VARCHAR(32),PRIMARY KEY(name,phone)
);

第4关:外键约束

1.外键是什么?

        外键就是另一张表中的主键。外键的主要作用就是保持数据的一致性,完整性。

4b5c098a58644cc8aae8275e72cc0739.png

         如图有两张表,classIdT_Student的外键,是T_class 表的主键, 如果我们要删除T_class 表中classId1的字段,程序是会报错的,因为t_student表中有数据和classId1的字段关联了,是不能删除的,这样子就保证了数据的一致性和完整性

2.如何才能删除?

        需要先删除T__student表中classId1的两个字段。

3.如何给表添加外部关键字?

        在MySQL中给表中字段添加外键约束的语法规则如下:

CONSTRAINT 外键名 FOREIGN KEY 字段名 REFERENCES 主表名(主键名)

        举个例子:现在有两张表,t_empt_dept如下。 

1651aca415ae4e689ec4dd41380c1511.png

e75c390d12ad4d869544e7ecea77f462.png

         创建两张表,并给员工表(t_emp)添加外键:

CREATE TABLE t_dept
(deptId INT PRIMARY KEY,name VARCHAR(22),location VARCHAR(50)
);
CREATE TABLE t_emp
(id INT PRIMARY KEY,name VARCHAR(22),deptId INT,CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId)
);

4.题目

        创建两张表如下,给t_student表添加外键约束,外键为classId,外键名称为fk_stu_class1

6a51a429111d458bafad289e685a42ef.png

         代码如下:

mysql -uroot -p123123 -h127.0.0.1create database MyDb;use MyDb;
CREATE TABLE t_class
(id INT  PRIMARY KEY,name VARCHAR(22) 
);)
CREATE TABLE t_student
(id INT  PRIMARY KEY,name VARCHAR(22) ,classId int,CONSTRAINT fk_stu_class1 FOREIGN KEY(classId) REFERENCES t_class(id)
);

 第5关:添加常用约束

        在数据库的使用过程中我们经常要限制字段的取值,比如有些字我们不能让它为空,我们就需要添加非空约束。

        唯一约束(Unique Constraint)要求该列唯一,允许为空,但是只能有一个空值。唯一约束可以确保一列或者几列不出现重复值。

 1.添加唯一约束

        定义部门表的部门名称唯一,SQL语句如下:关键词 UNIQUE

CREATE TABLE t_dept(id INT PRIMARY KEY,name VARCHAR(22) UNIQUE,location VARCHAR(50)
)

 2.添加非空约束

        关键词:NOT NULL

CREATE TABLE t_dept(id INT PRIMARY KEY,name VARCHAR(22) NOT NULL,location VARCHAR(50)
)

3.使用默认约束

        默认约束:即给字段一个默认值。 关键词:DEFAULT; 

CREATE TABLE t_emp(id INT PRIMARY KEY,name VARCHAR(22),sex VARCHAR(2) DEFAULT '男'
) DEFAULT CHARSET=utf8;

        注意:

  • 如果是添加字符串型默认值要使用单引号,如果是整型则不需要加任何符号;
  • 如果要添加的是中文默认值,则需要加上DEFAULT CHARSET=utf8;使用英文字符则不需要。

 4.设置表的属性值自动增加

        在数据库应用中,经常有个需求就是,在每次插入新纪录时,系统自动生成字段的主键值,即:

ac72b50a8a53484690510b772f41a77f.png

         关键词:AUTO_INCREMENT,默认情况下初始值和增量都为1

CREATE TABLE t_tmp
(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(32)
)

 5.题目

        在数据库MyDb中创建表t_user,表结构如下:

7d1a60d50fda4a45ad27f2fcda473761.png

        提示:若要给字段添加两个或者两个以上的约束,约束之间以空格隔开即可。 

mysql -uroot -p123123 -h127.0.0.1create database MyDb;use MyDb;
CREATE TABLE t_user
(id INT  PRIMARY KEY AUTO_INCREMENT,username VARCHAR(32) NOT NULL UNIQUE,sex VARCHAR(4) DEFAULT '男'
)DEFAULT CHARSET=utf8;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/190449.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于DOTween插件实现金币飞行到指定位置功能

文章目录 前言一、DOTween是什么?二、使用步骤1.导入DOTween插件在Unity官方插件商店找到DOTween插件导入DOTween插件启用DOTween插件 2.代码逻辑金币飞行代码控制飞行效果代码 3.物体配置1.物体上装配CoinEffect脚本2.在金币预制体上装配FlyControl脚本 三、效果展…

【Java SE】继承

学习完了类之后,我们将继续学习一个Java中的重点内容“继承” 继承 1.1 为什么需要继承 举例: 在Cat类中和Dog类中我们发现有很多一样的地方,这样写太浪费空间和内存了 我们可以把它相同的地方都用一个类来表示,并且使用它1.2 继…

IPSecGRE

IPSec&GRE 手工方式建立IPSec隧道组网实验拓扑配置步骤第一步配置IP地址第二步配置静态路由第三步配置IPSec 抓包测试 GRE Over IPSec功能的配置组网实验拓扑配置命令 配置GRE使用静态路由组网图实验拓扑配置步骤1.配置RouterA2.配置RouterB3.配置RouterC4.验证配置结果 手…

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)

本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…

git拉取普通idea Java项目module没有build的问题

在不断完成一个项目的时候,会有不断新加的module,我们用git拉取时会发生没有识别新module的情况。 解决方法是右键项目名称,然后点击Open Module Settings 接下来,点击Module,加号,新建Module的名字就是在g…

LeetCode47-全排列II-剪枝逻辑

参考链接: 🔗:卡尔的代码随想录:全排列II 这里第一层,used只有一个元素为1,代表只取出了1个元素作为排列,第二层used有两个元素为1,代表取出了2个元素作为排列,因为数组有序,所以重复的元素都是挨着的,因此可以使用如下语句去重. 其中visit[i-1]False的话,就是代表…

教程:使用 Keras 优化神经网络

一、介绍 在 我 之前的文章中,我讨论了使用 TensorFlow 实现神经网络。继续有关神经网络库的系列文章,我决定重点介绍 Keras——据说是迄今为止最好的深度学习库。 我 从事深度学习已经有一段时间了,据我所知,处理…

Vue项目

使用vs打开Vue项目 运行: 终端命令: npm run serve初次打开的是App.vue页面 修改服务器端口 vue.config.js const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpileDependencies: true,devServer: { //增…

Pycharm中添加Python库指南

一、介绍 Pycharm是一款为Python开发者提供的集成开发环境(IDE),支持执行、调试Python代码,并提供了许多有用的工具和功能,其中之一就是在Pycharm中添加Python库。 添加Python库有许多好处,比如能够增加开…

Spring 设计模式-简洁版

Java 中包括以下设计模式: 其中Spring 用到的设计模式 1.简单工厂-BeanFactory 2.工厂方法FactoryBean 3.单例模式Bean实例 4.适配器模式SpringMVC中的HandlerAdatper 5.装饰器模式BeanWrapper 6.代理模式_AOP底层 7.观察者模式-spring的事件监听 8.策略横式exclud…

2、LeetCode之两数相加

给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。 输入&am…

电脑软件:推荐一款非常实用的固态硬盘优化工具

目录 一、软件简介 二、工作原理 三、功能介绍 3.1、优化SSD设置 3.2、查看驱动器信息 3.3、查看SMART数据 3.4、停用Windows事件日志记录 3.5、禁用Windows碎片整理 3.6、时间戳停用 3.7、禁用引导文件的碎片整理 3.8、关闭短名称 四、使用教程 4.1 安装说明 4.…