(P111)mysql数据库(三):建表,表的crud操作

2024-06-08 05:48

本文主要是介绍(P111)mysql数据库(三):建表,表的crud操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1.建表(DDL语言):create table
    • 2.显示表结构:describe table;
    • 3.修改表结构:alter table
    • 4.表的crud操作(DML语言):update ,delete

1.建表(DDL语言):create table

  • 建表,建表要制定数据库是哪一个数据库的
create table study.t_emp(empno int, ename varchar(20), esex char(2));study.t_emp,数据库study,表名t_emp
表的字段,字段的类型
empno	int,
ename varchar<20>,
esex char<2>
varchar<20>表示可变字符串,表示你插入的字符是多少个,那么你占用的空间就是多少个字符
char<2>表示定长的2个字符,定长表示在数据库中存储的空间是2个字符,但是你插入的字符可以是1个,
只是他占用的空间是2个而已
  • 创建表,但是不需要指定数据库名称的方法
use study;
create table t_emp(empno int, ename varchar(20), esex char(2));指定数据库查表:
show tables from study;不指定数据库查表:
use study;
show tables;

2.显示表结构:describe table;

use study;
describe t_emp;
desc t_emp;

3.修改表结构:alter table

use study;varchar<20>修改成varchar<30>
alter table t_emp modify ename varchar(30);删除esex字段
alter table t_emp drop esex;添加esex字段
alter table t_emp add esex char(2);

4.表的crud操作(DML语言):update ,delete

  • 指增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)

插入一条记录

mysql> desc t_emp;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| empno | int         | YES  |     | NULL    |       |
| ename | varchar(30) | YES  |     | NULL    |       |
| esex  | char(2)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)insert into t_emp(empno,ename,esex) values(1000,'Tom','m');
insert into t_emp values(1000,'Maggle','f');
insert into t_emp(empno,ename) values(1000,'Tom');
insert into t_emp(empno,ename,esex) values(1000,null,'m');mysql> select * from t_emp;
+-------+--------+------+
| empno | ename  | esex |
+-------+--------+------+
|  1000 | Tom    | m    |
|  1000 | Maggle | f    |
|  1000 | Tom    | NULL |
|  1000 | NULL   | m    |
+-------+--------+------+
4 rows in set (0.00 sec)

插入中文字段失败的原因是:编码方式不是gbk

查看所有的字符集
mysql> show variables like 'character_set%';
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | utf8mb3                        |
| character_set_filesystem | binary                         |-----这里的二进制指的是/var/lib/mysql/study/t_emp.ibd数据是二进制的
| character_set_results    | utf8mb4                        |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8mb3                        |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+

为了能够插入中文,可以将编码方式改为gbk;

mysql> set names gbk;
mysql> insert into t_emp values(1,'王继','f');
mysql> select * from t_emp;
+-------+--------+------+
| empno | ename  | esex |
+-------+--------+------+
|  1000 | Tom    | m    |
|  1000 | Maggle | f    |
|  1000 | Tom    | NULL |
|  1000 | NULL   | m    |
|     1 | 王继   | f    |
+-------+--------+------+
5 rows in set (0.00 sec)
  • update命令
将Tom记录的empno字段改为1001
mysql> update t_emp set empno=1001 where ename='Tom';
mysql> select * from t_emp;
+-------+-----------+------+
| empno | ename     | esex |
+-------+-----------+------+
|  1001 | Tom       | m    |将esex为m的改为f
mysql> update t_emp set esex='f' where esex='m';
mysql> select * from t_emp;
+-------+--------+------+
| empno | ename  | esex |
+-------+--------+------+
|  1001 | Tom    | f    |
|  1000 | Maggle | f    |
|  1001 | Tom    | NULL |
|  1000 | NULL   | f    |
|     1 | 王继   | f    |
+-------+--------+------+
5 rows in set (0.00 sec)
  • delete
删除表中esex为null记录删除掉
mysql> delete from t_emp where esex is null;
Query OK, 1 row affected (0.06 sec)mysql> select * from t_emp;
+-------+--------+------+
| empno | ename  | esex |
+-------+--------+------+
|  1001 | Tom    | f    |
|  1000 | Maggle | f    |
|  1000 | NULL   | f    |
|     1 | 王继   | f    |
+-------+--------+------+
4 rows in set (0.00 sec)没有加条件的话,将整张表的记录全部删除
mysql> delete from t_emp;
Query OK, 4 rows affected (0.05 sec)mysql> select * from t_emp;
Empty set (0.00 sec)
  • sql语句如下:test.sql
DDL语言
create table t_emp(empno int, ename varchar(20), esex char(2));
alter table t_emp modify ename varchar(30);
alter table t_emp drop esex;
alter table t_emp add esex char(2);DML语言:给表增加一些记录
insert into t_emp(empno, ename, esex) values(1000,'tom','m');
insert into t_emp(empno, ename, esex) values(1000,'maggie','f');
insert into t_emp(empno, ename) values(1000,'tom');
insert into t_emp(empno, ename, esex) values(1000,null,'m');
insert into t_emp(empno, ename, esex) values(1000,'张三','男');show variables like 'character_set%';
查看所有的字符集
set names gbk;update t_emp set empno=1001 where ename='maggie';
delete from t_emp where esex is null;
删除表的所有记录
delete from t_emp;删除t_emp整张表
注意:整数不用引号,字符串需要
drop table t_emp;

这篇关于(P111)mysql数据库(三):建表,表的crud操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041356

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp