JavaWeb--10MySQL(1)--数据库操作(DDL)和表操作(DML)

本文详细介绍了MySQL中的数据定义语言DDL(如创建表、查询、修改和删除数据库对象)和数据操作语言DML(如插入、更新和删除数据),涵盖了数据库设计流程、数据类型、约束和基本SQL语句示例。
摘要由CSDN通过智能技术生成

1 MySQL概述

关系型数据库(RDBMS)
概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。

在这里插入图片描述
二维表的优点:

  • 使用表存储数据,格式统一,便于维护

  • 使用SQL语言操作,标准统一,使用方便,可用于复杂查询

SQL简介
SQL:结构化查询语言。一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

1、SQL语句可以单行或多行书写,以分号结尾。
2、SQL语句可以使用空格/缩进来增强语句的可读性。
3、MySQL数据库的SQL语句不区分大小写。
4、注释:

  • 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
  • 多行注释: /* 注释内容 */
分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户、控制数据库的访问权限

2 数据库设计-DDL

2.1 数据库开发流程

  1. 数据库设计阶段
    • 参照页面原型以及需求文档设计数据库表结构
  2. 数据库操作阶段
    • 根据业务功能的实现,编写SQL语句对数据表中的数据进行增删改查操作
  3. 数据库优化阶段
    • 通过数据库的优化来提高数据库的访问性能。优化手段:索引、SQL优化、分库分表等

2.2 数据库操作 (查询、创建、使用和删除)

DDL英文全称是Data Definition Language(数据定义语言),用来定义数据库对象(数据库、表)。

DDL中数据库的常见操作:查询、创建、使用、删除。

查询数据库
查询所有数据库:

show databases;

在这里插入图片描述
查询当前数据库:


select database();

在这里插入图片描述

创建数据库

create database [ if not exists ] 数据库名;

在这里插入图片描述
使用数据库

use 数据库名 ;

删除数据库

drop database [ if exists ] 数据库名 ;

2.3 图形化工具

在这里插入图片描述

用哪个都行

连接数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载完成后,Test Connection 测试连接。

apply ----> ok
在这里插入图片描述
展示数据库
在这里插入图片描述

使用

创建数据库:
在这里插入图片描述
在这里插入图片描述

2.4 表操作(创建表、查询表、修改表、删除表)

关于表结构的操作也是包含四个部分:创建表、查询表、修改表、删除表。

都已经进行图形化操作了,不必写SQL语句。

但是还是要懂语句什么意思的。
2.4.1 创建
语法:

create table  表名(
	字段1  字段1类型 [约束]  [comment  字段1注释 ],
	字段2  字段2类型 [约束]  [comment  字段2注释 ],
	......
	字段n  字段n类型 [约束]  [comment  字段n注释 ] 
) [ comment  表注释 ] ;

例如:

create table tb_user (
    id int primary key auto_increment comment 'ID,唯一标识', #主键自动增长
    username varchar(20) not null unique comment '用户名',
    name varchar(10) not null comment '姓名',
    age int comment '年龄',
    gender char(1) default '男' comment '性别'
) comment '用户表';

使用图形话操作就行
在这里插入图片描述
在这里插入图片描述
好好摸索这个界面
在这里插入图片描述

2.4.2 查询

直接基于图形化界面操作 好好摸索摸索

show tables;
desc 表名 ;
-- 查询指定表的建表语句
show create table 表名 ;  

2.4.3 修改
添加字段

alter table 表名 add  字段名  类型(长度)  [comment 注释]  [约束];
alter table tb_emp add  qq  varchar(11) comment 'QQ号码';

在这里插入图片描述

-- 修改数据类型
alter table 表名 modify  字段名  新数据类型(长度);
alter table 表名 change  旧字段名  新字段名  类型(长度)  [comment 注释]  [约束];
alter table tb_emp modify qq varchar(13) comment 'QQ号码';
alter table tb_emp change qq qq_num varchar(13) comment 'QQ号码';

删除字段

alter table 表名 drop 字段名;
alter table tb_emp drop qq_num;

修改表名

rename table 表名 to  新表名;
rename table tb_emp to emp;

2.4.4 删除

drop  table [ if exists ]  表名;
drop table if exists tb_emp;  -- 在删除表时,表中的全部数据也会被删除。

2.5 约束

概念:所谓约束就是作用在表中字段上的规则,用于限制存储在表中的数据。

作用:就是来保证数据库当中数据的正确性、有效性和完整性。

约束描述关键字
非空约束限制该字段值不能为nullnot null
唯一约束保证字段的所有数据都是唯一、不重复的unique
主键约束主键是一行数据的唯一标识,要求非空且唯一primary key
默认约束保存数据时,如果未指定该字段值,则采用默认值default
外键约束让两张表的数据建立连接,保证数据的一致性和完整性foreign key

3 数据类型

数值类型

类型大小(byte)有符号(SIGNED)范围无符号(UNSIGNED)范围描述备注
tinyint1(-128,127)(0,255)小整数值
smallint2(-32768,32767)(0,65535)大整数值
mediumint3(-8388608,8388607)(0,16777215)大整数值
int4(-2147483648,2147483647)(0,4294967295)大整数值
bigint8(-2^63, 2^63-1)(0,2^64-1)极大整数值
float4(-3.402823466 E+38,3.402823466351 E+38)0 和 (1.175494351 E-38,3.402823466 E+38)单精度浮点数值float(5,2):5表示整个数字长度,2 表示小数位个数
double8(-1.7976931348623157 E+308,1.7976931348623157 E+308)0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308)双精度浮点数值double(5,2):5表示整个数字长度,2 表示小数位个数
decimal小数值(精度更高)decimal(5,2):5表示整个数字长度,2 表示小数位个数

字符串类型

类型大小描述
char0-255 bytes定长字符串char(10): 最多只能存10个字符,不足10个字符,占用10个字符空间 phone char(11)
varchar0-65535 bytes变长字符串varchar(10): 最多只能存10个字符,不足10个字符, 按照实际长度存储 username varchar(20)
tinyblob0-255 bytes不超过255个字符的二进制数据
tinytext0-255 bytes短文本字符串
blob0-65 535 bytes二进制形式的长文本数据
text0-65 535 bytes长文本数据
mediumblob0-16 777 215 bytes二进制形式的中等长度文本数据
mediumtext0-16 777 215 bytes中等长度文本数据
longblob0-4 294 967 295 bytes二进制形式的极大文本数据
longtext0-4 294 967 295 bytes极大文本数据

日期时间类型

类型大小(byte)范围格式描述
date31000-01-01 至 9999-12-31YYYY-MM-DD日期值
time3-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
year11901 至 2155YYYY年份值
datetime81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
timestamp41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

4 数据库操作 DML

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

  • 添加数据(INSERT)
  • 修改数据(UPDATE)
  • 删除数据(DELETE)
    在这里插入图片描述
    我的建议是直接图形化操作,上面增加就是“ + ” 号 删除就是 “ - ”号, 记得上传 + - 右边有个向上箭头
    在这里插入图片描述

4.1 增加(insert)

insert语法:

  • 向指定字段添加数据

    insert into 表名 (字段名1, 字段名2) values (值1, 值2);
    
  • 全部字段添加数据

    insert into 表名 values (值1, 值2, ...);
    
  • 批量添加数据(指定字段)

    insert into 表名 (字段名1, 字段名2) values (值1, 值2), (值1, 值2);
    
  • 批量添加数据(全部字段)

    insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);
    

案例1:向tb_emp表的username、name、gender字段插入数据

-- 因为设计表时create_time, update_time两个字段不能为NULL,所以也做为要插入的字段
insert into tb_emp(username, name, gender, create_time, update_time)
values ('wuji', '张无忌', 1, now(), now());

案例2:向tb_emp表的所有字段插入数据

insert into tb_emp(id, username, password, name, gender, image, job, entrydate, create_time, update_time)
values (null, 'zhirou', '123', '周芷若', 2, '1.jpg', 1, '2010-01-01', now(), now());

案例3:批量向tb_emp表的username、name、gender字段插入数据

insert into tb_emp(username, name, gender, create_time, update_time)
values ('weifuwang', '韦一笑', 1, now(), now()),
       ('fengzi', '张三疯', 1, now(), now());

Insert操作的注意事项:

  1. 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。

  2. 字符串和日期型数据应该包含在引号中。

  3. 插入的数据大小,应该在字段的规定范围内。

4.2 修改(update)

update语法:

update 表名 set 字段名1 =1 , 字段名2 =2 , .... [where 条件] ;

案例1:将tb_emp表中id为1的员工,姓名name字段更新为’张三’

update tb_emp set name='张三',update_time=now() where id=1;

案例2:将tb_emp表的所有员工入职日期更新为’2010-01-01’

update tb_emp set entrydate='2010-01-01',update_time=now();

注意事项:

  1. 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

  2. 在修改数据时,一般需要同时修改公共字段update_time,将其修改为当前操作时间。

4.3 删除(delete)

delete语法:

delete from 表名  [where  条件] ;

案例1:删除tb_emp表中id为1的员工

delete from tb_emp where id = 1;

案例2:删除tb_emp表中所有员工

delete from tb_emp;

注意事项:

​ • DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。

​ • DELETE 语句不能删除某一个字段的值(可以使用UPDATE,将该字段值置为NULL即可)。

​ • 当进行删除全部数据操作时,会提示询问是否确认删除所有数据,直接点击Execute即可。

学会图形化操作 ,看得懂SQL语句。就是今天的任务。
后续SQL语句的书写,不会就搜,慢慢就学会了!

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值