数据库 MySQL单表 增删改(mysql表的增删改查)
mhr18 2024-09-27 12:03 21 浏览 0 评论
01.数据库介绍_什么是数据库:
1).字面解释:存储数据的仓库。它是一个软件,底层存储数据仍然是使用"文件系统"。只是它底层存储数据采用了"索引页"的方式,它类似于
字典的"目录",可以很快的在大量数据中快速的定位到我们要查询的数据。所以在需要存储大量数据的情况下,我们需要"数据库软件"来存储
数据。
02.数据库介绍_什么是数据库管理系统:
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件。
广义上讲:任何的基于数据库的信息管理系统都称为:DBMS。
狭义上讲:它也指MySQL内部的一个小软件,用于接收用户的请求,并查询数据。
03.数据库介绍_常见的数据库软件:
1).MYSQL:开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
2).Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
3).DB2:IBM公司的数据库产品,收费的。常应用在银行系统中.
4).SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
5).SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
6).SQLite: 嵌入式的小型数据库,应用在手机端。
常用数据库:MYSQL,Oracle.
04.数据库介绍_数据库的内部逻辑结构:
数据库软件:
|--逻辑数据库
|--表
|--列(预先定义)
|--行(存储数据)
|--逻辑数据库
....
05.MySQL数据库_安装:
参考"安装文档"
06.MySQL数据库_登录MySQL数据库:
1).安装后要确保MySQL正在运行;
我的电脑(计算机)-->右键-->管理-->服务和应用程序-->服务-->MySQL,要确保"状态"是"正在运行"。
2).登录MySQL:
1).启动命令行:win键 + R -->启动"运行"对话框-->输入"cmd"(回车)
2).输入命令:
1)方式一(连接本机MySQL):C:\>mysql -uroot -p你的密码(回车)
2)方式二(连接网络MySQL):C:\>mysql --host=MYSQL的IP地址 --user=root --password=你的密码
例如:C:\>mysql --host=127.0.0.1 --user=root --password=123(回车)
07.MySQL数据库_SQL概述:
1).什么是SQL:结构化查询语言(Structured Query Language)简称SQL,是关系型数据库管理系统都需要遵循的规范。它是操作数据库软件,
用于增删改查数据时所使用的专门的语言。各种数据库软件都要遵守这套规范,也都要支持这套语言。
普通话:所有数据库软件都支持的标准SQL语句。
方言:某种数据库软件内部提供了独有的操作数据的语句。
2).SQL语言的分类:
1).数据定义语言:DDL
用于对"逻辑数据库"和"表"以及"列"等元素进行操作的SQL语句。常用的语句:create(创建)、alter(修改)、drop(删除)
2).数据控制语言:DCL[不涉及]
用来定义数据库的访问权限和安全级别,及创建用户
3).数据操作语言:DML【重点掌握】
用于对"数据"进行添加(insert into)、修改(update)、删除(delete)操作的。
4).数据查询语言:DQL【重中之重】
用于对"数据"进行查询(select ... from ... where ...) 操作的。
3).SQL的通用语法:
1).SQL语句可以单行或多行书写,以分号结尾(在命令行状态下)
2).可使用空格和缩进来增强语句的可读性。
3).MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
例如:SELECT * FROM user。
08.MySQL数据库_DDL语句_数据库操作的相关语句:
1).创建数据库:
1).create database 数据库名;
2).create database 数据库名 character set 字符集;
2).查看当前数据库中的所有逻辑数据库:
show databases;
3).查看某个数据库的定义的信息:
show create database 数据库名;
4).删除数据库
drop database 数据库名称;
5).切换数据库
use 数据库名;
6).查看当前在哪个逻辑数据库下工作:
select database();
09.MySQL数据库_DDL语句_表操作的相关语句:
1).创建表:
create table 表名(
列名1 数据类型(长度)[约束],
列名2 数据类型(长度)[约束],
列名3 数据类型(长度)[约束],
...... ,
列名n 数据类型(长度)[约束]
)
例如:创建一个学员信息表:id,姓名,性别,年龄
create table student(
idint,
namevarchar(100),
sexchar(2),
ageint
);
2).查看数据库中的所有表:
show tables;
3).查看表结构:
desc 表名;
4).删除表:
drop table 表名;
5).修改表:
1).alter table 表名 add 列名 类型(长度) [约束];
作用:修改表添加列.
例如:
#1,为分类表添加一个新的字段为 分类描述 varchar(20)
ALTER TABLE category ADD `desc` VARCHAR(20)
2).alter table 表名 modify 列名 类型(长度) 约束;
作用:修改表修改列的类型长度及约束.
例如:
#2, 为分类表的描述字段进行修改,类型varchar(50) 添加约束 not null
ALTER TABLE category MODIFY `desc` VARCHAR(50) NOT NULL;
3).alter table 表名 change 旧列名 新列名 类型(长度) 约束;
作用:修改表修改列名.
例如:
#3, 为分类表的分类名称字段进行更换 更换为 description varchar(30)
ALTER TABLE category CHANGE `desc` description VARCHAR(30);
4).alter table 表名 drop 列名;
作用:修改表删除列.
例如:
#4, 删除分类表中description这列
ALTER TABLE category DROP description;
5).rename table 表名 to 新表名;
作用:修改表名
例如:
#5, 为分类表category 改名成 category2
RENAME TABLE category TO category2;
6).alter table 表名 character set 字符集(了解);
作用:修改表的字符集
例如:
#6, 为分类表 category 的编码表进行修改,修改成 gbk
ALTER TABLE category CHARACTER SET gbk;
10.MySQL数据库_DDL语句_关于数据类型【重点掌握】:
Java数据类型 MySQL的数据类型
------------------------------------------------------------
整数: 整数:
int int
小数:
float float
double double
decimal(m,d):m:指数字的总位数(包括小数部分),d:指小数部分
布尔:
boolean(true/false) int(1/0)
字符:
char char(1)
日期:
String datetimeYYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
Date
字符串:
String char/varchar
注:char和varchar在MySQL都代表"字符串"
1).char是"定长字符串":例如:设置字段为:char(5),表示:存储的数据最多为5个字符,如果不足5个字符,填充空字符。
存储:"abc"-->硬盘上-->"abc "
存储:"ab" -->硬盘上-->"ab "
存储:"abcedf" --> 硬盘上-->"abced"
2).varchar是"不定长字符串":例如:设置字段为:varchar(5),表示:存储的数据最多为5个字符,不足5个字符就存储实际的字符数,不填充空字符;
存储:"abc"-->硬盘上-->"abc"
存储:"ab" -->硬盘上-->"ab"
存储:"abcdef" -->硬盘上-->"abcde"
怎样选择:char的查询效率要高于varchar
1).对于所有记录的数据平均长度相同,或者长度相差不大的数据,可以优先选择使用:char
例如:性别、手机号码、银行卡号、身份证号....
2).对于所有记录的数据平均长度相差很大,可以选择使用:varchar--节省空间,但牺牲了一些查询效率
例如:地址、爱好、个人简介.....
大文本(超过65535个字符):
StringText
字符串的二进制:
byte[]Binary
二进制数据(视频、图片)
byte[]BLOB
11.MySQL数据库_DDL语句_关于数据类型的长度【重点掌握】:
1).char和varchar的长度:
例如:char(5),varchar(5)
这个长度5,都是指的最多5个字符(英文或者中文字符)。
2).整数的长度:要结合zerofill命令一起使用
例如:int(4) ZEROFILL
表示:最少的可见数字的位数是4位,不足4位前面填充0,如果多于4位就存储实际的数字。
3).浮点数的长度:
float(m,d)
double(m,d)
decimal(m,d)
m:表示数字的总长度(包括小数部分)
d:表示小数部分的长度。
12.MySQL数据库_DML语句数据操作语言【重点掌握--今天必须要熟练掌握】:
注意:命令行临时更改数据库的编码方式(只对当前的命令行窗口有效):
set names gbk;
1).添加数据:insert into
A).insert into 表名 values(值1,值2,...,值n);
例如:
insert into student values(1,'刘德华','男',20);
说明:
1)."值列表"中"值"的数量必须和表中实际的"字段数量"要匹配;
2).不填的字段可以使用:NULL(状态)填充。
3).对于"字符串类型"的值,必须使用一对"单引号"或者一对"双引号"括起来,
对于"数值"的值,可以不用单引号或者双引号括起来。
B).insert into 表名(字段1,字段2,....,字段n) values(值1,值2,...,值n);
例如:
insert into student(id,name) values(4,'周星星');
说明:
1)."字段列表"中出现的"字段"可以是表中的部分字段。
2)."字段列表"中出现的"字段"可以不按照表中字段的定义顺序出现。
3)."值列表"中的值的数量、顺序、数据类型和前面"字段列表"中的"字段"的数量、顺序、数据类型要一致;
怎么选择:
1).如果要添加全部或者大部分字段的值,使用第一种,少部分列填充null即可。
2).如果要添加少部分字段的值,使用第二种。其它大部分字段都填充null。
2).修改数据:update 表名 set 字段1 = 新值 , 字段2 = 新值 , ... , 字段n = 新值 where 条件
例如:修改"刘德华"的年龄为20:
update student set age = 20 where name = '刘德华';
修改所有"男"明星的年龄为30
update student set age = 30 where sex = '男';
修改id= 1的记录的name = "周润发' , age = 35,sex = '男'
update student set name = '周润发' , age = 35 , sex = '男' where id = 1;
3).删除数据:delete from 表名 where 条件;
例如:删除"刘亦菲"
delete from student where name = '刘亦菲';
删除所有的男明星
delete from student where sex = '男';
4).查询
13.MySQL数据库_约束:
1).什么是约束:"约束"是MySQL中一个"独立的管理对象",一个"约束"描述了一个表中某列的数据的一些规则要求,并且要求"数据库软件"为我们监控这些数据,如果有违反规则的数据试图进入数据库,数据库软件将会为我们拦截这种数据。这样我们可以保证数据的安全性。
2).都有哪些约束:
1).主键约束:
1).什么是主键:在表中作为"唯一标识一行数据的字段",这种字段就叫:主键。
主键字段的值的特点:不能重复,非空。
建议:
1).任何表都要包含一个主键字段;
2).这个主键字段不能有任何"业务意义";因为只要有业务意义,就可能会被更改,更改时如果这个值被其它表引用,那将会是十分麻烦的事情。
2).一个表只能有一个"主键";
但一个主键可以由"一个字段[常用]"或者"多个字段(复合主键、联合主键)"组成;
一个字段做主键:
id(主键)nameage
1刘亦菲20
2柳岩18
3周星星22
多个字段做一个联合主键:
name(主键)age(主键)sex
张三20男
李四20男
张三22男
张三20女//不能添加
3).定义主键约束:
方式一:
create table student(
id int primary key,//主键约束--唯一、非空
name varchar(100),
age int,
sex char(2)
)
4).删除主键约束:
alter table 表名 drop primary key;
2).自动增长(MYSQL特有的):
1).什么是自动增长:对于主键字段,我们经常使用int类型,如果我们自己维护这个值,长时间下来会非常困难。
所以,MySQL提供了一种机制:自动增长。它可以从某个基数开始,每填一条记录会自动增长1,我们就可以直接使用这个值。
2).设置自动增长:
方式一:
create table student(
id int primary key auto_increment,//主键,自动增长
name varchar(100)
)
添加时:
insert into student values(null,'柳岩',22);
3).自动增长列只能应用在"数值类型",不能应用在"字符串"类型上。
4).自动增长不是必须用在"主键字段"上,但一般常用在"主键字段"上。一个表中只能有一个自动增长字段。
5).删除自动在增长:
alter table 表名 modify 列名 数据类型(长度) [后面不出现auto_increment即可]
3).非空约束:
1).可以约束某个字段的值:不接受NULL(状态)
2).设置非空约束:
方式一:
create table student(
id int primary key auto_increment,
name varchar(100) not null
)
如果再添加数据:
insert into student(null,null);//报错:第二个字段不能为null
insert into student(null,'');//OK的,添加是"空字符串"
3).一个表中,可以同时有多个字段设置"非空约束"。
4).删除非空约束:
alter table 表名 modify 列名 数据类型(长度) ;
4).唯一约束:
1).可以约束某个字段的值:唯一,不重复(但允许有NULL状态,而且允许有多个NULL状态)
2).设置唯一约束:
方式一:
create table student(
id int primary key auto_increment,
name varchar(100) unique //唯一约束
)
添加时:
第一条记录:
insert into student values(null,'柳岩');
第二条记录:
insert into student values(null,'柳岩');//报错
3).删除唯一约束:
ALTER TABLE 表名 DROP INDEX 字段名;
例如:
alter table student drop index name;
5).外键约束:
14.MySQL数据库_重置密码:
步骤:
1).停止mysql服务器 运行输入services.msc 停止mysql服务
2).在cmd下,输入mysqld --console --skip-grant-tables 启动服务器,出现一下页面,不要关闭该窗口
3).新打开cmd,输入mysql -uroot 不需要密码
4).修改新密码:
use mysql;
update user set password=password('新密码') WHERE User='root';
5).关闭两个cmd窗口
6).重新启动MYSQL服务,并在cmd中登录;
相关推荐
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
-
IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
-
IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
-
你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
-
今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
-
现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
-
系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...
- 开源“Windows”ReactOS更新:支持全屏应用
-
IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
-
英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...
- 47道网络工程师常见面试题,看看有没有你不会的!
-
你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
-
e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...
- 36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!
-
前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 手把手教你在嵌入式设备中使用SQLite3
-
摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...
- JAVA语言基础(java语言基础知识)
-
一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...
- 再见 Navicat!一款开源的 Web 数据库管理工具!
-
大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
- 开源“Windows”ReactOS更新:支持全屏应用
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
- 47道网络工程师常见面试题,看看有没有你不会的!
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)