MySQL笔记第一天(从小白到入门)
文章目录
- MySQL笔记
- SQL语言介绍
- 数据库系统
- 关系型数据库
- 非关系型数据库
- SQL和数据库系统的关系
- 数据库系统架构
- MySQL的介绍
- 概念
- MySQL的版本
- MySQL的DDL操作-重点
- 基本数据库操作
- 基本表操作
- MySQL的DML操作-重点
- insert-插入数据
- update-更新数据
- delete-删除数据
- MySQL的约束-了解
- 概述
- 约束的分类
- 主键约束
- 自增约束
- 其他约束
- 插入以下数据,发现主键从100开始,然后依次加1
MySQL笔记
SQL语言介绍
-
SQL语句概念
1.SQL全称: Structured Query Language,是结构化查询语言,用来访问结构化数据(类似Excel文本数据) 2.SQL用来操作数据库系统 3.SQL发展到现在,制定了很多的标准,有:SQL-92、SQL-99标准,不同的标准表达方式不同
-
SQL语言的分类
数据定义语言-DDL (create/drop/show) 数据操作语言-DML (insert/delete/update) 数据查询语言-DQL (select/group by/order by) !!!!!!! 数据控制语言-DCL
-
SQL语法特点
SQL 对关键字的大小写不敏感SQL语句可以以单行或者多行书写,以分行结束
-
SQL的注释
-- 单行注释 # 单行注释/*多行注释 多行注释 多行注释 多行注释 */
数据库系统
关系型数据库
-
介绍
关系型数据库最大的特点是:数据库中存储的是一张张的表格,表格与表格之间存在的某种关系
-
分类
1、Oracle数据库 (老大,最挣钱的数据库) 2、MySQL数据库 (最流行中型数据库)) 3、SQL server数据库 (Windows上最好的数据库) 4、PostgreSQL(功能最强大的开源数据库) 5、SQLite(最流行的嵌入式数据库#黑马的课程设计的数据库:MySQL数据库、Oracle数据库、PostgreSQL数据库
非关系型数据库
-
介绍
菲关系型数据库中存储的是键值对,大部分都不是表
-
分类
1、Redis(最好的缓存数据库) 2、MongoDB(最好的文档型数据库) 3、Elasticsearch(最好的搜索服务) 4、Cassandra(最好的列式数据库) 5、HBase(优秀的分布式、列式数据库)#黑马的课程设计的数据库:Elasticsearch、HBase、MongoDB
SQL和数据库系统的关系
1、SQL是一种用于操作数据库的语言,SQL适用于所有关系型数据库。
2、MySQL、Oracle、SQLServer是一个数据库软件,我们使用SQL可以操作这些软件,不过每一个数据库系统会在标准SQL的基础上扩展自己的SQL语法。
数据库系统架构
数据库系统 --->数据库 --->表 --->数据
MySQL的介绍
概念
1、MySQL现在归属于Oracle公司(甲骨文)、该公司旗下还有一个Oracle数据库,
2、MySQL底层是C语言
3、MySQL支持多种操作系统,多种编程语言访问()
MySQL的版本
MySQL的经典数字版本: MySQL 8.x 和 MySQL 5.x
可以安装 社区版MySQL 8.x 或者 商业版 MySQL 8.x
MySQL的DDL操作-重点
基本数据库操作
-- 1、查看所有的数据库
show databases ;-- 2、创建数据库
#不推荐使用以下命令,如果数据库存在,则报错
create database mydb1;#推荐使用以下命令,如果数据库存在,则什么也不做,如果数据库不存在,则创建
create database if not exists mydb1;-- 3、选择当前要使用哪个数据库
use mydb1;-- 4、删除数据库
#以下命令不推荐,因为如果数据库不存在,则报错
drop database mydb1;
#以下命令推荐,因为如果数据库不存在,则什么也不做
drop database if exists mydb1;-- 5、修改数据库编码
#我们目前的数据库默认就是utf-8编码
-- alter database mydb1 character set utf8;
d=img-5BSVIfZf-1715992255382)
基本表操作
-
数据类型
-
创建表语法
create table [if not exists]表名(字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],字段名3 类型[(宽度)] [约束条件] [comment '字段说明'] )[表的一些设置];
-
创建表操作
-- 1、创建学生表 use mydb1; -- comment是给表字段(列)加注释,可以通过表结构查看注释 -- decimal(10,2) :10表示最多是10为有效数字(整数+小数) ,小数保留2位,整数最多是8位 -- 12345678.34 :整数8位 + 小数2位 -- varchar(20) 这里边最多存入20个字符,超过会截断 create table if not exists student2(sid int comment '学生学号',name varchar(20) comment '学生名字',gender varchar(2) comment '学生的性别',age int comment '学生的年龄',birth date comment '学生的生日', -- 2000-12-23address varchar(50) comment '学生的地址',score decimal(10,2) comment '学生的成绩' );use mydb1; -- 查看所有的表 show tables ;-- 查看表创建时的sql语句 show create table student2;-- 查看表结构,表字段名字和类型 desc student;-- 删除表 drop table student;
MySQL的DML操作-重点
insert-插入数据
-
语法
insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...); #向表中插入某些 insert into 表 values (值1,值2,值3...); #向表中插入所有列
-
代码
#------------------DML操作-insert插入数据----------------------- -- 添加一行数据 insert into student(sid,name,gender,age,birth,address,score) values (1,'宝玉','男',19,'2000-12-23','北京',87);-- 添加一行数据 #前边跟几个字段,后边就要跟几个值,类型要相同 insert into student(sid,name,gender) values (2,'黛玉','女');-- 添加一行数据 # 如果表的后边没有加字段,则values后边需要给所有字段赋值 insert into student values (3,'宝钗','女',16,'2000-12-23','上海',98);-- 添加多行数据 insert into student values(4,'晴雯','女',17,'2002-12-23','深圳',56),(5,'贾琏','男',34,'2023-10-23','广州',98),(6,'贾雨村','男',156,'2008-02-21','杭州',45);
update-更新数据
-
语法
update 表名 set 字段名=值,字段名=值...; update 表名 set 字段名=值,字段名=值... where 条件;
-
代码
#------------------DML操作-update更新数据----------------------- -- 将所有学生的地址改为:吉山村 update student set address = '吉山村';-- 将所有学生的age改为18,score改为100 update student set age = 18,score = 100;-- 将所有学生的age在原来基础加上10岁 update student set age = age + 10 ;-- 将 晴雯 的address改为广州 update student set address = '广州' where name = '晴雯'; update student set address = '广州' where sid = 4;
delete-删除数据
-
语法
delete from 表名 [where 条件]; truncate table 表名 或者 truncate 表名
-
代码
#------------------DML操作-delete删除数据----------------------- -- 删除操作,如果后边不加where条件,则会将该表的所有数据全部删除,比较危险 delete from student ;-- 删除宝玉这个学生 delete from student where name = '宝玉';-- 清空表的所有内容 #注意:delete和truncate原理不同,delete只删除内容,而truncate类似于drop table ,可以理解为是将整个表删除,然后再创建该表; truncate table student; truncate student; -- 作用同上
MySQL的约束-了解
概述
约束就是给某一列加限制,让该列的值复合某种要求,英文:constraint
约束的分类
主键约束(primary key) PK
自增长约束(auto_increment)
非空约束(not null)
唯一性约束(unique)
默认约束(default)
外键约束(foreign key) FK
主键约束
-
特点
1、MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行,方便在数据库中尽快的找到某一行。 2、主键约束相当于 非空 + 唯一 的组合,主键约束列不允许重复,也不允许出现空值(null值)。 3、每个表最多只允许一个主键 4、主键约束的关键字是:primary key
-
语法
#----------------方式1----------------------- -- 在 create table 语句中,通过 PRIMARY KEY 关键字来指定主键。 --在定义字段的同时指定主键,语法格式如下: create table 表名(...<字段名> <数据类型> primary key ... ) #----------------方式2----------------------- --在定义字段之后再指定主键,语法格式如下: create table 表名(...primary key(字段名) );
-
代码
#----------------方式1----------------------- drop table if exists student; create table if not exists student(sid int primary key comment '学生学号', # !!!添加主键-sid这一列的值不能为空,而且必须唯一name varchar(20) comment '学生名字',gender varchar(2) comment '学生的性别',age int comment '学生的年龄',birth date comment '学生的生日', -- 2000-12-23address varchar(50) comment '学生的地址',score decimal(10,2) comment '学生的成绩' );#----------------方式2----------------------- drop table if exists student; create table if not exists student(sid int comment '学生学号',name varchar(20) comment '学生名字',gender varchar(2) comment '学生的性别',age int comment '学生的年龄',birth date comment '学生的生日', -- 2000-12-23address varchar(50) comment '学生的地址',score decimal(10,2) comment '学生的成绩',primary key (sid) # !!!添加主键 ,sid这一列的值不能为空,而且必须唯一 );# 插入成功 insert into student values (1,'宝钗','女',16,'2000-12-23','上海',98); # 插入失败,因为主键不能重复 insert into student values (1,'宝玉','男',16,'2000-12-23','上海',98); # 插入失败,因为主键不能为空 insert into student values (null,'宝玉','男',16,'2000-12-23','上海',98); # 插入失败,因为主键列没有指定值,默认是null值,则不符合主键的要求 insert into student(name,gender) values ('黛玉','女');
-
删除主键
# 删除主键,但是还剩下一个非空约束 alter table student drop primary key; #再删除非空约束,这样主键的所有影响全部消除 ALTER TABLE student MODIFY sid INT NULL;
自增约束
-
概念
1、在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键就会自动加1 2、自动增长必须要加在主键的后边,加了自动增长之后,该列的值可以自己在每次添加数据时加1 3、自动增长的列默认是1开始增长,每次加1 4、主键列必须是数字列 5、自动增长的关键字:auto_increment
-
代码
#------------------DML操作-自动增长----------------------- # 自动增长必须要加在主键的后边,加了自动增长之后,该列的值可以自己在每次添加数据时加1 # 自动增长的列默认是1开始增长,每次加1 # 主键列必须是数字列drop table if exists student; create table if not exists student(sid int primary key auto_increment, # 给主键添加自增长约束auto_incrementname varchar(20) ,gender varchar(2) ,age int ,birth date ,address varchar(50) ,score decimal(10,2) );# 你可以执行以下命令多次,发现主键会自增 insert into student values (null,'宝玉','男',16,'2000-12-23','上海',98);# 删除所有数据,主键的历史记录不会被清空,下一次添加依然在之前最大的主键值之上加1 delete from student;# 你可以执行以下命令多次,发现主键会在最大值之上加1 insert into student values (null,'宝玉','男',16,'2000-12-23','上海',98);# 如果你想让主键重新回到1开始自增,则可以使用truncate命令(先删除表,再建表) truncate table student; # 你会发现,主键又从1开始增长 insert into student values (null,'宝玉','男',16,'2000-12-23','上海',98);# 我们也可以设置主键从某个值开始增长 drop table if exists student; create table if not exists student(sid int primary key auto_increment, # 给主键添加自增长约束auto_incrementname varchar(20) ,gender varchar(2) ,age int ,birth date ,address varchar(50) ,score decimal(10,2) )auto_increment = 100; # 我们也可以设置主键从100开始增长# 插入以下数据,发现主键从100开始,然后依次加1 insert into student values (null,'宝玉','男',16,'2000-12-23','上海',98);
其他约束
create table if not exists student(sid int primary key auto_increment,name varchar(20) not null, # 非空约束,该列的值不能为空gender varchar(2) unique , # 唯一约束,该列的值必须唯一age int ,birth date ,address varchar(50) default '北京', # 默认值约束,该列如果没有给值,则模式是北京score decimal(10,2)
);
,
score decimal(10,2)
)auto_increment = 100; # 我们也可以设置主键从100开始增长
插入以下数据,发现主键从100开始,然后依次加1
insert into student values (null,‘宝玉’,‘男’,16,‘2000-12-23’,‘上海’,98);
### 其他约束```sql
create table if not exists student(sid int primary key auto_increment,name varchar(20) not null, # 非空约束,该列的值不能为空gender varchar(2) unique , # 唯一约束,该列的值必须唯一age int ,birth date ,address varchar(50) default '北京', # 默认值约束,该列如果没有给值,则模式是北京score decimal(10,2)
);
相关文章:

MySQL笔记第一天(从小白到入门)
文章目录 MySQL笔记SQL语言介绍数据库系统关系型数据库非关系型数据库SQL和数据库系统的关系数据库系统架构 MySQL的介绍概念MySQL的版本 MySQL的DDL操作-重点基本数据库操作基本表操作 MySQL的DML操作-重点insert-插入数据update-更新数据delete-删除数据 MySQL的约束-了解概述…...

初识Qt:从Hello world到对象树的深度解析
Qt中的对象树深度解析 Hello world1.图形化界面创建命令行式创建在栈上创建在堆上创建为什么传文本需要QString,std::string不行吗?那为什么要传入this指针?为什么new后不用显示调用delete函数呢,不会造成内存泄漏问题吗ÿ…...

多维数据库创建
多维数据库 小白的数据仓库学习笔记 2024/5/21 上午 文章目录 多维数据库Cube的作用:什么是多维数据库维的级别多维数据分析方法如何构建多维数据集?创建项目创建数据源创建数据源视图创建多维数据集维度表中缺失的值拖拽过去建立维度结构设计类型启动连…...

win11安装docker运行Open-Webui 界面化展示 ollama大模型
1.OpenWeb UI运行需要docker 环境下载docker Get Started | Docker 2.需要命令提示符docker -v 查询是否安装成功; 查询docker详情docker version 3.github拉取open-webUi镜像Package open-webui GitHub 复制命令运行在命令提示符; 等待下载完成 4.到…...

网络模型-PoE技术
一、PoE简介 以太网供电PoE(Powerover Ethernet)是指通过以太网网络进行供电,也被称为基于局域网的供电系统PoL(PoweroverLAN)或有源以太网(Active Ethernet)。 1、PoE的优势: 可靠: 电源集中供电,备份方便。连接简捷: 网络终端不需外接电源…...

网站策划是什么
网站策划是指在建立、设计和运营一个网站时所采取的系统性规划和组织活动。它涵盖了从确定网站的目标和目标受众到确定内容、功能、设计和营销策略等方面的各个方面。在今天互联网时代的背景下,网站已经成为企业、组织和个人展示自身形象、提供信息和服务、开展交流…...
MySQL基础学习: SET FOREIGN_KEY_CHECKS = 0
文章目录 一、介绍二、使用方法三、注意事项 一、介绍 在MySQL中,SET FOREIGN_KEY_CHECKS 0; 是一个特殊的命令,用于临时禁用外键约束检查。这在你执行一些涉及多个表并且可能违反外键约束的批量操作时非常有用。 为什么需要禁用外键约束检查…...
信号:MSK调制和GMSK调制
目录 一、MSK信号 1. MSK信号的第k个码元 2.MSK信号的频率间隔 3.MSK信号的相位连续性 3.1 相位路径 3.2初始相位ψk 4.MSK信号的产生 原理框图 5.MSK信号的频谱图 二、高斯最小频移键控(GMSK) 1.频率响应 2.GMSK调制产生方式 2.1 高斯滤波器法 2.2 正交调制器法…...
计算请假申请时长
请假申请时提供一个开始和结束时间,计算这段时间内的上班时间为多少个小时 /*** 计算请假时长,周日不计算* param startTimeStr* param endTimeStr* return*/public double computeWorkTimeLength(String startTimeStr, String endTimeStr){// 获取配置的…...

linux-配置服务器之间 ssh免密登录
前言 在管理多台Linux服务器时,为了方便操作和自动化任务,实现服务器之间的SSH免密登录是非常有必要的。SSH免密登录可以避免每次远程连接时输入密码,大大提高效率。本文将详细介绍SSH免密登录的原理和实现步骤。 一、原理解释 SSH免密登录的实现依赖于SSH密钥对,主要是利用…...

Java入门基础学习笔记47——ArrayList
什么是集合呢? 集合是一种容器,用来装数据的,类似数组。 有数组,为什么还要学习集合呢? 数组定义完成并启动后,长度就固定了。 而集合是大小可变,开发中用的最多的。 集合的特点:大…...

案例题(第二版)
案例题目 信息系统架构设计 基本概念 信息系统架构(ISA)是对某一特定内容里的信息进行统筹、规划、设计、安排等一系列的有机处理的活动。特点如下 架构是对系统的抽象,它通过描述元素、元素的外部可见属性及元素之间的关系来反映这种抽象…...

基于python向量机算法的数据分析与预测
3.1 数据来源信息 该数据集来源于Kaggle网站,数据集中包含了罗平菜籽油的销售数据,每行数据对应一条记录,记录了罗平菜籽油销售数据。其中,菜籽产量、菜籽价格和菜籽油价格是数值型数据,共2486条数据。 通过读取Exce…...

传输层 --- UDP
一、简述与回顾 传输层:负责数据能够从发送端传输接收端 在TCP/IP协议中,我们用"源IP","源端口号","目的IP","目的端口号",和"协议号"来表示一个通信。…...

图书管理系统(Java版本)
文章目录 前言要求1.设置对象1.1.图书1.2.书架2.管理员3.功能的实现 2.搭建框架2.1.登录(login)2.2.菜单2.3.操作方法的获取 3.操作方法的实现3.1.退出系统(ExitOperation)3.2.显示图书(ShowOperation)3.3.查阅图书(FindOperation)3.4.新增图书(AddOperation)3.5.借出图书(Borr…...

全同态加密生态项目盘点:FHE技术的崛起以及应用
撰文:Chris,Techub News 在当今数字化的时代,隐私保护已成为一个全球性的焦点话题,特别是在加密货币和区块链技术快速发展的背景下。虽然当前的隐私技术在保护数据安全方面多有欠缺,引发了广泛的关注和批评,…...

山脉数组的峰顶索引 ---- 二分查找
题目链接 题目: 分析: 我们很明显, 可以从峰值位置将数组分成两段, 具有"二段性", 所以可以用二分查找因为arr是山峰数组, 不存在相等的情况如果arr[mid] > arr[mid 1], 说明mid的位置可能是峰值, 移动right mid如果arr[mid] < arr[mid 1], 说明mid的位置…...

【简单介绍下7-Zip,什么是7-Zip?】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
SCSS基本使用:构建高效、可维护的CSS架构
SCSS基本使用:构建高效、可维护的CSS架构 SCSS(Sassy CSS)是一个流行的CSS预处理器,它扩展了CSS的功能,提供了变量、嵌套规则、混合(Mixins)、函数等强大的编程特性,使得开发者能够编…...

allegro 无法删除Xnet
allegro 无法删除Xnet Orcad中打开Constraint Manager之后,再生成网表,导入PCB后就会出现一堆Xnet网络。无法去除Xnet。 解决办法 在原理图ORCAD中, 1、打开Edit Object properties 2、选择Filter by:Capture 3、点击New Property 4、设置…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...