MySQL:DDL和DML语句

数据库开发

在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.mfbz.cn/a/583600.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

# 使用 spring boot 时,@Autowired 注解 自动装配注入时,变量报红解决方法:

使用 spring boot 时,Autowired 注解 自动装配注入时,变量报红解决方法: 1、使用 Resource 代替 Autowired 注解,根据类型注入改为根据名称注入(建议)。 2、在 XXXMapper 上添加 Repository 注解&#xff0…

(2024,一致性模型,强化学习,MDP,DDPO)一致性模型的强化学习:更快的奖励引导文本到图像生成

RL for Consistency Models: Faster Reward Guided Text-to-Image Generation 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 部分图像上传缓慢,可看原论文或在 EDPJ 查看 目录 …

2024/4/29 英语每日一段

Many have turned to cheaper, hand-rolled tobacco instead of normal cigarettes, with young women telling The Times that the habit was a social way to get rid of “anxious energy”. The news comes as the government voted on Tuesday to phase out smoking in Br…

RCE复习(ctfhub下)

先了解一下命令注入的知识点: 知识点 1、常见的拼接符 A ; B 先执行A,再执行BA & B 简单的拼接A | B 显示B的执行结果A&&B A执行成功之后才会执行BA || B A执行失败之后才会执行B , 在特殊情况下可代替空格…

pytorch 实现语义分割 PSPNet

语意分割是指一张图片上包含多个物体,通过语义分割可以识别物体分类、物体名称、像素识别的任务。和物体检测不同,他不会将物体框出来,而是根据像素的归属把物体标注出来。PSPNet 的输入是一张图片,例如300500,那么输出…

Redis基本數據結構 ― List

Redis基本數據結構 ― List 介紹常用命令範例1. 將元素推入List中2. 取得List內容3. 彈出元素 介紹 Redis中的List結構是一個雙向鏈表。 LPUSH LPOP StackLPUSH RPOP QueueLPUSH BRPOP Queue(消息隊列) 常用命令 命令功能LPUSH將元素推入列表左端RPUSH將元素推入列表右…

特别推荐一个学习开发编程的网站

http://www.somecore.cn/ 为开发人员提供一系列好看的技术备忘单,方便开发过程中速查基本语法、快捷键、命令,节省查找时间,提高开发效率。 【人生苦短,抓住重点】

Java 面向对象—重载和重写/覆盖(面试)

重载和重写/覆盖: 重载(overload): Java重载是发生在本类中的,允许同一个类中,有多个同名方法存在,方法名可以相同,方法参数的个数和类型不同,即要求形参列表不一致。重载…

有趣的 CSS 图标整合技术!sprites精灵图,css贴图定位

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合…

【C语言进阶】程序编译中的预处理操作

📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL.. 📚以后会将数据结构收录为一个系列,敬请期待 ● 本期内容讲解C语言中程序预处理要做的事情 目录 1.1 预处理符号 1.2 #define 1.2.1 #define定义标识…

数据结构(01)——链表OJ

目录 移除链表元素 思路1 不创建虚拟头节点 思路2 创建虚拟头节点 反转链表 寻找链表中间节点 判断链表是否相交 回文链表 环形链表 环形链表|| 移除链表元素 . - 力扣(LeetCode) 要想移除链表的元素,那么只需要将目标节点的前一…

07_for循环返回值while循环

文章目录 1.循环返回值2.yield接收for返回值3.scala调用yield方法创建线程对象4.scala中的while循环5.scala中的流程控制 1.循环返回值 for循环返回值是Unit 原因是防止产生歧义; 2.yield接收for返回值 // 2.yield关键字打破循环,可以使for循环输出…

智慧农业设备——虫情监测系统

随着科技的不断进步和农业生产的日益现代化,智慧农业成为了新时代农业发展的重要方向。其中,虫情监测系统作为智慧农业的重要组成部分,正逐渐受到广大农户和农业专家的关注。 虫情监测系统是一种基于现代传感技术、图像识别技术和大数据分析技…

面试笔记——线程池

线程池的核心参数&#xff08;原理&#xff09; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler)corePoolSize …

25计算机考研院校数据分析 | 四川大学

四川大学(Sichuan University)简称“川大”&#xff0c;由中华人民共和国教育部直属&#xff0c;中央直管副部级建制&#xff0c;是世界一流大学建设高校、985工程”、"211工程"重点建设的高水平综合性全国重点大学&#xff0c;入选”2011计划"、"珠峰计划…

PostgreSQL的学习心得和知识总结(一百四十)|深入理解PostgreSQL数据库 psql工具 \set 变量内部及HOOK机制

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

【能力展现】魔改ZXING源码实现商业级DM码检测能力

学习《OpenCV应用开发&#xff1a;入门、进阶与工程化实践》一书 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; 什么是DM码 dataMatrix是一种二维码&#xff0c;原名datacode&#xff0c;由美国国际资料公司于1989年发明。dataMatrix二维码…

GuildFi升级为Zentry的背后 链游公会的探索与转型

​链游即区块链游戏&#xff0c;指依托区块链技术构建的游戏产品。其与传统游戏的最大区别在于区块链的去中心化特性对玩家的资产有着天然的确权行为&#xff0c;因此玩家在链游中的资产是作为玩家的个人资产存在。较于 GameFi 来说&#xff0c;链游的包含范围更大&#xff0c;…

吴恩达机器学习笔记:第 8 周-14降维(Dimensionality Reduction) 14.3-14.5

目录 第 8 周 14、 降维(Dimensionality Reduction)14.3 主成分分析问题14.4 主成分分析算法14.5 选择主成分的数量 第 8 周 14、 降维(Dimensionality Reduction) 14.3 主成分分析问题 主成分分析(PCA)是最常见的降维算法。 在 PCA 中&#xff0c;我们要做的是找到一个方向…

【高校科研前沿】华东师大白开旭教授博士研究生李珂为一作在RSE发表团队最新成果:基于波谱特征优化的全球大气甲烷智能反演技术

文章简介 论文名称&#xff1a;Developing unbiased estimation of atmospheric methane via machine learning and multiobjective programming based on TROPOMI and GOSAT data&#xff08;基于TROPOMI和GOSAT数据&#xff0c;通过机器学习和多目标规划实现大气甲烷的无偏估…