Mysql从基础入门(1)之数据库建表和增删改

news2025/1/16 0:50:21

文章目录

  • 数据库的介绍
    • 1.ER图
    • 2.约束
  • Mysql常用命令
  • 数据库定义(DDL)
    • 1.DDL操作数据库
    • 2.DDL操作表
  • 操作数据(DML)
    • 1. 添加数据
    • 2. 修改数据
    • 3. 删除数据

数据库的介绍

数据库:存储和管理数据的仓库,数据是有组织的进行存储

数据库管理系统:管理数据库的大型软件,DBMS(DataBase Management System)

1.ER图

表与表之间的关系
在这里插入图片描述

2.约束

约束是作用于表中列上的规则,用于限制加入表的数据

(1)非空约束
关键字:NOT NULL

保证列中所有的数据不能有null值。

– 创建表时添加非空约束
CREATE TABLE 表名(
列名 数据类型 NOT NULL,

);

(2)唯一约束
关键字是 UNIQUE

保证列中所有数据各不相同。

– 创建表时添加唯一约束
CREATE TABLE 表名(
列名 数据类型 UNIQUE …);

(3)主键约束
关键字: PRIMARY KEY

主键是一行数据的唯一标识,要求非空且唯一。一般我们都会给没张表添加一个主键列用来唯一标识数据。

(4)外键约束
关键字是: FOREIGN KEY

外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性。

在这里插入图片描述

简单说就是两张表有关联,当年想删除id=1的部门时,就会出错(因为有好几个员工都属于这个部门)

语法:

– 创建表时添加外键约束
CREATE TABLE 表名(
列名 数据类型,

[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
);

e.g.
建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码Sno,Cno还分别为外码

CREATE TABLE 
SC(Sno varCHAR(5), Cno varCHAR(3), Grade int, 
Primary key (Sno, Cno), 
FOREIGN KEY (Sno) REFERENCES Student(Sno), 
FOREIGN KEY (Cno) REFERENCES Course(Cno));

Mysql常用命令

数据库服务启动:net start mysql

服务关闭:net stop mysql

登录:mysql -uroot -p1234(1234为密码)

数据库定义(DDL)

DDL(Data Definition Language) ,创建(准备工作)

1.DDL操作数据库

语句含义
show databases;查看所有的数据库
create database 数据库名称;创建数据库
drop database 数据库名称;删除数据库
use 数据库名称;使用数据库

2.DDL操作表

可以对比上面的操作数据库,非常相似

(1) 查询当前数据库下所有表名称:

show tables;

(2)查询表的结构:

desc 表名称;

(3)删除表:

drop table 表名;

(4)创建表:

create table 表名 (字段名1 数据类型1, 字段名2 数据类型2, … 字段名n 数据类型n);

如:

create table tb_user (
	id int,
    username varchar(20),
    password varchar(32)
);

(5)修改表:

> ALTER TABLE <表名> 
> [ ADD <新列名> <数据类型> [ 完整性约束 ] ]
>  [ DROP <完整性约束名> ] [
> MODIFY <列名> <数据类型> ]

<表名>:要修改的基本表
ADD子句:增加新列和新的完整性约束条件
DROP子句:删除指定的完整性约束条件
MODIFY子句:用于修改列名和数据类型

操作数据(DML)

DML(Data Manipulation Language) 数据操作语言

1. 添加数据

给指定列添加数据:

INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);

给全部列添加数据:

INSERT INTO 表名 VALUES(值1,值2,…);

e.g.

-- 给stu表的指定列添加数据
INSERT INTO stu (id, NAME) VALUES (1, '张三');

-- 给student表的全部列添加数据
insert into student values('95010','','','18','IS');

2. 修改数据

(也可以说是更新数据)

UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;

e.g.

-- 将张三的性别修改为女
update stu set sex = '女' where name = '张三';

--将stu表中所有人的性别修改为女
update stu set sex = '女';

3. 删除数据

DELETE FROM 表名 [WHERE 条件] ;

e.g.

-- 删除张三记录
delete from stu where name = '张三';

-- 删除stu表中所有的数据
delete from stu;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java 2(程序流程控制)【含例题详解】

java ——程序流程控制 ✍作者&#xff1a;电子科大不知名程序员 &#x1f332;专栏&#xff1a;java学习指导 各位读者如果觉得博主写的不错&#xff0c;请诸位多多支持&#xff1b;如果有错误的地方&#xff0c;欢迎在评论区指出 目录java ——程序流程控制分支结构if-elsesw…

【Redis学习1】Redis安装

Redis基础 什么是Redis REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-…

什么是钉钉消息推送?

我是3y&#xff0c;一年CRUD经验用十年的markdown程序员&#x1f468;&#x1f3fb;‍&#x1f4bb;常年被誉为职业八股文选手 在前阵子我就已经接入了钉钉的群机器人和工作消息推送&#xff0c;一直没写文章同步到给大家。 像这种接入渠道的工作&#xff0c;虽然我没接入过&…

jQuery 常用API

jQuery 常用API Date: January 19, 2023 Sum: jQuery选择器、样式操作、效果、属性操作、文本属性值、元素操作、尺寸、位置操作 目标&#xff1a; 能够写出常用的 jQuery 选择器 能够操作 jQuery 样式 能够写出常用的 jQuery 动画 能够操作 jQuery 属性 能够操作 jQuery…

Linux教程:基本命令学习

文章目录基本操作命令vim使用Linux yum&apt命令本文采用在Windows操作系统上安装虚拟机Vmware以及Centos的方式。 基本操作命令 登录root [swxlocalhost ~]$ su 密码&#xff1a; [rootlocalhost swx]查看文件夹目录 [rootlocalhost swx]# ls FATE Python-3.…

【ROS学习笔记7】ROS中的常用命令行

【ROS学习笔记7】ROS中的常用命令行 文章目录【ROS学习笔记7】ROS中的常用命令行前言一、rosnode二、rostopic三、rosmsg四、rosservice五、rossrv六、rosparam七、Reference写在前面&#xff0c;本系列笔记参考的是AutoLabor的教程&#xff0c;具体项目地址在 这里 前言 机器…

C++ STL 之双向队列 deque 详解

文章目录Part.I AttentionPart.II FuncitonPart.III CodePart.I Attention deque 是 double-ended queue 的缩写&#xff0c;意即双端队列&#xff0c;详细信息参见官网。deque<T>容器适配器是必须要包含头文件#include <deque>deque相较于vector&#xff1a;①它不…

使用eNSP搭建校园网

哈喽&#xff0c;今天写一篇文章记录一下课上进行的实验说实话&#xff0c;上早八这个脑子他是真的不带转的&#xff0c;家人们有没有什么好方法&#xff0c;能在早八的时候把脑子转起来&#x1f622; 好了&#xff0c;讲一下实验背景。 学校有东西两个校区&#xff0c;东校区…

一文吃透 Spring 中的 AOP 编程

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

C++ STL:容器 Container

文章目录1、序列容器1.1、容器共性1.2、vectorvector 结构* vector 扩容原理* vector 迭代器失效1.3、dequedeque 结构deque 迭代器deque 模拟连续空间1.4、listlist 特殊操作list 结构list 迭代器2、关联式容器2.1、容器共性2.2、容器特性3、无序关联式容器3.1、容器共性3.2、…

【剑指offer】JZ5 替换空格、JZ6 从尾到头打印链表

目录 JZ5 替换空格 思路&#xff1a; 解题步骤&#xff1a; JZ6 从尾到头打印链表 思路&#xff1a; 解题步骤 JZ5 替换空格 描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串s中的每个空格替换成“%20”。 例如&#xff0c;当字符串为We Are Happy.则经过替换之…

LibAFL的安装及基本使用

本教程安装LibAFL使用的是Ubuntu 22.04 操作系统 1. 安装 1.1 Rust 安装 Rust的安装&#xff0c;参照Rust官网&#xff1a;https://www.rust-lang.org/tools/install curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh1.2 LLVM安装 直接apt安装&#xff0c;安…

Day903.自增主键不能保证连续递增 -MySQL实战

自增主键不能保证连续递增 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于自增主键不能保证连续递增的内容。 MySql保证了主键是自增&#xff0c;但不相对连续&#xff1b;帮助开发人员快速识别每个行的唯一性&#xff0c;并提高查询效率。 自增主键可以让主键索引…

2023上半年北京/上海/广州/深圳NPDP产品经理认证报名

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年…

【GUI】Robo 3T(Studio 3T Free) for Mongodb安装与使用教程

下载 robo 3T现已更名为studio 3T free&#xff0c;官网即可下载 studio 3T free下载地址 安装 mac电脑下载的是dmg安装包&#xff0c;直接正常安装即可&#xff0c;windows电脑也是一样的&#xff0c;不需要配置环境&#xff0c;安装即可使用。&#xff08;前提是你已经安装…

【C++】二叉搜索树的模拟实现

一、概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值它的左右子树也分别…

Python---time模块

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;Python在学&#xff0c;希望能够得到各位的支持&#xff01;&#xff01;&#xff01; time模块前言时间戳time.time()将时间戳转换成字符串time.ctime()将时间戳转换为元组time.localtime(时间戳)将元…

大四、非计算机专业,Python该怎么学?

我是非计算机专业&#xff0c;大四时开始学Python&#xff0c;用了大概一个半月时间&#xff0c;现在从事数据挖掘工作&#xff0c;算是有点发言权。虽然之前学了点C&#xff0c;但仅仅是皮毛&#xff0c;为了应付考试&#xff0c;所以我基本是零基础开始学Python的。 总结学习…

Stress压力工具的部署及使用

Stress压力工具的部署及使用 下载地址&#xff1a;wget https://fossies.org/linux/privat/old/stress-1.0.5.tar.gz 1.部署 进入目录执行./autogen.sh [rootiZ2ze1pj93eyq389c2ppi5Z stress-1.0.5]# ./autogen.sh ps&#xff1a;如果执行过程中缺包&#xff0c;安装对应的…

运维自动化——Ansible

一&#xff1a;ansible命令执行过程 1. 加载自己的配置文件 默认/etc/ansible/ansible.cfg 2. 加载自己对应的模块文件&#xff0c;如command 3. 通过ansible将模块或命令生成对应的临时py文件&#xff0c; 并将该文件传输至远程服务器的对应执行用户 $HOME…