数据库与数据库管理系统 MySQL的安装 SQL语言学习:DDL、DML

day51

数据库

数据库(database)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。

通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据,如数据库管理系统MySQL

数据库的五个基本概念

  1. 数据库服务器
  2. 数据库
  3. 数据表
  4. 数据字段
  5. 数据行

详解

数据库服务器。是指用来运行数据库服务的一台电脑。小型项目通常为一台,中大型项目通常是多台数据库服务器共同来存储或计算。由于数据安全非常重要,所以我们需要对数据库服务器里面的数据进经备份管理。ps:安装了数据库管理系统的电脑就可简单 称为数据库服务器。

数据库。一个数据库服务器里面有可以有多个数据库。主要用来分类使用。我们可以建立学员管理系统数据库、电子商城数据库、CRM数据库、ERP数据库等等,主要用来将各个不同用途的数据,按照业务进行划分。

数据表。例如在学员管理系统数据库中。根据业务的不同又分为了不同的数据表。专门用来存放不同人员的数据。例如:学员数据表(学号、用户名、密码);老师数据表(用户名、密码,工作经验)

数据字段,也叫数据列。就是我们日常所见表格里面的列。在表格中,我们会将一张用户表分成多个列。如下(表一)所示:用户编号、用户名、性别、年龄是字段。在真正的数据库中数据字段需要换成英文需要写成:id、username、sex、age。

数据行。真正的数据存在每一个表的行里面。字段(列)划分出来了一个表应该按照什么样的格式存数据。而行,是真正的数据。每一行需要遵循数据字段(列)的规范和要求进行存入数据。

用户编号用户名性别年龄数据字段
1小黑18数据行
2小白19数据行

MySQL

MySQL是一款免费的产品,可以直接从网上下载使用,是一个真正的多用户、多线程SQL数据库服务器。此外,MySQL数据库具有跨平台性的优势之一。高版本貌似要付费。

它是以客户机/服务器结构实现的,由一个服务器守护程序以及很多不同的客户程序和库组成。

官方下载地址:http://dev.mysql.com/downloads/mysql/

MySQL 5.7融合了MySQL数据库和InnoDB存储引擎的优点,能够提供高性能的数据管理解决方案,包括:

  1. InnoDB作为默认的数据库存储引擎。

  2. 改善性能和可扩展性,全面利用各平台现代、多核构架的计算能力。

  3. 提高易管理性和效率。

  4. 提高可用性。

安装MySQL

注意:建议安装5.7及以上版本,对于重新安装数据库,需要注意将电脑上的数据库删除干净才能顺利安装新数据库,对于彻底卸载干净可以搜索相关有图的教程

双击即可,大部分都是一路next
关键节点注意事项:

  1. 选中“Typical”,典型安装模式
  2. 选中“Detailed Configuration”(详细配置)单选按钮
  3. 选中“Developer Machine”(开发者机器)单选按钮
  4. 选中“Multifunctional Database”(多功能数据库)单选按钮
  5. 服务端口3306,不建议更改
  6. 字符集注意要选“Manual Selected Default Character Set/Collation”单选按钮,设置字符集编码为utf8
  7. 设置密码尽量简单如:用户名:root 密码:root

启动MySQL服务

方式一

“我的电脑”→“管理”→“服务”在服务器的列表中找到mysql服务并右键单击,在弹出的快捷菜单中,完成MySQL服务的各种操作(启动、重新启动、停止、暂停和恢复)
服务启动

注意:不同版本服务显示不同,如MySQL80版本才会显示MySQL80,80版本以下就是mysql,下面命令启动注意输入不然报错,最直接就看服务里的名字

方式二:

通过命令行的方式来管理,桌面导航栏的搜索框输入cmd,注意要以管理员身份运行命令提示符(即黑窗口)。
服务启动

net stop/start mysql服务名

sql命令测试

登录mysql -uroot -p
展示show databases;
删除数据库drop database 数据库名;
使用数据库use 数据库名;
展示表show tables;
查询学生信息select * from student;

客户端(命令行)连接mySQL服务—登录

mysql -uroot -p

输入密码root

-u :username

-p :password
连接登录

SQL

  1. 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。 (qnz.sql)

注意理解:关系型数据库:表之间有联系;非关系型数据库:如redis没有表

  1. SQL是关系模型的数据库应用语言,由IBM在20世纪70年代为其关系型数据库 System R 所开发。
  2. SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准。
  3. 虽然各个数据库系统略有不同,但是他们基本均遵循SQL 92标准。或者在SQL 92上做了一些简单的扩展和变化。

SQL分类

  1. 数据定义语言(DDL ,Data Defintion Language)语句:数据定义语句,用于定义不同的数据对象、数据库、表、列、索引等。常用的语句关键字包括create、drop、alter等。
  2. 数据操作语言(DML , Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的语句关键字主要包括insert、delete、update和select等。(DML:添加,修改,删除,DQL:查询)
  3. 数据控制语言(DCL, Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。

注意:项目中使用DML,面试其他可能会考,DDL少用,DCL一般我们没有级别去开权限

DDL

数据库、数据表、数据字段操作

数据库可视化工具有很多,如小海豚、Navicat等等,这里本人使用的Navicat。

字符集
utf-8【国际字符集】
(utf8mb3【一个中文占3个字节】/utf8mb4【可存生僻字】)【MySQL自己的字符集】
创建连接
连接
新建数据库

新建查询:sql语句

注意选中sql命令运行运行

# DDL:针对于数据库、表、字段操作的语言# 操作库----------------------------------------------# 创建库
CREATE DATABASE qnz01javaee;# 删除库
DROP DATABASE qnz01javaee;# 查询所有库
SHOW DATABASES;# 使用库
USE qnz01javaee;# 操作表----------------------------------------------# 创建表
#基本语法:create table 表名(字段名 字段类型 ,.... , 字段名 字段类型);
# VARCHAR(32):可以接收32字符长度的数据
# FLOAT(8,2):可以接收长度为8,其中有两位小数的数据
CREATE TABLE s_student(s_name VARCHAR(64),s_sex VARCHAR(32),age INT(3),salary FLOAT(8,2),course VARCHAR(32)	
)# 修改表名
#语法:alter table 旧表名 rename 新的表名;
ALTER TABLE s_student RENAME student;# 删除表
DROP TABLE student;# 查询所有表
SHOW TABLES;# 操作字段----------------------------------------------# 添加字段
#语法格式:alter table 表名 add 字段名 类型;
ALTER TABLE student ADD xxx VARCHAR(32);# 删除字段
#语法格式:alter table 表名 drop column 字段名;
ALTER TABLE student DROP xxx;# 修改字段类型
#alter、modify、change修改
#语法格式:alter table 表名 modify 字段名 varchar(20);
ALTER TABLE student MODIFY s_sex VARCHAR(16);# 修改字段名
#语法格式:alter table 表名 change 字段原名 字段新名 字段类型;
ALTER TABLE student CHANGE s_sex sex VARCHAR(16);# 修改字段名+类型
ALTER TABLE student CHANGE s_name name VARCHAR(32);# 查询字段信息
DESC student;# 获取创建表信息
SHOW CREATE TABLE student;#数字键1旁边的[`]
-- CREATE TABLE `student` (
--   `s_name` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,
--   `sex` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
--   `age` int DEFAULT NULL,
--   `salary` float(8,2) DEFAULT NULL,
--   `course` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci#问:字段与关键字重复会冲突吗?
#不会,数据库会优化sql命令
数据库操作

创建、删除、查询、使用库

对于没有可视化工具是十分不便
数据库操作

数据表操作

创建、修改(名)、查询、删除表

特别说明:

字段类型是建表的关键,目前要掌握关键常用的几个

int — 代表整型

float — 代表浮点

字符串:

​ char(32):最多只能存储32个字符,如果未满32个,也占32个的空间

​ varchar(32):最多只能存储32个字符,如果未满32个,占实际字符的个数

​ 注意:以上两种字符串表现形式最多只能存储255个字符

​ text存放长文本信息

datetime,timestamp代表时间

数据字段操作

添加、修改、删除、查询字段、获取创建表信息

DML

增删改查

清除数据考虑到恢复,id不冲突

新建查询:sql语句
# DML:针对数据行增删查改的语言,由于查询的SQL语句较多,所以查询语句又分出来叫做DQL# 前言:每张表必须有且只有一个主键
# 主键:主键上的数据不能重复且不能为null,主键上的数据相当于该数据行的唯一标识
# PRIMARY KEY - 主键
# auto_increment - 自动增长
CREATE TABLE student(id INT(3) PRIMARY KEY auto_increment,name VARCHAR(32),sex VARCHAR(32),age INT(3),salary FLOAT(8,2),course VARCHAR(32)
)# 添加数据 ----------------------------------------------------------------# 方式一
#语法格式:insert into 表 values(值1,值2,值n);
INSERT INTO student VALUES(1,'奇男子','男',23,10000,'Java');# 方式二
INSERT INTO student VALUES(1,'奇男子','男',23,10000,'Java'),(2,'小兰','男',20,12000,'Java');# 方式三
#语法格式:insert into 表(字段1,字段2,字段n) values(值1,值2,值n);
INSERT INTO student(name,sex,age,salary,course) VALUES('奇男子','男',23,10000,'Java');
INSERT INTO student(name,sex,age,salary,course) VALUES('小兰','男',20,12000,'Java');
INSERT INTO student(name,sex,age,salary,course) VALUES('奇女子','女',19,17000,'Java');
INSERT INTO student(name,sex,age,salary,course) VALUES('刘德华','男',21,15000,'Java');
INSERT INTO student(name,sex,age,salary,course) VALUES('马德华','男',27,10000,'Java');
INSERT INTO student(name,sex,age,salary,course) VALUES('霍建华','男',19,12000,'Java');
INSERT INTO student(name,sex,age,salary,course) VALUES('华晨宇','男',32,5000,'Python');
INSERT INTO student(name,sex,age,salary,course) VALUES('黄日华','男',45,4000,'Python');
INSERT INTO student(name,sex,age,salary,course) VALUES('任达华','男',28,7000,'Python');
INSERT INTO student(name,sex,age,salary,course) VALUES('周华健','男',30,8000,'Python');
INSERT INTO student(name,sex,age,salary,course) VALUES('欧阳震华','男',23,12000,'Python');
INSERT INTO student(name,sex,age,salary,course) VALUES('麻生希','女',30,7000,'HTML');
INSERT INTO student(name,sex,age,salary,course) VALUES('椎名空','女',23,6000,'HTML');
INSERT INTO student(name,sex,age,salary,course) VALUES('水野朝阳','女',28,8000,'HTML');# 删除数据 ----------------------------------------------------------------# 清空表数据 - 方式一:清空数据后,再次添加,id会从1开始
#truncate截断、删节
TRUNCATE student;
# 清空表数据 - 方式二:清空数据后,再次添加,id会继续递增
# 注意:清空数据推荐使用第二种方式,因为删除的数据如果恢复后,id不会冲突
DELETE FROM student;# 单条件删除
#语法:delete from 表 [where 条件];
DELETE FROM student WHERE id=5;
DELETE FROM student WHERE salary<=5000;# 多条件删除
# OR 或
# AND 与
DELETE FROM student WHERE sex='女' OR course='Python';
DELETE FROM student WHERE sex='女' AND course='Java';
DELETE FROM student WHERE course IN('Python','HTML');# 修改数据 ----------------------------------------------------------------# 查询数据 ----------------------------------------------------------------# 查询所有字段
SELECT * FROM student;

注意:创建表,这里主键和自动增长方式
auto_increment 是数据列的一种属性,只适用于整数类型数据列;数据列必须具备 NOT NULL 属性.。表字段

插入数据

语法格式:

insert into 表 values(值1,值2,值n);

insert into 表(字段1,字段2,字段n) values(值1,值2,值n);

两种语法的区别:

基本语法1的插入语句,表中有多少个字段就必须要插入多少个值。一个不能多,一个也不能少。若有默认值,不想传,可以写上null。

基本语法2中,除非有必填字段必须要写入值外。如果有默认值的不想写可以忽略不写。mysql会自动补主默认值

删除数据

清空表数据 - 方式一:清空数据后,再次添加,id会从1开始 TRUNCATE student; 清空表数据 -
方式二:清空数据后,再次添加,id会继续递增 DELETE FROM student;
注意:清空数据推荐使用第二种方式,因为删除的数据如果恢复后,id不会冲突
方式一
方式二

DCL

管理用户,开权限

小结

数据库与数据库管理系统

数据库管理系统的安装

SQL语言学习:DDL、DML

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

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

相关文章

Python-3.12.0文档解读-内置函数repr()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 概述 详细描述 自定义类的行为 使用示例 异常处理 注意事项 总结 记…

【Linux】深入理解文件操作:从C语言接口到系统调用与缓冲区管理

文章目录 前言&#xff1a;1. 铺垫1.1. 对文件表述符的理解 2. 重新使用C文件接口&#xff1a;对比一下重定向2.1. 什么叫当前路径&#xff1f;2.2. 写入文件2.3. 读文件2.4. 程序默认打开的文件流2.5. 输出2.6. 输入 3. 系统调用提供的文件接口3.1. open 打开文件3.2. open函数…

更新关于其宠物产品质量的电子学习课程

​我们受托更新关于其宠物产品质量的电子学习课程。我们决定采用流行的“Corporate Memphis”风格设计插图&#xff0c;这是一种适用于商业的友好卡通风格&#xff08;该名称来源于80年代因其亮丽的色彩和独特的项目方法而闻名的设计团体“Memphis”&#xff09;。我们选择“Co…

C# Web控件与数据感应之 填充 HtmlTable

目录 关于 HtmlTable HtmlTable与BaseDataList的区别 准备数据源 ​范例运行环境 FillTable 方法 设计与实现 模板样例输出 Automatic 模式填充 ​ DynamicRows 模式填充 StaticRows 模式填充 ​ 小结 关于 HtmlTable 数据感应也即数据捆绑&#xff0c;是…

Dell戴尔XPS 16 9640 Intel酷睿Ultra9处理器笔记本电脑原装出厂Windows11系统包,恢复原厂开箱状态oem预装系统

下载链接&#xff1a;https://pan.baidu.com/s/1j_sc8FW5x-ZreNrqvRhjmg?pwd5gk6 提取码&#xff1a;5gk6 戴尔原装系统自带网卡、显卡、声卡、蓝牙等所有硬件驱动、出厂主题壁纸、系统属性专属联机支持标志、系统属性专属LOGO标志、Office办公软件、MyDell、迈克菲等预装软…

SEACells:元细胞分析

元细胞是从单细胞测序数据中衍生的细胞分组&#xff0c;代表高度精细的不同细胞状态。在这里&#xff0c;作者介绍了单细胞细胞状态聚集 (SEACells)&#xff0c;这是一种用于识别元细胞的算法&#xff0c;它克服了单细胞数据的稀疏性&#xff0c;同时保留了传统细胞聚类所掩盖的…

LeetCode322.零钱兑换

文章目录 题目描述解题思路递归记忆化搜索动态规划另一种实现 题目描述 https://leetcode.cn/problems/coin-change/description/?envTypestudy-plan-v2&envIdtop-interview-150 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount …

Java商城免 费 搭 建:VR全景到SAAS,各种模式一网打尽!

一、技术选型 java开发语言&#xff1a;java是一种跨平台的编程语言&#xff0c;适用于大型企业级应用开发。使用java开发直播商城可以保证系统的稳定性和可扩展性。 spring boot框架&#xff1a;spring boot是一个快速构建spring应用的框架&#xff0c;简化了开发过程&#xf…

linux动态调试 dev_dbg

动态调试使用方法 打开内核动态调试开关&#xff0c;make menuconfig选中CONFIG_DYNAMIC_DEBUG以及CONFIG_DEBUG_FS Linux启动后&#xff0c;使用命令行挂载上dbgfs 1. mkdir /mnt/dbg 2. mount -t debugfs none /mnt/dbg 1.控制某个文件所有dev_dbg()&#xff0c; echo -n &q…

【React篇 】React项目中常用的工具库

我们可以从项目初始化、开发、构建、检查及发布的顺序总结react项目开发常用的工具库。 首先是初始化。 初始化工程项目一般用官方维护的 create-react-app&#xff0c;这个工具使用起来简单便捷&#xff0c;但 create-react-app 的配置隐藏比较深&#xff0c;修改配置时搭配…

wampserver安装与汉化

wampserver安装与汉化 文章目录 wampserver安装与汉化一、安装二、汉化1.升级软件并安装补丁 介绍&#xff1a; WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程&#xff0c;从而腾出更…

蒙层(css)

如何在 Vue 中实现一个包含图像和蒙层效果的组件&#xff1f;这个组件根据某个条件显示或隐藏蒙层&#xff0c;用于表示图像是否已读。 1. 创建基础模板 首先&#xff0c;我们在模板中使用 div 包裹我们的图像组件 GraphImage&#xff0c;并为最外层 div 设置 position: relat…

【MySQL数据库】MySQL 高可用搭建方案——MHA实战

MHA&#xff08;Master High Availability&#xff09; MHA实战 MHA&#xff08;Master High Availability&#xff09; 一、MHA简介二、MHA搭建准备要求&#xff1a;mha集群搭建&#xff0c;4台服务器&#xff0c;1主2从&#xff0c;1台mha2.1实验思路2.2实验准备 三、搭建MyS…

新手学习编程网站一站式合集

LTPP在线开发平台 探索编程世界的新天地&#xff0c;为学生和开发者精心打造的编程平台&#xff0c;现已盛大开启&#xff01;这个平台汇集了近4000道精心设计的编程题目&#xff0c;覆盖了C、C、JavaScript、TypeScript、Go、Rust、PHP、Java、Ruby、Python3以及C#等众多编程语…

语音深度鉴伪识别项目实战:基于深度学习的语音深度鉴伪识别算法模型(三)音频去噪算法大全+Python源码应用

前言 深度学习技术在当今技术市场上面尚有余力和开发空间的&#xff0c;主流落地领域主要有&#xff1a;视觉&#xff0c;听觉&#xff0c;AIGC这三大板块。 目前视觉板块的框架和主流技术在我上一篇基于Yolov7-LPRNet的动态车牌目标识别算法模型已有较为详细的解说。与AIGC相…

运维开发介绍

目录 1.什么是运维开发 2.作用 3.优点 4.缺点 5.应用场景 5.1.十个应用场景 5.2.网站和Web应用程序 6.案例 7.小结 1.什么是运维开发 运维开发&#xff08;DevOps&#xff09;是一种结合软件开发&#xff08;Development&#xff09;与信息技术运维&#xff08;Opera…

Unity Apple Vision Pro 开发(一):开发前期准备【软硬件要求 | 开发者模式 | 无线调试打包】

文章目录 &#x1f4d5;教程说明&#x1f4d5;硬件要求&#x1f4d5;软件要求⭐Xcode 15.2 及以上⭐visionOS 1.0 (21N301) SDK 或者更高版本⭐Unity 2022 LTS for Apple Silicon (2022.3.18f1及以上的版本)⭐Unity Pro/Unity Enterprise/Unity Industry的授权许可证 &#x1f…

天锐绿盾 | -办公加密系统、数据防泄密软件、图档加密、文件资料防泄密、源代码防止泄露!

天锐绿盾 |- 透明加密、数据防泄密系统、信息安全管理平台&#xff0c;旨在为用户提供全面的数据防泄露解决方案。该系统集成了文件透明加密技术、内网终端安全管理、以及私有云文档管理等功能&#xff0c;能够在不影响用户日常操作习惯和网络开放性的前提下&#xff0c;保护设…

HTML入门

HTML入门 注意&#xff0c;水文自用&#xff0c;//并非HTML注释语言&#xff0c;&#xff08;<&#xff01;–XXX->&#xff09;才是 初始文件结构 Vscode中 &#xff01; tab <!DOCTYPE html> <html lang"en"> //根元素&#xff0c;起始点 &l…

【机器学习基础】Python编程04:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机器学习库,如scikit-learn、TensorFlow、Keras和PyTorch等,这些…