mysql_(DDL,DML,DQL,子查询,多表设计)

这篇博客介绍了MySQL中数据库的操作语言,包括DDL(数据定义语言)如创建、删除、修改数据库和表,DML(数据操纵语言)涉及插入、删除、修改数据,DQL(数据查询语言)讲解了基础查询和结果处理,子查询的使用,以及多表设计的概念,如数据库设计范式和不同类型的表间关联查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 数据库的操作语言

增 删 改 查

mysql(数据库软件名字)
sqlyog(客户端功能)
sql语言(结构化查询语言)

● 结构化查询语言(Structured Query Language)简称SQL,是一种特殊 目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以 及查询、更新和管理关系数据库系统.

SQL优点: 
① 不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL 
② 简单易学 
③ 实际上强有力的语言,灵活使用可以进行非常复杂和高级的数据库操作
  (解释型脚本语言不需要编译)

按CTRL—S 保存

2. DDL

SQL 根据不同的功能,对sql语言进行了细分

● 数据(表结构)定义语言DDL(Data Definition Language)
是用于创建和修改数据库表结构的语言。
● 常用的语句:create(创建) ,alter(修改),drop(删除),rename(重命名)

创建数据库并设置编码格式 
 CREATE DATABASE [if not exists]    数据库名 [ CHARSET utf8] 
删除数据库 DROP DATABASE    数据库名 / [IF EXISTS数据库名]; 
修改字符集 ALTER DATABASE    数据库名 CHARSET gbk;

1. 创建 删除 修改数据库

创建
#select * from student;

-- SELECT * FROM student;

/*
SELECT * FROM student;
*/
-- 脚本语言  不需要编译, 直接通过某种解释器解释执行
SELECT * FROM USER;
-- sql脚本

-- 创建数据库
CREATE DATABASE school_db;

CREATE DATABASE IF NOT EXISTS school_db;

CREATE DATABASE IF NOT EXISTS schoole_db CHARSET utf8;

在这里插入图片描述
在这里插入图片描述

删除
-- 删除数据库
DROP DATABASE schoole_db;

(选中之后,执行本条语句)删除了schoole_db 数据库
在这里插入图片描述
在这里插入图片描述

修改

数据库一旦被创建 不能修改名称
可以修改字符集
在这里插入图片描述

-- mysql不能修改数据库名称

-- 修改字符集
ALTER DATABASE school_db CHARSET gbk;

在这里插入图片描述
在这里插入图片描述

ALTER DATABASE school_db CHARSET utf8;

在这里插入图片描述

在这里插入图片描述

2. 表

数据库存储数据的特点
对象 不持久
表 持久

一行一条记录

● 将数据放到表中,表再放到库中
● 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有 唯一性。
● 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java中“类”的 设计。
● 表由列组成,我们也称列为字段。所有表都是由一个或多个列组成的,每一列 类似java中的”属性”
● 表中的数据是按行存储的,每一行类似于Java中的“对象”。

数据库表的基本概念
数据库表- 数据库基本存储单位

记录--  一行信息

字段--存储哪个信息

在这里插入图片描述

设计表

设计数据库表

  • 一个表中存储一类信息

  • 学生信息表(学生基本信息)

  • 表中字段

  • 数据类型,长度

  • 约束(添加数据限制)

数据类型

  • char(n) 长度为n个字符 定长 4 即使存储了1个字符也占4个长度

  • varchar(n) 最大长度为n 可变 10 实际存储了4个字符,长度就是4

  • date 年月日 日期

  • datetime 年月日 时分秒 时间

  • int

  • float(5,2) 3位整数,2位小数 总长是5位

  • double(5,2)

  • blob 大文本 存储图片,新闻 (目前了解)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
base64图片转码

创建表

创建表语法:
在这里插入图片描述

-- 先创建一个基本的表 不涉及约束
-- 学生基本信息表 学号,姓名,性别,生日,身高,电话,登记时间
-- 用户表,角色... sys_user sys_role 通过不同前缀区分表是那个模块的
CREATE TABLE t_student(
               num INT,
               NAME VARCHAR(4),
               sex CHAR(1),
               birthday DATE,
               height FLOAT(4,1),
               phone CHAR(11),
               register_time DATETIME
)
DROP TABLE t_student
选中 查询 刷新

在这里插入图片描述

在这里插入图片描述

表约束

在这里插入图片描述

表中的约束

  • 主键约束 PRIMARY KEY 不能为空,不能重复, 一个表中只能有一个主键约束
    不能为空约束 NOT NULL 一个表中可以有多个

  • 唯一约束 UNIQUE 一个表中可以有多个

  • 检查约束 设置条件 例如age>=18

  • 外键约束 多表关联时使用

主键自动增长
AUTO_INCREMENT
默认值
DEFAULT default_value
字段注释:
comment ‘注释’
在这里插入图片描述
在这里插入图片描述

-- 学生基本信息表 学号,姓名,性别,生日,身高,电话,登记时间
/*
  PRIMARY KEY 主键约束 不能为空,不能重复,一个表中只有一个唯一约束
  AUTO_INCREMENT mysql主键自增(选填)自增列是主键类型是整数
  2021010101
  NOT NULL 不能为空
  UNIQUE 唯一约束
  CHECK(heigtht>100.0) 检查约束
  
  DEFAULT'男' 默认值
*/
CREATE TABLE t_student(
            num INT PRIMARY KEY AUTO_INCREMENT COMMENT'学号 主键',
            NAME VARC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值