MySQL:DDL和DML语句

ops/2024/9/24 23:28:11/

数据库开发

在web开发中,一般将web应用程序分为三层

Controller

Service

Dao

数据存储

可以使用XML,但XML不便管理和维护,操作难度大.

在真实的企业开发中,都会采用数据库来存储和管理数据.

即Dao层直接访问数据库

什么是数据库

DataBase,数据存储和管理的仓库

操作数据库数据库中的数据->数据库管理系统

DataBase Management System(DBMS)

操作和管理数据库的大型软件,可以直接操作和管理数据库.

需要通过SQL(Structured Query Language)语言

MySQL概述

连接

mysql -u用户名 -p密码 [-h数据库服务器的IP地址 -p端口号]

-h 默认为本地127.0.0.1的mysql服务器

-P参数不加,默认连接端口号为3306

数据模型

关系型数据库(RDBMS)

建立在关系数据模型上,由多张相互连接的二维表组成的数据库

二维表:即行和列组成的表

基于二维表存储数据的数据库就是关系型数据库

表存储数据,格式统一,便于维护
SQL语言操作,标准统一,方便查询

反之就是非关系型数据库

redis

使用键值对存储数据

数据模型

MySQL是关系型数据库

客户端->sql->DBMS->数据库->表

一个数据库服务器中可以创建多个数据库,数据库可以包含多张表,而表中又可以包含多行记录.

SQL介绍

Structured Query Language结构化查询语言

SQL通用语法

可以单行或者多行书写,以分号结尾

可以使用空格/缩进来增强语句的可读性

语句关键字不区分大小写

--单行注释
#单行注释
/*多行注释*/
SQL语句分类
DDL(Data Definition Language)

数据定义语言,用于定义数据库对象(数据库,表,字段)

DML(Data Manipulation Language)

数据操作语言,用来对数据库表中的数据进行增删改

DQL(Data Query Language)

数据查询语言,用来查询数据库中表的记录

DCL(Data Control Language)

数据控制语言,用来创建数据库用户,控制数据库的访问权限.

项目开发流程

需求文档->

设计->数据库
操作->Java程序
优化->优化操作

数据库的设计

1,根据页面原型和需求文档进行需求分析,然后进行项目设计和数据库设计

2,根据页面原型和需求文档,分析需求,实现业务功能,最终通过java程序完成数据的增删改查操作.

3,通过索引,sql优化,分库优化等操作实现数据库优化

DDL语句

database可以换成schema

show databases;
//查询所有数据库
select database;
//查询当前数据库
create database[if not exists]数据库//创建数据库
use 数据库//切换数据库
//操作表时需要先切换到对应的数据库
drop database[if exists] 数据库//删除不存在的数据库会报错
建表
id,创建时间,修改时间需要在所有表中添加作为隐藏字段
create table 表名(字段 字段类型[约束] [comment 字段注释]id int comment 'ID'
)[表注释]
约束

作用于表中字段上的规则,用于限制存储在表中的数据

保证数据库中数据的正确,有效和完整性

可以在表的创建或者修改时添加约束

NOT NULL
//非空约束
UNIQUE
//唯一约束
PRIMARY KEY
//主键约束(唯一非空)
DEFAULT
//默认约束(未指定值就使用默认值)
FOREIGN KEY
//外键约束(用来让两张表的数据之间建立联系)
AUTO_INCREMENT
//自增约束(一个正数序列从1开始自增)配合主键使用
查询
show tables
//查询当前数据库所有表
desc 表名
//查看指定表结构
show create table 表名
//查询指定表的建表语句
修改
alter table 表名 add 字段名 类型(长度) [comment注释] [约束]
alter table emp add qq varchar(11) comment 'QQ号'
alter table 表名 modify 字段名 新数据类型(长度)
alter table emp modify qq varchar(13)
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释][约束]
alter table emp change qq qq_num varchar(13) comment 'QQ'
rename table 表名 to 表名
删除
alter table 表名 drop 字段名
alter table emp drop qq_num
drop table [if exists]表名
truncate table 表名 #删除指定表并重新创建表
delete from emp;#删除表的内容(不会删除表结构)

数据类型

数值类型

分为有符号数(SIGNED)和无符号数(UNSIGNED)

TINYINT -128-127
SMALLINT -32768-32767
MEDIUMINT
INT/INTEGER
BIGINT
FLOAT
DOUBLE
DECIMAL
字符串类型
CHAR #定长字符串 0-255bytes
VARCHAR #变长字符串 0-65535bytes
TINYBOLB #二进制短文本
TINYTEXT #短文本
BLOB #二进制较短文本
TEXT #较短文本
MEDIUMBLOB #二进制中等长度文本数据
MEDIUMTEXT #中等长度文本数据
LONGBLOB #二进制极大文本数据
LONGTEXT #极大文本数据
日期时间类型
DATE #YYYY-MM-DD 日期
TIME #HH:MM:SS 时间值或持续时间
YEAR #YYYY 年份值
DATETIME #YYYY-MM-DD HH:MM:SS 日期时间
TIMESTAMP #YYYY-MM-DD HH:MM:SS 混合时间戳

DML语句

增(insert)

字段顺序应与值顺序一一对应

insert into 表名(字段名1,字段名2..) values(1,2...)
Insert into 表名 values(1,2....)
#给全部字段添加数据
Insert into 表名 (字段名1,字段名2..) values(1,2....),(1,2....),(1,2....);
#批量指定添加数据
Insert into 表名 values(1,2....),(1,2....),(1,2....);
#批量添加数据

修改(update)

如果没有条件会修改整张表的全部语句

一般修改时需要同时修改公共字段update_time为当前时间

update 表名 set 字段名 =,字段名 =..[where 条件]
update emp set username = 'itheima1' where id = 1;

删除(delete)

delete from 表名 [where 条件];

http://www.ppmy.cn/ops/30443.html

相关文章

原生 php 实现redis缓存配置和使用方法

在 PHP 中实现 Redis 缓存的配置和方法,首先需要确保你的服务器上安装了 Redis,并且 PHP 安装了 Redis 扩展。以下是一个基本的步骤和示例: 1. 安装 Redis 和 PHP Redis 扩展 Redis 安装:根据你的服务器操作系统和配置&#xff…

docker学习笔记4:CentOS7安装docker

文章目录 一、安装docker二、配置阿里云加速三、测试镜像安装本篇博客介绍如何在centos7里安装docker,关于CentOS7的安装可以查看本专栏的这篇博客: VmWare CentOS7安装与静态ip配置 centos7里安装docker步骤如下: 一、安装docker 先在终端输入su进入root用户,输入如下命…

【RabbitMQ 一】RabbitMQ简介、消息中间件、MQ的作用

RabbitMQ简介 很多介绍RabbitMQ的地方,上来就说这是一种消息中间件(Message Queue Middleware)。对于一些新手或者初级开发人员,“中间件”的概念并不是很清晰。那么什么是中间件呢? 1.什么是中间件 个人以为&#…

CUDA内存访问模式

大多数设备端数据访问都是从全局内存开始的,并且多数GPU应用程序容易受内存带宽的限制。因此,最大限度的利用全局内存带宽是调控核函数性能的基本。 对齐与合并访问 如图,所有的应用程序数据最初存在于DRAM上,也就是物理设备内存上…

MFC 列表控件修改实例(源码下载)

1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例(源码下载)》 2、程序功能选中列表控件某一项,修改这一项的按钮由禁止变为可用,双击这个按钮弹出对话框可对这一项的记录数据进行修改,点击确定保存修改数…

Hardened Ubuntu 24.04 LTS发布

Ubuntu 24.04 有了LTS 版本,就是长期稳定支持版 侧重安全的增强加固版本Hardened Ubuntu 24.04 LTS也随之到来。 hardened Linux 自 2022 年推出以来,支持 amd64/x86_64 和 arm64 硬件架构,并提供 AWS 版本和 on-premise 版本,获…

gitlab设置保护分支

gitlab设置保护分支方法 进入代码仓库首页,找到settings下的repository并点击进入 找到Protected Branches 下的Exoand按钮,并点击展开 可以看到已经存在默认的保护分支,通常是master/main分支,也可以添加新的保护分支 新建保护分…

解决问题:Docker证书到期(Error grabbing logs: rpc error: code = Unknown)导致无法查看日志

问题描述 Docker查看日志时portainer报错信息如下: Error grabbing logs: rpc error: code Unknown desc warning: incomplete log stream. some logs could not be retrieved for the following reasons: node klf9fdsjjt5tb0w4hxgr4s231 is not available报错…