MySQL数据库专栏(二)SQL语句基础操作
目录
数据库操作
创建数据库
查看数据库
选择数据库
删除数据库
数据表操作
数据表数据类型
数据表列约束
数据表索引
创建表
查看表
查看表结构
删除表
数据表的增删改操作
数据插入
数据修改
数据删除
1、数据库操作
1.1、创建数据库
格式:create database if not exists [数据库名称] character set [字符集] COLLATE [排序规则];
例如:创建数据库db_demo使用utf8mb4编码,utf8mb4_general_ci的排序规则
create database if not exists db_demo character set utf8mb4 COLLATE utf8mb4_general_ci;
if not exists:判断数据库是否存在,如果不存在则创建
db_demo:数据库名称
character set utf8mb4:设置字符集为utf8mb4
COLLATE utf8mb4_general_ci:设置排序规则为utf8mb4_general_ci
修改数据库编码
ALTER DATABASE db_demo CHARACTER SET=utf8;
1.2、查看数据库
show databases;
+--------------------+
| Database |
+--------------------+
| db_demo |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
查看数据库定义
show create database db_demo;
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| db_demo | CREATE DATABASE `db_demo` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
1.3、选择数据库
use db_demo;
1.4、删除数据库
drop database if exists db_demo;
1.5、MySQL数据库命名规范
可以采用26个英文字母 (不区分大小写) 和0-9的自然数 (一般不需要) 加上下划线 ‘_’ 组成,命名简介明确 (School),多个单词用下划线 ‘_’ 分隔,一个项目一个数据库,多个项目慎用同一个数据库
2、数据表操作
2.1、数据表数据类型
2.1.1、整数类型
整数类型是数据库中最基本的数据类型。标准SQL中支持INTEGER和SMALLINT这两种数据类型。MySQL数据库除了支持这两种类型以外,还扩展支持了TINYINT、MEDIUMINT和BIGINT。下表从不同整数类型的字节数、取值范围等方面进行对比。
使用场景:
TINYINT:适用于存储小范围整数值,如布尔值(0 或 1)、年龄等。
SMALLINT:适用于存储中小范围整数值,如年份、商品数量等。
MEDIUMINT:适用于存储中等范围整数值,如大型系统的用户 ID、订单编号等。
INT:适用于存储大范围整数值,如用户 ID、订单编号、库存量等。
BIGINT:适用于存储非常大范围整数值,如银行账户余额、大型电商系统的订单编号等。
实现原理: 整型数据类型在 MySQL 内部是通过固定长度的字节数组实现的,依据存储数据的范围不同,分配的字节数也不同。无符号整型数据类型通过去掉符号位,扩大了可表示的数值范围。
2.1.2、小数类型
数据表中用浮点数类型和定点数类型来表示小数。浮点数类型包括单精度浮点数(FLOAT型)和双精度浮点数(DOUBLE型)。定点数类型就是DECIMAL型。下面从这三种类型的字节数、取值范围等方面进行对比,如下表所示。
三种类型的区别:
float数值类型用于表示单精度浮点数值,而double数值类型用于表示双精度浮点数值,float和double都是浮点型,而decimal是定点型。
2.1.3、日期类型
日期与时间类型是为了方便在数据库中存储日期和时间而设计的,数据库有多种表示日期和时间的数据类型。其中,YEAR类型表示年,DATE类型表示日期,TIME类型表示时间,DATETIME和TIMESTAMP表示日期和时间。下面从这5种日期与时间类型的字节数、取值范围和零值等方面进行对比,如下表所示。
2.1.4、字符串类型
CHAR类型和VARCHAR类型,CHAR类型和VARCHAR类型都在创建表时指定了最大长度,其基本形式如下:字符串类型(M),其中“字符串类型”参数指定了数据类型为CHAR类型还是VARCHAR类型;M参数指定了该字符串的最大长度为M。例如,CHAR(4)就是数据类型为CHAR类型,其最大长度为4。
CHAR类型的长度是固定的,在创建表时就指定了。其长度可以是0~255的任意值。例如,CHAR(100)就是指定CHAR类型的长度为100。CHAR 存储值时,它们会用空格右填充到指定的长度。
VARCHAR类型的长度是可变的,在创建表时指定了最大长度。定义时,其最大值可以取0~65535之间的任意值。指定VARCHAR类型的最大值以后,其长度可以在0到最大长度之间。例如,VARCHAR(100)的最大长度是100,但是不是每条记录都要占用100个字节,而是在这个最大值范围内使用多少就分配多少。VARCHAR类型实际占用的空间为字符串的实际长度加1或2,这样即可有效节约系统的空间。
2.1.5、TEXT类型
TEXT类型是一种特殊的字符串类型,包括TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT,其长度和存储空间的对比下表所示:
各种TEXT类型的区别在于允许的长度和存储空间不同。因此,在这几种TEXT类型中,根据需求选取既能满足需要又节省空间的类型即可。
2.1.6、ENUM类型
ENUM类型又称为枚举类型。在创建表时,ENUM类型的取值范围以列表的形式指定,其基本形式如下:
属性名 ENUM('值1', '值2', …, '值n'),其中,“属性名”参数指字段的名称,“值n”参数表示列表中的第n个值。ENUM类型的值只能取列表中的一个元素。其取值列表中最多能有65535个值。如果数据值列表在255个以内,那么一个字节就够,如果超过255但是小于65535,那么系统采用两个字节保存。列表中的每个值独有一个顺序排列的编号,MySQL中存入的是这个编号,而不是列表中的值。默认编号从1开始!Enum(‘男’,’女’,‘选择保密’) # ‘男’=>1 ‘女’=>2 ‘选择保密’=> 3
如果ENUM类型加上了NOT NULL属性,其默认值为取值列表的第一个元素。如果不加NOT NULL属性,ENUM类型将允许插入NULL,而且NULL为默认值。
2.1.7、SET类型
在创建表时,SET类型的取值范围就以列表的形式指定了,其基本形式如下:属性名 SET('值1', '值2', …, '值n'),其中,属性名参数指字段的名称,“值n”参数表示列表中的第n个值,这些值末尾的空格将会被系统直接删除。其基本形式与ENUM类型一样。SET类型的值可以取列表中的一个元素或者多个元素的组合。取多个元素时,不同元素之间用逗号隔开。SET类型的值最多只能是由64个元素构成的组合。
2.1.8、二进制类型
二进制数据和文本数据在mysql 中的最大区别在于:二进制类型存储原始的二进制数据(如图片,视频,exe文件等)。文本类型(TEXT)用来存储字符字符串(如由英文字符、中文字符或其它语言字符组成的字符串)。二进制类型没有字符集,并且排序和比较基于列值字节的数值。而TEXT类型有字符集,并且根据字符集的校对规则对值进行排序和比较。二进制类型是存储二进制数据的数据类型,包括BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。二进制类型之间的对比如下表所示。
2.2、数据表列约束
2.2.1、列约束概念
数据表的列约束(列的限制)是在数据库表中定义列时,为了保证数据的完整性和一致性而设置的规则。列约束可以确保列中的数据有效、有意义,并满足特定的业务规则
2.2.2、主键约束
设置表字段的主键约束(PRIMARY KEY,PK)
主键是表的一个特殊字段,能唯一标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证用来表明人的身份,每个人都具有唯一的身份证号。设置表的主键是指在创建表时设置表的某个字段为该表的主键。
主键的主要目的是帮助数据库管理系统以最快的速度查找到表的某一条信息。主键必须满足的条件就是主键必须是唯一的,表中任意两条记录的主键字段的值不能相同,并且是非空值。主键可以是单一的字段,也可以是多个字段的组合。
以t_user表为实DROP TABLE IF EXISTS `t_department`;
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE IF NOT EXISTS `t_user` (
`id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_name` varchar(128) NOT NULL DEFAULT '' COMMENT '登录名',
`password` varchar(512) NOT NULL DEFAULT '' COMMENT '密码',
`nick_name` varchar(128) NOT NULL DEFAULT '' COMMENT '昵称',
`user_no` varchar(128) NOT NULL DEFAULT '' COMMENT '身份证号',
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0(正常);1(禁用)',
`phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号',
PRIMARY KEY (`id`),
UNIQUE KEY `user_name` (`user_name`),
UNIQUE KEY `phone` (`phone`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
使用DESC命令查看表结构:
Desc t_user;
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int unsigned | NO | PRI | NULL | auto_increment |
| user_name | varchar(128) | NO | UNI | | |
| password | varchar(512) | NO | | | |
| nick_name | varchar(128) | NO | | | |
| user_no | varchar(128) | NO | | | |
| status | tinyint | NO | | 0 | |
| phone | char(11) | NO | UNI | | |
+-----------+--------------+------+-----+---------+----------------+
可以看到id列的Key字段值为PRI,表示该列为主键。
2.2.3、外键约束
设置表字段的外键约束(FOREIGN KEY,FK)
外键是表的一个特殊字段,外键约束是为了保证多个表(通常为两个表)之间的参照完整性,即构建两个表的字段之间的参照关系。
设置外键约束的两个表之间具有父子关系,即子表中某个字段的取值范围由父表决定。例如,表示一个部门和员工关系,即每个部门有多个员工。首先应该有两个表:部门表和员工表,然后员工表有一个表示部门编号的字段no,其依赖于部门表的主键,这样字段no就是员工表的外键,通过该字段员工表和部门表建立了关系。
实例
DROP TABLE IF EXISTS `t_department`;
CREATE TABLE IF NOT EXISTS `t_department` (
`department_no` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_name` varchar(128) NOT NULL DEFAULT '' COMMENT '部门名称',
PRIMARY KEY (`department_no`),
UNIQUE KEY `department_name` (`department_name`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
DROP TABLE IF EXISTS `t_employee`;
CREATE TABLE IF NOT EXISTS `t_employee` (
`id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_no` INT unsigned NOT NULL DEFAULT '0' COMMENT '部门表id',
`name` varchar(128) NOT NULL DEFAULT '' COMMENT '登录名',
`position` varchar(128) NOT NULL DEFAULT '' COMMENT '岗位',
`phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号',
`salary` INT unsigned NOT NULL DEFAULT '0' COMMENT '薪资',
PRIMARY KEY (`id`),
FOREIGN KEY (`department_no`) REFERENCES `t_department`(`department_no`),
INDEX `name` (`name`),
UNIQUE KEY `phone` (`phone`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
2.2.4、非空约束
设置表字段的非空约束(NOT NULL, NK)
当数据库表中的某个字段上的内容不希望设置为NULL时,可以使用NK约束进行设置。NK约束在创建数据库表时为某些字段上加上“NOT NULL”约束条件,保证所有记录中的该字段都有值。如果在用户插入的记录中该字段为空值,那么数据库管理系统会报错。
设置表中某字段的NK约束非常简单,查看帮助文档可以发现,在MySQL数据库管理系统中是通过SQL语句NOT NULL来实现的。
实例
DROP TABLE IF EXISTS `t_department`;
CREATE TABLE IF NOT EXISTS `t_department` (
`department_no` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_name` varchar(128) NOT NULL DEFAULT '' COMMENT '部门名称',
PRIMARY KEY (`department_no`),
UNIQUE KEY `department_name` (`department_name`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
DROP TABLE IF EXISTS `t_employee`;
CREATE TABLE IF NOT EXISTS `t_employee` (
`id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_no` INT unsigned NOT NULL DEFAULT '0' COMMENT '部门表id',
`name` varchar(128) NOT NULL DEFAULT '' COMMENT '登录名',
`position` varchar(128) NOT NULL DEFAULT '' COMMENT '岗位',
`phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号',
`salary` INT unsigned NOT NULL DEFAULT '0' COMMENT '薪资',
PRIMARY KEY (`id`),
FOREIGN KEY (`department_no`) REFERENCES `t_department`(`department_no`),
INDEX `name` (`name`),
UNIQUE KEY `phone` (`phone`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
2.2.5、唯一约束
设置表字段唯一约束(UNIQUE,UK)
当数据库表中某个字段上的内容不允许重复时,可以使用UK约束进行设置。UK约束在创建数据库时为某些字段加上“UNIQUE”约束条件,保证所有记录中该字段上的值不重复。如果在用户插入的记录中该字段上的值与其他记录中该字段上的值重复,那么数据库管理系统会报错。
设置表中某字段的UK约束非常简单,可以在MySQL数据库管理系统中通过SQL语句UNIQUE来实现
实例
DROP TABLE IF EXISTS `t_department`;
CREATE TABLE IF NOT EXISTS `t_department` (
`department_no` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_name` varchar(128) NOT NULL DEFAULT '' COMMENT '部门名称',
PRIMARY KEY (`department_no`),
UNIQUE KEY `department_name` (`department_name`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
DROP TABLE IF EXISTS `t_employee`;
CREATE TABLE IF NOT EXISTS `t_employee` (
`id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_no` INT unsigned NOT NULL DEFAULT '0' COMMENT '部门表id',
`name` varchar(128) NOT NULL DEFAULT '' COMMENT '登录名',
`position` varchar(128) NOT NULL DEFAULT '' COMMENT '岗位',
`phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号',
`salary` INT unsigned NOT NULL DEFAULT '0' COMMENT '薪资',
PRIMARY KEY (`id`),
FOREIGN KEY (`department_no`) REFERENCES `t_department`(`department_no`),
INDEX `name` (`name`),
UNIQUE KEY `phone` (`phone`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
2.2.6、自动增长
设置表字段值自动增加(AUTO_INCREMENT)
AUTO_INCREMENT是MySQL唯一扩展的完整性约束,当向数据库表中插入新记录时,字段上的值会自动生成唯一的ID。在具体设置AUTO_INCREMENT约束时,一个数据库表中只能有一个字段使用该约束,该字段的数据类型必须是整数类型。由于设置AUTO_INCREMENT约束后的字段会生成唯一的ID,因此该字段也经常会同时设置成PK主键。
设置表中某字段值的自动增加约束非常简单,可以在MySQL数据库管理系统中通过SQL语句AUTO_INCREMENT来实现
设置表字段的默认值(DEFAULT)
当为数据库表中插入一条新记录时,如果没有为某个字段赋值,数据库系统就会自动为这个字段插入默认值。为了达到这种效果,可通过SQL语句关键字DEFAULT来设置。
设置数据库表中某字段的默认值非常简单,可以在MySQL数据库管理系统中通过SQL语句DEFAULT来实现
实例
DROP TABLE IF EXISTS `t_department`;
CREATE TABLE IF NOT EXISTS `t_department` (
`department_no` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_name` varchar(128) NOT NULL DEFAULT '' COMMENT '部门名称',
PRIMARY KEY (`department_no`),
UNIQUE KEY `department_name` (`department_name`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
DROP TABLE IF EXISTS `t_employee`;
CREATE TABLE IF NOT EXISTS `t_employee` (
`id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`department_no` INT unsigned NOT NULL DEFAULT '0' COMMENT '部门表id',
`name` varchar(128) NOT NULL DEFAULT '' COMMENT '登录名',
`position` varchar(128) NOT NULL DEFAULT '' COMMENT '岗位',
`phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号',
`salary` INT unsigned NOT NULL DEFAULT '0' COMMENT '薪资',
PRIMARY KEY (`id`),
FOREIGN KEY (`department_no`) REFERENCES `t_department`(`department_no`),
INDEX `name` (`name`),
UNIQUE KEY `phone` (`phone`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
2.3、数据表索引
2.3.1、索引概念
索引可以看作是一种特殊的表,其中包含了对数据表中特定列的值及其在数据表中的位置信息。通过使用索引,MySQL可以在不需要扫描整个表的情况下快速找到与查询条件匹配的记录。
2.3.2、索引的类型
MySQL支持多种类型的索引,以满足不同的查询需求:
B-Tree索引:
最常见的索引类型,适用于大部分场景。
支持全值匹配、范围查询和前缀匹配。
哈希索引:
基于哈希表实现,支持全值匹配,但不支持范围查询和前缀匹配。
主要应用于MEMORY存储引擎。
空间索引:
用于地理空间数据查询的特殊索引,基于R树实现。
主要应用于MyISAM和InnoDB存储引擎。
全文索引:
用于文本数据模糊查询的特殊索引,基于倒排索引实现。
主要应用于MyISAM和InnoDB存储引擎。
普通索引(BTREE索引):
最常见的索引类型,可用于匹配列的值、范围或前缀搜索。
可以有多个列,但不保证列值的唯一性。
唯一索引:
确保索引列的值唯一,不能有重复。
在创建唯一索引时,MySQL会自动检查表中是否存在重复值。
主键索引:
主键列的唯一索引,每个表只能有一个主键索引。
主键索引的值必须唯一且非空。
外键索引:
指向另一表主键的索引,用于在表之间建立关系并强制完整性约束。
复合索引:
基于多个列的索引,可以加快基于多个列的查询速度。
复合索引中列的顺序很重要,应根据查询条件的使用频率和列的选择性来确定。
2.3.3、索引的作用
提高查询速度:通过索引,MySQL可以快速定位到与查询条件匹配的记录,避免全表扫描。
确保数据唯一性和引用完整性:通过主键索引和唯一索引,可以确保数据的唯一性和引用完整性。
优化排序和范围查询:对于排序和范围查询操作,使用B-Tree索引可以显著提高查询效率。
加速全文搜索:对于文本数据的模糊查询,使用全文索引可以提高查询速度
2.3.4、索引的创建和管理
在创建表时创建索引
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) UNIQUE,
email VARCHAR(255) UNIQUE,
age INT,
INDEX idx_age (age)
);
在已有表上创建索引
CREATE INDEX idx_age ON users (age);
CREATE UNIQUE INDEX idx_email ON users (email);
使用ALTER TABLE添加或删除索引
ALTER TABLE users ADD INDEX (age);
ALTER TABLE users DROP INDEX idx_age;
2.3.5、索引的优缺点和使用建议
优点:
提高查询速度。
确保数据唯一性和引用完整性。
缺点:
增加存储空间和维护成本。
影响写操作性能(插入、更新、删除)。
使用建议:
为频繁查询的列创建索引。
选择合适的索引类型,根据查询需求和数据特点。
避免过度索引,过多的索引会降低写操作性能并占用额外存储空间。
定期评估索引效果,根据查询日志和性能监控工具调整索引策略
2.4、创建表
基本语法:CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
实例:
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE IF NOT EXISTS `t_user` (
`id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_name` varchar(128) NOT NULL DEFAULT '' COMMENT '登录名',
`password` varchar(512) NOT NULL DEFAULT '' COMMENT '密码',
`nick_name` varchar(128) NOT NULL DEFAULT '' COMMENT '昵称',
`user_no` varchar(128) NOT NULL DEFAULT '' COMMENT '身份证号',
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0(正常);1(禁用)',
`phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号',
PRIMARY KEY (`id`),
UNIQUE KEY `user_name` (`user_name`),
UNIQUE KEY `phone` (`phone`)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;
2.5、查看表
show tables;
+-------------------+
| Tables_in_db_demo |
+-------------------+
| t_department |
| t_employee |
| t_user |
+-------------------+
2.6、查看表结构
查看表的基本结构
desc t_user;
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int unsigned | NO | PRI | NULL | auto_increment |
| user_name | varchar(128) | NO | UNI | | |
| password | varchar(512) | NO | | | |
| nick_name | varchar(128) | NO | | | |
| user_no | varchar(128) | NO | | | |
| status | tinyint | NO | | 0 | |
| phone | char(11) | NO | UNI | | |
+-----------+--------------+------+-----+---------+----------------+
查看表的所有结构
show full columns from t_user;
+-----------+--------------+-------------+------+-----+---------+----------------+---------------------------------+-----------------------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-----------+--------------+-------------+------+-----+---------+----------------+---------------------------------+-----------------------+
| id | int unsigned | NULL | NO | PRI | NULL | auto_increment | select,insert,update,references | 主键 |
| user_name | varchar(128) | utf8mb3_bin | NO | UNI | | | select,insert,update,references | 登录名 |
| password | varchar(512) | utf8mb3_bin | NO | | | | select,insert,update,references | 密码 |
| nick_name | varchar(128) | utf8mb3_bin | NO | | | | select,insert,update,references | 昵称 |
| user_no | varchar(128) | utf8mb3_bin | NO | | | | select,insert,update,references | 身份证号 |
| status | tinyint | NULL | NO | | 0 | | select,insert,update,references | 0(正常);1(禁用) |
| phone | char(11) | utf8mb3_bin | NO | UNI | | | select,insert,update,references | 手机号 |
+-----------+--------------+-------------+------+-----+---------+----------------+---------------------------------+-----------------------+
2.7、删除表
drop table t_user;
3、数据表的增删改操作
3.1、数据插入
数据库插入可以使用INSERT INTO语句来实现这一目的。下面是一些基本的示例来展示如何向MySQL数据表中插入数据。
插入单条记录,以t_user表为例
insert into t_user (user_name,password,nick_name,user_no,status,phone) values('张三','12345678','红太阳','131024685941523145',0,'13465231587');
多条语句插入,以t_user表为例
insert into t_user(user_name,password,nick_name,user_no,status,phone) values('张三1','12345671','红太阳1','131024685941523141',1,'13465231581'),('张三2','12345672','红太阳2','131024685941523142',1,'13465231582');
Select * from t_user;
+----+-----------+----------+------------+--------------------+--------+-------------+
| id | user_name | password | nick_name | user_no | status | phone |
+----+-----------+----------+------------+--------------------+--------+-------------+
| 1 | 张三 | 12345678 | 红太阳 | 131024685941523145 | 0 | 13465231587 |
| 2 | 张三1 | 12345671 | 红太阳1 | 131024685941523141 | 1 | 13465231581 |
| 3 | 张三2 | 12345672 | 红太阳2 | 131024685941523142 | 1 | 13465231582 |
+----+-----------+----------+------------+--------------------+--------+-------------+
注意事项
确保在插入数据前,数据表中的字段类型和长度等约束条件满足你要插入的数据。
如果表中有主键或唯一索引约束,确保你插入的数据不会违反这些约束。
插入大量数据时,考虑使用批量插入(如上所示)来提高效率。
对于自增字段,无需手动指定值,MySQL会自动处理。
插入数据后,可以通过SELECT语句来验证数据是否正确插入。
3.2、数据修改
在MySQL中,更新数据表中的数据通常使用UPDATE语句。这个语句允许你修改表中已存在的记录。基本的UPDATE语句的语法如下:
UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;
表名:你想要更新数据的表名。
SET:后面跟着你想要修改的列名和它们对应的新值。你可以一次更新多个列。
WHERE:指定哪些记录需要被更新。这是非常重要的,因为如果你省略了WHERE子句,那么表中的所有记录都会被更新,这通常不是你想要的结果。
实例:
update t_user set user_name='张三3',nick_name='红太阳3',status=0 where id=3;
+----+-----------+----------+------------+--------------------+--------+-------------+
| id | user_name | password | nick_name | user_no | status | phone |
+----+-----------+----------+------------+--------------------+--------+-------------+
| 1 | 张三 | 12345678 | 红太阳 | 131024685941523145 | 0 | 13465231587 |
| 2 | 张三1 | 12345671 | 红太阳1 | 131024685941523141 | 1 | 13465231581 |
| 3 | 张三3 | 12345672 | 红太阳3 | 131024685941523142 | 0 | 13465231582 |
+----+-----------+----------+------------+--------------------+--------+-------------+
3.3、数据删除
删除数据记录是数据操作中常见的操作,可以删除表中已经存在的数据记录。在MySQL中可以通过DELETE语句来删除数据记录,该SQL语句可以通过以下几种方式使用:删除特定数据记录、删除所有数据记录。
l 删除特定数据记录
在MySQL中删除特定数据记录可通过SQL语句DELETE来实现,其语法形式如下:
DELETE FROM tablename WHERE CONDITION;
实例:
select * from t_user;
+----+-----------+----------+------------+--------------------+--------+-------------+
| id | user_name | password | nick_name | user_no | status | phone |
+----+-----------+----------+------------+--------------------+--------+-------------+
| 1 | 张三 | 12345678 | 红太阳 | 131024685941523145 | 0 | 13465231587 |
| 2 | 张三1 | 12345671 | 红太阳1 | 131024685941523141 | 1 | 13465231581 |
| 3 | 张三3 | 12345672 | 红太阳3 | 131024685941523142 | 0 | 13465231582 |
+----+-----------+----------+------------+--------------------+--------+-------------+
delete from t_user where id=3;
select * from t_user;
+----+-----------+----------+------------+--------------------+--------+-------------+
| id | user_name | password | nick_name | user_no | status | phone |
+----+-----------+----------+------------+--------------------+--------+-------------+
| 1 | 张三 | 12345678 | 红太阳 | 131024685941523145 | 0 | 13465231587 |
| 2 | 张三1 | 12345671 | 红太阳1 | 131024685941523141 | 1 | 13465231581 |
+----+-----------+----------+------------+--------------------+--------+-------------+
相关文章:

MySQL数据库专栏(二)SQL语句基础操作
目录 数据库操作 创建数据库 查看数据库 选择数据库 删除数据库 数据表操作 数据表数据类型 数据表列约束 数据表索引 创建表 查看表 查看表结构 删除表 数据表的增删改操作 …...

【OpenCV 实战】1.手势虚拟拖拽(双手骨骼点识别)
step: 1.opencv 获取视频流 2.在画面上画一个方块 3.通过mediapipe获取手指关键点坐标 4.判断手指是否在方块上 5.若在方块上,方块跟着手指移动 mediapipe网站介绍:Hands - mediapipe (chuoling.github.io) 已上传到GitHub : plumqm/OpenC…...

基于springboot人力资源管理系统源码
项目技术:SpringBoot 运行环境:jdk1.8idea/eclipsemaven3mysql5.6 项目描述: 系统包括,员工管理,奖惩管理,合同管理,薪酬管理,培训管理,绩效评估等功能...

如何使用 Apt-Get 和 Apt-Cache 在 Ubuntu 和 Debian 中管理软件包
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Apt 是 dpkg 打包系统的命令行前端,也是许多发行版中管理软件的首选方式。它是 Debian 及基于 Debian 的 Linux 发行版…...

Linux系统创建新分区并挂载的方法
一、引言 本文以CentOS为例讲述Linux系统创建新分区并挂载的方法。如下图所示,用fdisk -l命令可以看到该CentOS系统下有一个磁盘/dev/vda,其容量为2199G,即2T。该磁盘有两个分区:vda1和vda2: 用lsblk命令可以查看到磁…...

反射第二弹:用注册器动态注册(用自定义的注解标注的)策略,实现策略模式的设计
目录 引言 设计思路: 代码实现: 标注注解:@StrategyClass 扫描注解:trategyScan 注册器抽象类: 动态策略注册类: AOP类: 总结: 引言 曾经有人问我,假如有一个业务或者数据处理逻辑,会根据甲方客户繁杂的业务需求,而动态变化,该怎么处理,具体怎么实现? 将…...

【Xcode Command Line Tools】安装指南
安装指令 xcode-select --install安装 完成安装 验证 $ xcode-select -p /Library/Developer/CommandLineTools...

springboot开发网站-使用redis数据库定时特征限制指定ip的访问次数
springboot开发网站-使用redis数据库定时特征限制指定ip的访问次数。近期网站经常有人恶意访问,提交了很多垃圾信息。为了屏蔽这类灌水帖,打算屏蔽ip地址,限制24小时内只能访问1次某个接口。下面是测试的案例代码内容。 1:首先&am…...

【大模型理论篇】大模型相关的周边技术分享-关于《NN and DL》的笔记
本文所要介绍的一本书《Neural Networks and Deep Learning》,该书作者Michael Nielsen,Y Combinator Research的研究员,是多年之前自己看的一本基础书籍,很适合入门了解一些关于深度学习的概念知识,当然也包含了一些小…...

CSS 圆形边框与阴影
目录 1. 圆角边框 1.1 正圆 1.2 圆角矩形 1.3 任意圆角 1.4 某个圆角 2. 盒子阴影 3. 文字阴影 1. 圆角边框 1.1 正圆 1.2 圆角矩形 1.3 任意圆角 1.4 某个圆角 2. 盒子阴影 3. 文字阴影...

Bianchi模型、python计算及ns3验证
由于项目与学习需要,最近学习了bianchi模型,并在python中进行了公式->代码的转化,仿真结果与ns3结果对比。 本文更多的是理解模型各个部分的含义、把各个简单的推导过程转化为python、ns3对比: 1 理论吞吐与传输概率、传输成功概率、包长、速率、排队时间、成功传输时…...

SQL常用语法
SQL(Structured Query Language)是一种用于存储、操作和检索数据库中数据的标准编程语言。以下是一些常用的 SQL 语法: 数据库操作 创建数据库:CREATE DATABASE database_name;删除数据库:DROP DATABASE database_name…...

计算机毕业设计 玩具租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

浏览器前端向后端提供服务
WEB后端向浏览器前端提供服务是最常见的场景,前端向后端的接口发起GET或者POST请求,后端收到请求后执行服务器端任务进行处理,完成后向前端发送响应。 那浏览器前端向后端提供服务是什么鬼? 说来话长,长话短说。我在人…...

文本到语音或视频的构想
₦X8s43Y1iIquVAeF₦ 在Python中,有几个库和模块可以用来实现文本到语音的转换,并且可以生成带有背景音乐的视频。以下是一些可用的库: 1. pyttsx3:这是一个离线文本到语音转换库,它支持多种语音引擎,不依…...

请解释一下数据库的分区和分片?请解释一下数据库的日志和日志的重要性?
请解释一下数据库的分区和分片? 数据库的分区和分片是两种用于提高数据库性能和可扩展性的技术,它们各自具有不同的特点和应用场景。以下是对这两种技术的详细解释: 一、数据库分区 定义: 数据库分区是将一个大型的数据库表或索…...

windows C++-创建数据流代理(二)
完整的数据流演示 下图显示了 dataflow_agent 类的完整数据流网络: 由于 run 方法是在一个单独的线程上调用的,因此在完全连接网络之前,其他线程可以将消息发送到网络。 _source 数据成员是一个 unbounded_buffer 对象,用于缓冲…...

大数据毕业设计选题推荐-个性化图书推荐系统-Python数据可视化-Hive-Hadoop-Spark
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…...

【Redis入门到精通九】Redis中的主从复制
目录 主从复制 1.配置主从复制 2.主从复制中的拓扑结构 3.主从复制原理 4.主从复制总结 主从复制 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满⾜故障恢复和负载均衡等需求。Redis 也是如此,它为我们提…...

系统架构设计师论文《论企业应用系统的数据持久层架构设计》精选试读
论文真题 数据持久层(Data Persistence Layer)通常位于企业应用系统的业务逻辑层和数据源层之间,为整个项目提供一个高层、统一、安全、并发的数据持久机制,完成对各种数据进行持久化的编程工作,并为系统业务逻辑层提…...

策略模式和模板模式的区别
目录 一、实现方式 策略模式 模板模式 二、使用场景 三、优点 四、举例 一、实现方式 策略模式 定义策略接口 Strategy创建具体策略类 OperationAdd、OperationSubtract、OperationMultiply创建一个上下文类 Context,包含一个策略对象的引用,并通…...

【ubuntu】ubuntu20.04安装conda
1.下载 安装参考:https://blog.csdn.net/weixin_44119391/article/details/128577681 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 2.安装 sudo chmod 777 -R ./Anaconda3-5.3.1-Linux-x86_64.sh ./Anaconda3-5.3.1-Linux-x86_64.sh Enter键确认安装…...

使用 SAP ABAP Webdynpro 实现 ABAP Push Channel 的 Web Socket 客户端
本系列前三篇文章,笔者向大家介绍了基于 ABAP Push Channel(简称 APC)的 TCP Socket 服务器端和客户端的编程,以及 Web Socket 的服务器端实现。 使用 ABAP 实现 TCP Socket 编程 (1) - 客户端部分的实现使用 ABAP 实现 TCP Socket 编程 (2) - 服务器端部分的实现使用 ABAP 实…...

15分钟学 Python 第41天:Python 爬虫入门(六)第二篇
Day41:Python爬取猫眼电影网站的电影信息 1. 项目背景 在本项目中,我们将使用 Python 爬虫技术从猫眼电影网站抓取电影信息。猫眼电影是一个知名的电影信息平台,提供了丰富的电影相关数据。通过这个练习,您将深入学习如何抓取动…...

电脑提示d3dcompiler_47.dll缺失怎么修复,仔细介绍dll的解决方法
1. d3dcompiler_47.dll 概述 1.1 定义与作用 d3dcompiler_47.dll 是 Microsoft DirectX 的一个关键组件,作为一个动态链接库(DLL)文件,它在 Windows 操作系统中扮演着至关重要的角色。DirectX 是一套由微软开发的用于处理多媒体…...

CPU中的寄存器是什么以及它的工作原理是什么?
在计算机科学中,寄存器是数字设备中的一个重要组成部分,它用于存储数据和指令以快速处理。寄存器充当临时存储区,信息可以在这里被快速访问和操作,以执行复杂任务。寄存器是计算机中最基础的存储类型,它们在帮助机器高…...

【EXCEL数据处理】000021 案例 保姆级教程,附多个操作案例。EXCEL文档安全性设置。
前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000021 案例 保姆级教程,附多个操作案例。…...

windows7 32bit安装JDK以及EclipseEE
如果你的电脑是 Windows 7 32-bit 系统,那么需要下载并安装适用于 32-bit 系统的 JDK 和 Eclipse EE。以下是具体的步骤和下载链接: 1. 下载并安装适用于 Windows 32-bit 的 JDK 1.1 下载适用于 32-bit 的 JDK Oracle 不再提供最新版本的 32-bit JDK&…...

Python中的Enum
Python中的Enum Enum(枚举)在很多应用场景中都会出现,因此绝大部分编程语言都实现了Enum类型,Python也不列外,但列外的是Enum在Python3.4中才被正式支持,我们先来看看Python3中的Enum是怎么使用的。 枚举的…...

于BERT的中文问答系统12
主要改进点 日志配置: 确保日志文件按日期和时间生成,便于追踪不同运行的记录。 数据处理: 增加了对数据加载过程中错误的捕获和日志记录,确保程序能够跳过无效数据并继续运行。 模型训练: 增加了重新训练模型的功…...