百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

数据库 MySQL单表 增删改

toyiye 2024-06-21 12:12 11 浏览 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中登录;

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码