数据库(MySQL)基础快速入门!

article/2025/8/19 22:59:33

前言:这篇送给那些想要学会数据库,但又不想花太多时间的同学们。看了这篇数据库知识,轻轻松松搞定它!用不同的工具操作数据库命令可能会有小小的不同,我用的是系统自带的cmd。(凡是数据库名称,数据表名称若有对不上的地方,不重要!!!替换成你自己的数据库名称,数据表名称即可!)
在这里插入图片描述

命令大小写都可以!!! 命令中间的或者后面的标点符号都是英文符号!

1、数据库的创建,删除,显示,使用。

(1)创建数据库:create database 数据库名;例如:create database test;(如果之前没创建过数据库,就会显示Empty set
在这里插入图片描述
(2)删除数据库:drop database 数据库名;例如:create database text;
在这里插入图片描述
(3)显示所有的数据库:show databases;
在这里插入图片描述
(4)使用数据库(选中某个数据库进行操作):use 数据库名;例如:use test;(若要对某个数据库进行操作,那么创建完数据库,或者对某数据库进行操作前必须执行这一步!)
在这里插入图片描述

2、数据表的创建,删除,显示。

(1)创建数据表:

create table 数据表名(名称1 类型(大小)(其他属性:主键,是否可以为空,汉语显示等等),名称2 类型(大小)(其他属性:主键,是否可以为空,汉语显示等等),······名称n 类型(大小)(其他属性:主键,是否可以为空,汉语显示等等),
);  
例:create table mingzhu(name varchar(20),author varchar(20),sex char(5));

在这里插入图片描述
(2)删除数据表:drop table 数据表名;例如:drop table mingzhu6;
在这里插入图片描述
(3)显示所有的数据表:show tables;
在这里插入图片描述
(4)显示数据表的结构:describe 数据表名;例如:describe mingzhu;
在这里插入图片描述

3、数据表的增,删,查,改。

(1)增: insert into 数据表名 values('name1','author1','sex1');(根据定义字段的类型输入对应类型的值)例如:insert into mingzhu values ('红楼梦','曹雪芹','男'); insert into mingzhu values('hongloumeng','caoxueqin','nan');
在这里插入图片描述
在这里插入图片描述
注意: 创建数据表时应该在后面加上:default charset=utf8,否则将中文插进去会是乱码!
例如:
在这里插入图片描述
(2)删: 删除数据表里的数据:delete from 数据表名 where 表的一个字段="字段的内容";例如:delete from mingzhu1 where name="红楼梦";
在这里插入图片描述
(3)查: 查看数据表的全部信息:select * from 数据表名;例如:select * from mingzhu;
在这里插入图片描述
根据某一字段查询相应的内容:select 要查询的字段 from 数据表名 where 字段="该字段的内容";例如:select name from mingzhu1 where author="罗贯中";
在这里插入图片描述
(4)改: 修改数据表里的数据:update 数据表名 set 字段="要修改后的样子" where 另一个字段="能根据这个来定位要修改的字段";例如:update mingzhu1 set author="wuchengen" where name="西游记";
在这里插入图片描述

4、MySQL中常用的数据类型:

MySQL支持多种类型,大致可分为三类:数值,日期/时间和字符串(字符)类型。
(1)字符串数据类型: 在这里插入图片描述
1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
3.超过char和varchar的n设置后,字符串会被截断。
4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。
5.char在存储的时候会截断尾部的空格,varchar和text不会。
6.varchar会使用1-3个字节来存储长度,text不会。
(2)数值数据类型:
整型:
在这里插入图片描述
浮点型:
在这里插入图片描述
日期和时间数据类型:
在这里插入图片描述
其他类型:
1.enum(“member1″, “member2″, … “member65535″) enum数据类型就是定义了一种枚举,最多包含65535个不同的成员。当定义了一个enum的列时,该列的值限制为列定义中声明的值。如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。
2.set(“member”, “member2″, … “member64″) set数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。

5、MySQL建表约束:primary key

(1)主键约束:它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段加约束,就可以使得该字段不重复且不为空。
例如:假如你设置一张表中的字段name为主键,那么你就不能插入相同的name的内容,且插入的name不能为空,若你非要背道而驰,那就会报错喽。(有两种设置主键的方法!)
在这里插入图片描述
下面设置的是联合主键,只要id和name重合时不一样就不会出现错误。即:id一样,name不一样,id不一样,name一样都是正确的。只有id一样且name一样才会出错。
在这里插入图片描述

(2)自增约束:和主键约束一起用,可以顺序的插入数据。
在这里插入图片描述
再插入一个:
在这里插入图片描述
修改表结构:添加主键,可以:alter table 数据表名 add primary key(字段);例如:alter table mingzhu5 add primary key(id);
在这里插入图片描述
删除主键:例如:alter table mingzhu5 drop primary key;
在这里插入图片描述
还可以添加:使用modify修改字段,添加约束。例如:alter table mingzhu5 modify id int primary key;
在这里插入图片描述

(3)唯一约束:约束修饰的字段的值不能重复。与主键约束的区别是:唯一约束可以为空。通过:alter table mingzhu5 add unique(name) 添加唯一约束。也可以在建表的时候添加,和主键约束相似。

create table mingzhu5(id int unique,name varchar(30),author varchar(30))default charset=utf8;或者:create table mingzhu5(id int,name varchar(30),author varchar(30),unique(id,name)  //这种的可以使多个字段是唯一约束,只要组合在一起不重复就OK)default charset=utf8;

删除唯一约束:例如:alter table mingzhu5 drop index name;,modify添加约束:alter table mingzhu5 modify name varchar(30) unique;
在这里插入图片描述
总结:
1、建表的时候就可以添加约束,两种。。。
2、可以使用alter。。。add。。。添加约束
3、可以使用alter。。。modify。。。添加约束
4、删除约束:alter。。。drop。。。

(4)非空约束:修饰的字段不能为空。建表的时候在字段后面直接加上 not null 就好。

(5)默认约束:当我们插入字段值的时候,如果没有传值,就会使用默认值。
可以设置默认值。默认值设置完毕,如果没有传入其他的值,则会显示默认值,如果传的有值,就会显示传入的值。
在这里插入图片描述
也可以用alter。。。add。。。//alter。。。modify。。。添加默认值。

(6)外键约束:涉及到两个表(主表,副表)
在这里插入图片描述显示新建的两个数据表:
在这里插入图片描述
插入四个班级:
在这里插入图片描述
在这里插入图片描述
结论:1、主表classes中没有的数据值,在副表中,是不可以使用的;
2、主表中的记录被副表引用,是不可以删除的。

6、数据库的三大范式

(1)第一范式(1NF):数据表中的所有字段都是不可分割的原子值。
字段值还可以拆分的,就不满足第一范式,字段设计的越详细不一定就是最好的,要根据实际情况来判断。
(2)第二范式(2NF):在满足第一范式的条件下,第二范式要求除主键外的每一列都必须完全依赖主键。如果出现不完全依赖的情况,只可能出现在联合主键的情况下。
举例:设计一个订单表:当出现以下问题时需要拆分表!
在这里插入图片描述
(3)第三范式(3NF):在满足第二范式的条件下,除主键列之外的其他列之间不能有传递依赖关系。
在这里插入图片描述

7、语句练习

下面的示例语句都是有应用场景的,仅供参考,切忌生搬硬套!!!

(1)查询学生表的所有记录:select * from students;
(2)查询students表中的所有记录的sname,sex和class列:select sname,sex,class from students;
(3)查询教师所有的单位即不重复的depart列:select distinct depart from teacher;(distinc:排除重复)
(4)查询score表中成绩在60到80之间的所有记录:select * from score where degree between 60 and 80; || select * from score where degree>60 and degree<80;
(5)查询score表中成绩为85,86或88的记录(同一个字段用in):select * from score where degree in(85,86,88);
(6)查询student表中“95031”班或性别为“女”的同学记录(不同的字段用or):select * from student where class='95031' or sex='女';
(7)以class降序查询student表的所有记录:select * from student order by class desc; //降序;select * from student order by class asc; //升序默认(asc:也可不写)
(8)以cno升序,degree降序查询score表的所有记录:select * from score order by cno asc,degree desc; //先按照cno升序,遇到相同的cno,再根据degree降序
(9)查询“95031”班的学生人数:select count(*) from student where class='95031';
(10)查询score表中的最高分的学生学号和课程号(子查询或者排序):
子查询:select sno,cno from score where degree=(select max(degree) from score); || ①select max(degree) from score;select sno,cno from score where degree=max(degree);
排序:select sno,cno,degree from score order by degree;//默认的升序排列,最后一个就是最大的
(11)查询score表中至少有2名学生选修的并以3开头的课程的平均分数:
select cno,avg(degree) from score group by cno having count(cno)>=2 and cno like '3%';
(12)查询学号为108,101的同学同年出生的所有学生的sno,sname和sbirthday列:select * from student where sno in (108,101); select year(sbirthday) from student where sno in (108,101); //year()截取年份,month()截取月份


http://chatgpt.dhexx.cn/article/iM4V7xqy.shtml

相关文章

MySQL数据库1——数据库快速入门

MySQL数据库——数据库基础 &#xff08;一&#xff09;为什么使用数据库 数据库用来存储海量数据数据库利于数据查询和管理数据库相对于文件安全性更高数据库相对于文件利于控制 &#xff08;二&#xff09;MySQL的基本使用 安装好MySQL数据库以后&#xff0c;连接服务器。…

mysql快捷创建数据库_mysql数据库快速入门(1)

1、数据库操作 1.1、连接mysql服务器 mysql -u root( 用户名 ) -p 1.2、退出mysql命令提示窗 exit 1.3、查看版本 SELECT VERSION(); 1.4、列出数据库列表 SHOW DATABASES; 1.5、创建数据库 CREATE DATABASE IF NOT EXISTS [database] DEFAULT CHARSET UTF8; 1.6、选择要操作的…

SQLite3数据库的快速入门菜鸟教程

SQLite3是一个轻量级嵌入式数据库&#xff0c;其主要有以下的特点&#xff1a; 1、零配置无需安装和管理配置&#xff1b; 2、储存在单一磁盘文件中&#xff1b; 3、数据库文件可在不同字节序的机器自由共享&#xff1b; 4、比目前流行的大多数数据库对数据的操作要快&…

MySQL数据库快速入门

MySQL基础 1、数据库相关概念 以前我们做系统&#xff0c;数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果&#xff0c;当然文件存储也有它的弊端。假设在文件中存储以下的数据&#xff1a; 姓名 年龄 性别 住址 张三 23 男 北京西三旗…

MySQL数据库快速入门到精通(超详细保姆级,建议收藏)这可能是目前最适合你的教程,从基础语法到实例演示。

前言 此文章旨在为需要掌握快速开发和复习MySQL的同学所准备&#xff0c;您完全可以把此文章当作参考文档来使用&#xff0c;本文将尽量精简&#xff0c;使您快速的理解和掌握语法。 关于MySQL MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;…

超经典两万字,MySQL数据库快速入门。

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」&#xff1a;此文章已录入专栏《MySQL数据库快速入门》 MySQL快速入门 一、环境准备1. MySQL下载及安装2. MySQL启动3. MySQL客…

SQL数据库快速入门基础

SQL(Structure Query Language,结构化查询语言)语言是国际标准化组织(ISO)采纳的标准数据库语言。 数据库就是一幢大楼,我们要先盖楼,然后再招住户(住户当然就是数据库对象,)。我们盖得大楼的基本格局设计师们已经为我们设计好,我们在创建数据库过程中,系统(设计师)…

数据库快速入门

数据库快速入门 目录 数据库快速入门 1. 数据库基础知识入门 2. Postgre数据库介绍 3. 数据库入门操作 3.1常用命令 3.2 数值类型 3.3 数据运算符 4. 常用函数介绍 4.1 常用函数介绍 4.2 自定义函数 5 数据库索引和视图介绍 5.1 数据库索引介绍 5.2 数据库视图介…

计算机类书籍大全

空降百度网盘: 链接&#xff1a;https://pan.baidu.com/s/1yG198vf_xxBUKW2q-aYm4A 提取码&#xff1a;sll1

爬虫之 爬取京东计算机书籍

爬取京东的计算机类书籍 1. 工具&#xff1a; requests, pycharm, scrapy, mongodb 2. 网页提取工具: xpath 1. 分析京东网页: 打开京东网站 查看源码发现不是动态网页&#xff0c;而且都是列表, 说明了很好处理&#xff1b;开始分析; 我们只要提取书名&#xff0c;书的链…

计算机专业必读哪些经典书籍?

大家好&#xff0c;我是狗哥。 经常有粉丝问&#xff1a;狗哥&#xff0c;我想学计算机&#xff0c;应该读哪些书籍&#xff1f;那么多计算机书籍&#xff0c;我如何选&#xff1f;&#xff0c;今天狗哥就把自己的书单发出来&#xff0c;供大家参考&#xff0c;并附上连接&…

国家电网计算机类备考经验分享

刚刚参加完国家电网计算机类23届的笔试和面试&#xff0c;笔试78&#xff0c;为了给备考国家电网计算机类的小伙伴提供一些有用的信息&#xff0c;给大家分享一个经验贴。本文分为4部分。分别为&#xff1a;个人情况、复习时间线、所用书籍、经验分享。希望这篇文章可以解决小伙…

计算机专业必读的经典书籍!!(建议收藏)

第一个系列&#xff1a;基础 要说哪些书是计算机的经典书籍&#xff0c;我猜很多人都要推荐机械工业出版社引进的黑皮书系列了&#xff0c;你就看吧&#xff0c;每一本都很适合垫显示器垫桌角&#xff0c;垫显示器这个其实只不过是一个调侃而已&#xff0c;之所以这么说&#…

可以看计算机专业书籍的app,分享两个好用的读书APP

分享我现在用的2个读书APP&#xff1a;微信读书和藏书馆。建议不要装太多读书APP&#xff0c;装得越多&#xff0c;使用越分散&#xff0c;反而读得越少。 1.微信读书 优点&#xff1a; AI朗读&#xff0c;边听边走&#xff1b; 分享互动&#xff0c;思维膨胀&#xff1b; 读书…

计算机视觉经典书籍推荐

计算机视觉是人工智能的一个分支&#xff0c;主要研究如何使机器“看”的科学&#xff0c;通俗来说就是用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉&#xff0c;并进一步做图形处理&#xff0c;使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 无人机技…

计算机专业必读的经典书籍

书单推荐 一、计算机思维 《数学之美》 推荐理由: 吴军博士文笔流畅、干货满满&#xff0c;同时切合实际应用&#xff0c;可以作为计算机科学&#xff08;尤其是AI领域&#xff09;的入门读物 《程序员的数学》系列 推荐理由: 程序员需要一定的数学知识&#xff0c;但不是像高…

CentOS防火墙的常用快捷命令

CentOS是免费开源的Linux发行版之一,它兼容RHEL并由社区进行维护,大多数美国服务器提供对该系统支持。在使用CentOS系统时,您需要了解一些常用命令,比如开启、查看、关闭防火墙等。本文将介绍下CentOS防火墙的常用命令。 CentOS是一种面向企业级服务器环境的Linux发行版,…

linux防火墙状态centos5,怎么样查看centos防火墙状态

你想查看下centos防火墙的状态吗?要怎么样查看呢?你下面由学习啦小编给你做出详细的查看centos防火墙状态方法介绍!希望对你有帮助! 查看centos防火墙状态方法一&#xff1a; 直接使用iptables -L查看防火墙设置 service iptables stop关闭防火墙 service iptables start/res…

Ubuntu/Centos防火墙

区分Linux、Ubuntu、Centos的防火墙&#xff1a; Linux原始自带的防火墙工具iptables Ubuntu的防火墙工具ufw Centos的防火墙工具firewalld ----------------------------------------------------------------------------------------------------- Ubuntu默认使…

​CentOS防火墙操作命令 ​

CentOS防火墙操作命令 1、查看防火墙服务状态 systemctl status firewalld.service 或者查看防火墙的状态&#xff1a; 1 firewall-cmd --state 2、开启、重启防火墙 启动firewall&#xff1a; 1 systemctl start firewalld.service 设置开机自启或禁用&#xff1a; …