前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文带你快速上手MySQL并了解什么是DDL和DML!

一文带你快速上手MySQL并了解什么是DDL和DML!

作者头像
reload
发布2024-03-22 18:10:00
2350
发布2024-03-22 18:10:00
举报
文章被收录于专栏:Java后端Java后端

数据库和SQL的学习对于我们开发来说是非常重要的,本篇将带你快速上手MySQL并了解什么是DDL和DML!

一、数据库

1、概述

1.1 数据库

DataBase (DB),是存储和管理数据的仓库。如下是一些市面上常见的数据库产品

1.2 数据库管理系统

DataBase Management System (DBMS),操纵和管理数据库的大型软件。

1.3 SQL

Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。

二、MySQL

1、安装配置

官网:https://www.mysql.com/

关于MySQL的下载安装以及环境变量的配置,网上有很多教程,这里不再赘述。

1.1 初始化MySQL
代码语言:javascript
复制
mysqld --initialize-insecure
1.2 注册MySQL服务
代码语言:javascript
复制
mysqld -install
1.3 启动MySQL服务
代码语言:javascript
复制
net start mysql
1.4 修改默认账户密码
代码语言:javascript
复制
mysqladmin -u root password 1234

这里的1234是指默认管理员(即root账户)的密码,可以自行修改。

1.5 登录MySQL
代码语言:javascript
复制
mysql -uroot -p1234

同样1234是你自己的密码。

或者直接输入

代码语言:javascript
复制
mysql -uroot -p

再输入对应密码,这样可以保证密码的安全性。

2、MySQL数据模型 & SQL简介

2.1 概述

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

2.2 特点

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

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

2.3 MySQL数据模型
2.4 SQL简介

SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

1)通用语法

1.1)书写规范

SQL语句可以单行或多行书写,以分号结尾。

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

代码语言:javascript
复制
show databases;

MySQL数据库的SQL语句不区分大小写。

代码语言:javascript
复制
SHOW DATABASES;

1.2)注释

单行注释

代码语言:javascript
复制
-- 注释内容 或 #注释内容(MySQL特有)
-- show databases;

多行注释

代码语言:javascript
复制
/*注释内容*/
/*show databases;*/
2.4 SQL分类

SQL通常被分为4大类,如下,我们需要重点掌握前三类即 DDL,DML和DQL

3、DDL-数据库操作

整体学习框架

3.1 查询

查询所有数据库

代码语言:javascript
复制
show databases;

查询当前数据库

代码语言:javascript
复制
select database();
3.2 使用

使用数据库

代码语言:javascript
复制
use 数据库名;
3.3 创建

创建数据库

代码语言:javascript
复制
create database [ if not exists ] 数据库名;
3.4 删除

删除数据库

代码语言:javascript
复制
drop database [ if exists ] 数据库名;

4、MySQL图形化工具

我使用的是Navicat Premium 15,关于下载安装,网上也有很多教程,但好像它是收费的,这也简单,网上一搜破解版一大堆,这里就不再赘述了。Navicat官网:https://www.navicat.com/en/download/navicat-for-mysql

当然,如果实在不想安装,可以直接使用我们强大的IDEA,因为IDEA里面已经集成了DataGrip,如下,我们只要在IDEA中连接好我们的MySQL数据库,就可以快乐地写SQL了。

DataGrip是JetBrains旗下的一款数据库管理工具,是管理和开发MySQL、Oracle、PostgresQL的理想解决方案。

5、DDL-表结构操作

5.1 创建表

1)基本语法

代码语言:javascript
复制
create table 表名(
    字段1 字段类型 [约束] [ comment 字段1注释]
    ......
    字段n 字段类型 [约束] [ comment 字段n注释]
) [comment 表注释];

2)约束

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

目的:保证数据库中数据的正确性、有效性和完整性。

3)案例

在已有的数据库 db1下创建一个uer表,字段有 id,username(用户名),name(姓名),age,gender。类型及长度自行设定,合理即可。

要求添加的约束为:id(主键约束,且设置自增),username(非空且唯一),name(非空),gender(默认值为男)

对应的SQL语句如下:

代码语言:javascript
复制
-- DDL:表结构
-- 创建表:基本语法
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 '用户表';

设置主键自增:auto_increment

创建完成后,可以右键 tb_user表 ->设计表,通过图形化界面方式来进行相关的校验和修改

运行SQL后,右键刷新数据库 db1,就会显示新创建的表,双击表,就能添加数据了。可以不用编辑 id,因为设置了自增。同理不编辑 gender的话默认都为男

注1:按 tab键自动切换到下一个字段进行编辑,按方向键 上下左右 也能实现切换。

注2:添加完数据后需要 ctrl+s保存,否则可能不会添加成功。也可以通过新建查询的方式,查询一下该表,看其中的数据来验证是否添加成功。

5.2 数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

1)数值类型

了解一些常用的,并对范围能有一个大概的了解

2)字符串类型

主要熟悉 char 和 varchar即可

1、定长字符串:如 char(10),最多只能存10个字符,不足10个字符,占用10个字符空间。性能高但浪费空间(以空间换时间)

2、变长字符串:如 varchar(10),最多只能存10个字符,不足10个字符,按照实际长度存储。性能低但节省空间(以时间换空间)

3)日期时间类型

主要熟悉 date 和 datetime即可

例如:birthday ->date,update_time ->datetime

4)设计流程

根据页面原型/需求创建表(设计合理的数据类型、长度、约束)

注:通常需要加上这两个时间,create _time,记录的是当前这条数据插入的时间。update_time,记录当前这条数据最后更新的时间。

5.3 查询 & 修改 & 删除

很多情况下,该部分的操作可以直接通过图形化工具界面来实现。

查询

1)查询当前数据库所有表

代码语言:javascript
复制
show tables;

2)查询表结构

代码语言:javascript
复制
desc 表名;

3)查询建表语句

代码语言:javascript
复制
show create table 表名;

修改

1)添加字段

代码语言:javascript
复制
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];

2)修改字段类型

代码语言:javascript
复制
alter table 表名 modify 字段名 新数据类型(长度);

3)修改字段名和字段类型

代码语言:javascript
复制
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];

4)删除字段

代码语言:javascript
复制
alter table 表名 drop column 字段名;

5)修改表名

代码语言:javascript
复制
rename table 表名 to 新表名;

删除

1)删除表

代码语言:javascript
复制
drop table [if exists] 表名;

注:在删除表时,表中的全部数据也会被删除。

6、DML-添加 & 修改 & 删除数据

回顾:DML,即Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

6.1 添加数据(insert)

1)指定字段添加数据

代码语言:javascript
复制
insert into 表名(字段名1,字段名2) values (值1,值2);

2)全部字段添加数据

代码语言:javascript
复制
insert into 表名 values (值1,值2,...);

3)批量添加数据(指定字段)

代码语言:javascript
复制
insert into 表名(字段名1,字段名2) values (值1,值2),(值1,值2);

4)批量添加数据(全部字段)

代码语言:javascript
复制
insert into 表名 values(值1,值2,...),(值1,值2,...);

5)几点注意

  • 插入数据时,指定的字段顺序需要与值的顺序一一对应。
  • 字符串和日期型数据应该包含在引号中。
  • 插入的数据大小应在字段的规定范围内。
6.2 修改数据(update)

1)修改数据

代码语言:javascript
复制
update 表名 set 字段名1=值1,字段名2=值2,....[where 条件];

eg:将 tb_user表中 id为1的用户,姓名改为 lishi

代码语言:javascript
复制
update tb_user set name = 'lishi' where id = 1;

注:修改语句的条件可有可无,如果没有,则会修改整张表的所有数据。

6.3 删除数据(delete)

1)删除数据

代码语言:javascript
复制
delete from 表名 [where 条件];

eg1:将 tb_user表中 id为1的用户删除

代码语言:javascript
复制
delete from tb_user where id = 1;

eg2:将 tb_user表中的所有数据(需谨慎操作)

代码语言:javascript
复制
delete from tb_user;

注1:DELETE语句的条件可有可无,如果没有条件,则会删除整张表的所有数据。

注2:DELETE语句不能删除某一个字段的值(如果要操作,可以使用UPDATE,将该字段的值置为NULL)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农后端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数据库
    • 1、概述
      • 1.1 数据库
      • 1.2 数据库管理系统
      • 1.3 SQL
  • 二、MySQL
    • 1、安装配置
      • 1.1 初始化MySQL
      • 1.2 注册MySQL服务
      • 1.3 启动MySQL服务
      • 1.4 修改默认账户密码
      • 1.5 登录MySQL
    • 2、MySQL数据模型 & SQL简介
      • 2.1 概述
      • 2.2 特点
      • 2.3 MySQL数据模型
      • 2.4 SQL简介
      • 2.4 SQL分类
    • 3、DDL-数据库操作
      • 3.1 查询
      • 3.2 使用
      • 3.3 创建
      • 3.4 删除
    • 4、MySQL图形化工具
      • 5、DDL-表结构操作
        • 5.1 创建表
        • 5.2 数据类型
        • 5.3 查询 & 修改 & 删除
      • 6、DML-添加 & 修改 & 删除数据
        • 6.1 添加数据(insert)
        • 6.2 修改数据(update)
        • 6.3 删除数据(delete)
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档