news 2026/7/9 5:41:12

Myaql

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Myaql

DDL语法操作

基础cmd窗口命令学习 :

1,数据库登录 mysql -u用户名 -p密码
2,展示数据库 show databases;
3,使用数据库 use 数据库名;
4,查看数据库中的表 show tables;

5, create database 数据库名 创建数据库
6, create table 表名 创建数据表
7, alter database 修改数据库
8, alter TABLE 修改表
9, drop database 删除数据库
10,drop table 删除表格

创建数据库


if not exists表示如果不存在就创建,可以省略
CREATE DATABASE if not exists study use charset utf8mb4;

-- 创建表格,创建表的结构 ,指定表格的列名和列的类型
-- 常见的列的数据类型:
-- 整数 int bigint
-- 小数 decimal
-- 字符串 varchar char
-- 日期 date datetime
-- 文本 text

示例:
create TABLE [if not exists] 表名(
列名 数据类型(长度) 约束,
列名 数据类型(长度) 约束,
列名 数据类型(长度) 约束
) 存储引擎 字符集

一张表其实就是一个物体(对象) ,比如使用表格来存放学生的信息
那么这个学生表中,可以有哪些列名? 学号、姓名、性别、年龄、专业、班级、生日...
描述一个商品,可以有哪些列? 商品名称、价格、生产日期、保质期、商品描述


1字节 8位 :位 (bit):计算机最小存储单位,只有 0/1 两种状态
字节 (Byte):基础存储单位,规定 1 Byte = 8 bit

4字节 32位

2^31-1:C 语言 int 类型,int 占 4 字节(合计 32 个二进制位),它能存储的最大正数是 2的31次方减1。

另:32 位有符号 int 完整取值规则:
32 位里最高 1 位是符号位:0 代表正数、1 代表负数;
剩余 31 位存数值;
正数最大值:2³¹ - 1(十进制 2147483647);
负数最小值:-2³¹(十进制 -2147483648)。

-- varchar可变长度的字符串类型,根据实际的值占用空间
-- char固定长度的字符串类型

-- 练习:创建一个用户表 user

显示表信息


desc student; ——DESC 是 DESCRIBE 的简写,是 MySQL 专用查询表结构的命令;
desc student = 查看 student 表的完整字段结构。

-- 使用alter修改表结构
alter table 表名 add column 字段(列)名 数据类型; -- 添加字段
alter table 表名 drop column 字段名 ; -- 删除字段
alter table 表名 modify 字段名 新数据类型 ;-- 修改字段类型

-- 删除表
drop table 表名;


-- DML语法
-- 实现数据库表数据的增insert、删delete 、改 update

-- 增加语法
/*
语法1: 列名和值一一对应,没有的列值就为null
insert into 表名(列1,列2,列3...)values(值1,值2,值3...)

语法2:表中有几个字段就写几个值
insert into 表名 values (值1,值2,值3,值4);

批量插入多行数据
insert into 表名 values (值1,值2,值3,值4),
(值1,值2,值3,值4),
(值1,值2,值3,值4);

*/

insert into student(sid,sname,sage,sgender,sphone,sbirthday)
values(10001,'张三',20,'男','13355557777','2006-10-10');
insert into student(sid,sname,sage) values(10002,'李四',20);
insert into student values(10003,'王五',20,'男','13355557788','2006-10-10');
insert into student values(10004,'王六',21,'男'); -- 报错
-- 修改数据update
-- 修改指定数据行的列的值
/*
update 表名 set 列1 = 值, 列2 = 值,列3 = 值 where 字段 = 值;
*/
update student set sgender = '男',sphone = '14455556666' where sname = '李四';

-- 删除数据 delete
-- 删除符合条件的数据行数据,不加条件表示删除所有表数据
-- delete from 表名 where 字段 = 值;

delete from student where sid = 10003;


-- 练习:往user表中添加数据,然后执行修改和删除

# 注释
-- 注释
/*

多行注释
*/

-- 表格的约束
/*
约束一般在创建表格的时候,添加字段的后面,用来给这个字段设置
对应的约束条件
如果有些表格已经创建好了,也可以通过alter命令完成约束的添加

常见的约束
主键 primary key 表示字段非空且唯一,一张表只有一个主键
一般用在表中的唯一的id后面,比如学号,用户id
非空 not null 表示字段值不能为空
唯一 unique 表示字段的值不能重复
默认值 default 表示不指定字段值,就使用默认值
选择 check 从指定的值中选择某个值使用

外键约束 foreign key 用来约束两张表之间的关系,把两张表
作为主表和副表,主表数据必须存在,才能添加副表数据
*/

-- 创建表格的时候,使用约束
drop table student;

create table student (
sid int primary key,
sname varchar(50) not null,
sage int not null,
sgender char(2) check (sgender in ('男','女')),
sphone char(11) unique not null,
sbirthday date default '2000-10-10'
-- primary key(sid)
-- 主键的另一种用法
) ;

-- 测试约束的使用
insert into student(sid,sname,sage,sgender,sphone,sbirthday)
values(10001,'张三',20,'男','13355557777','2006-10-10');

insert into student(sid,sname,sage,sgender,sphone,sbirthday)
values(10002,'张三',20,'男','13355557788','2006-10-10');

insert into student(sid,sname,sage,sgender,sphone)
values(10003,'李四',20,'男','13355557799');


-- 测试外键约束

-- 创建一个订单表,订单表中需要一个用户id,
-- 订单表中的用户id就是外键指向user表中的 uid
drop table `order`;
create table `order`(
oid int ,
uid int ,
pname varchar(100) ,
foreign key (uid) references `user`(uid) on delete cascade
);


-- 测试外键的添加用法 ,必须要保证主表有数据,才能往副表中加数据

-- 先往order表中添加数据,无法添加
insert into `user` values(101,'jack','123123','1999-1-1','扬州');
insert into `order` values(201,101,'手机');


-- 删除数据的时候,需要先删副表数据,再删主表数据
-- 除非加上级联删除on delete cascade,
-- 可以删除主表的时候,同时会把副表数据删除
delete from `order` where uid = 101;
delete from `user` where uid = 101;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 5:40:50

革命性跨平台融合:APK安装器让Windows原生运行安卓应用

革命性跨平台融合:APK安装器让Windows原生运行安卓应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾幻想过在Windows电脑上无缝运行安卓应用&am…

作者头像 李华
网站建设 2026/7/9 5:38:06

Softmax 函数数值稳定性:从指数溢出到 PyTorch 2.12 的 3 种实现对比

Softmax 函数数值稳定性:从理论到 PyTorch 2.12 的工程实践 在深度学习模型的输出层设计中,Softmax 函数是将原始分数转换为概率分布的关键组件。然而,当面对极端数值输入时,这个看似简单的函数却可能引发严重的数值稳定性问题。本…

作者头像 李华
网站建设 2026/7/9 5:37:56

普通人用Claude Code能做什么

普通人用Claude Code有什么用?一文讲透这个AI编程神器的价值对于非专业程序员或编程初学者来说,Claude Code是一个能够显著降低编程门槛、提升工作效率的AI助手。它不仅仅是代码生成工具,更是一个能理解你意图、帮你解决实际问题的“AI工程师…

作者头像 李华
网站建设 2026/7/9 5:36:56

2026大理黄金回收白银回收铂金回收靠谱临街实体公安备案支持到店核验门店联系方式推荐

2026大理黄金白银铂金回收实测榜单|公安备案临街实体门店推荐 大理黄金回收哪家靠谱|工商公安双备案中检认证实体门店 大理古城苍山脚下,黄金白银铂金回收店铺星罗棋布,行业套路却层出不穷。不少市民变现时遭遇虚高报价、克扣损耗…

作者头像 李华
网站建设 2026/7/9 5:35:58

从 MySQL 到 KingbaseES:Database、Schema、User 一次讲透

从 MySQL 到 KingbaseES:核心概念迁移指南 前言1. 概念对比:MySQL vs KingbaseES2. Database:独立的王国2.1 核心特性2.2 操作示例 3. Schema:数据库内的命名空间3.1 核心特性3.2 操作示例 4. User/Role:统一的权限主体…

作者头像 李华