(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

相关文章

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

MySQL进阶之路索引失效的11种情况详析

《MySQL进阶之路索引失效的11种情况详析》:本文主要介绍MySQL查询优化中的11种常见情况,包括索引的使用和优化策略,通过这些策略,开发者可以显著提升查询性能,需要的朋友可以参考下... 目录前言图示1. 使用不等式操作符(!=, <, >)2. 使用 OR 连接多个条件3. 对索引字段进行计算操作4

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

MySQL zip安装包配置教程

《MySQLzip安装包配置教程》这篇文章详细介绍了如何使用zip安装包在Windows11上安装MySQL8.0,包括下载、解压、配置环境变量、初始化数据库、安装服务以及更改密码等步骤,感兴趣的朋... 目录mysql zip安装包配置教程1、下载zip安装包:2、安装2.1 解压zip包到安装目录2.2

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项

MySQL8.0设置redo缓存大小的实现

《MySQL8.0设置redo缓存大小的实现》本文主要在MySQL8.0.30及之后版本中使用innodb_redo_log_capacity参数在线更改redo缓存文件大小,下面就来介绍一下,具有一... mysql 8.0.30及之后版本可以使用innodb_redo_log_capacity参数来更改

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录