操作MySQL数据库

【一】针对库的增删查改(文件夹)

【1】创建数据库

(1)语法

  • 创建一个存储数据表的文件夹。

  • 注意:mysql中的编码字符集中utf-8,要换成utf8mb4。SQL语句中的中括号部分表示可选。

create database [if not exists] 数据库名 [character set 编码字符集];

(2)示例

mysql> create database my_one;
Query OK, 1 row affected (0.00 sec)

【2】查看数据库

(1)语法

show databases;  -- 查看所有数据库
show databases like '%test%'; -- 查看名字中包含test的数据库
show create database 数据库名; -- 查看数据库的建库sql语句

(2)示例

# 查看所有库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_one             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)
​
# 查看指定库 
mysql> show create database my_one;
+----------+--------------------------------------------------------------------+
| Database | Create Database                                                    |
+----------+--------------------------------------------------------------------+
| my_one   | CREATE DATABASE `my_one` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)

【3】修改数据库

(1)语法

alter database 数据库名 [character set 编码字符集];

(2)示例

mysql> alter database my_one charset='utf8';
Query OK, 1 row affected (0.00 sec)

【4】删库

(1)语法

drop database [if exists] 数据库名;

(2)示例

mysql> drop database my_one;
Query OK, 0 rows affected (0.01 sec)

【二】针对表的增删改查(文件)

在操作表的时候要指定所在的库

【1】查看当前所在库的名字

(1)语法

select database();  --  查看当前使用的数据库

(2)示例

mysql> select database();
+------------+
| database() |
+------------+
| NULL       |
+------------+
1 row in set (0.00 sec)

【2】切换到指定库

(1)语法

use 数据库名;        -- 切换数据库

(2)示例

  • 切换数据库 注意:进入到某个数据库后没办法再退回之前状态,但可以通过use进行切换

mysql> use my_one
Database changed

【3】创建表

  • 数据表就相当于文件,文件有文件名,自然地,数据表也要有表名。

  • 同样道理,数据表中的一条记录就相当于文件的一行内容。

  • 只是不同的是,数据表需要定义表头(上图中的首行),称为表的字段名。

  • 而且因为数据库的存储数据更加科学、严谨,所以需要创建表时要给每一个字段设置数据类型以及字段约束(完整性约束条件)。

(1)语法

create table  [if not exists]  表名 (字段名1    数据类型[ ( 存储空间 )    字段约束 ],字段名2    数据类型[ ( 存储空间 )    字段约束 ],字段名3    数据类型[ ( 存储空间 )    字段约束 ],.....字段名n   数据类型[ ( 存储空间 )    字段约束 ],primary key(一个 或 多个 字段名)    -- 注意,最后一段定义语句,不能有英文逗号的出现,否则报错。
) [engine = 存储引擎 character set 字符集];
  • 注意:

    • 上面SQL语句中,小括号中的定义字段语句后面必须以英文逗号结尾,而最后一个字段的定义语句不能有英文逗号出现,否则报错。

    • 在同一张数据表中,字段名是不能相同,否则报错!

    • 创建数据表的SQL语句中,存储空间和字段约束是选填的,而字段名和数据类型则是必须填写的。

(2)示例

  • 创建表指定字段

-- mysql中创建数据表要以 create table `表名`
-- 表的字段信息必须写在 (  )  小括号里面
create table classes (-- 建议一行一个字段,id 就是字段名-- int 表示设置字段值要以整数的格式保存到硬盘中,-- auto_increment表示当前字段值在每次新增数据时自动+1作为值保存-- primary key,mysql中叫主键,表示用于区分一个数据表中不同行的数据的唯一性,同时还具备加快查询速度的作用-- 注意:auto_increment与primary key 一般是配合使用的,对应的字段名一般也叫id,而且在一个数据表中只有一个字段能使用auto_increment primary key进行设置。id int auto_increment primary key,-- 字段名:name-- varchar(10) 表示当前name这一列可以存储的数据是字符串格式,并且最多只能存10个字符name varchar(10),-- 字段名:address-- varchar(100) 表示adderss这一列可以存储的数据是字符串格式,并且最多只能存100个字符address varchar(100),-- 字段名:total-- int 表示当前total这一列的数据只能是整数,而且一个数据表中,整数的最大范围只能是42亿total int
);
  • 上面的SQL语句就相当于创建了一个表格

idnameaddresstotal

【4】查看当前库下面的所有表

(1)查看所有的表

  • 列出当前数据库中所有的数据表

# 语法
show tables;
# 示例
mysql> show tables;
+------------------+
| Tables_in_my_one |
+------------------+
| classes          |
| courses          |
| student          |
+------------------+
3 rows in set (0.00 sec)

(2)查看指定的表

# 语法
show create table 表名;
# 示例
mysql> show create table student;
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table|
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(10) DEFAULT NULL,`sex` int(11) DEFAULT '1',`classes` int(11) DEFAULT NULL,`age` int(11) DEFAULT NULL,`description` text,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

(3)查看当前表的详细信息

  • 以表格形式列出当前数据表的结构信息

# 语法
describe 表名;
desc 表名;
mysql> desc student;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(10) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

(4)查看建表语句

show create table 表名 \G;

【5】修改表

(1)修改表的字段类型

  • modify(只能改类型不能改名字)

# 语法
alter table 表名 modify 字段名 字段类型(宽度);# 示例
# 修改之前name varchar(10)
mysql> desc student;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(10) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)mysql> alter table student modify name varchar(32);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0# 修改之后name varchar(32)
mysql> desc student;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(32) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
  • change(名字类型都可)

alter table 表名 change 字段名 字段类型(宽度);

(2)修改表的名字(重命名)

语法:

alter table 原表名 rename 新表名;

示例:

mysql> alter table student rename students-> ;
Query OK, 0 rows affected (0.01 sec)

(3)添加字段

  • 默认是尾部追加字段

语法:

alter table 表名 add 字段名 字段类型;

示例:

mysql> alter table students add a int;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc students;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(32) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
| a           | int(11)     | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
  • 指定追加位置

语法:

alter table 表名 add 字段名 字段类型 after 原字段名;

示例:

mysql> alter table students add b int after a;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc students;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(32) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
| a           | int(11)     | YES  |     | NULL    |                |
| b           | int(11)     | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)
  • 指定头部添加字段

语法:

alter table 表名 add 字段名 字段类型 first;

示例:

mysql> alter table students add c int first;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc students;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| c           | int(11)     | YES  |     | NULL    |                |
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(32) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
| a           | int(11)     | YES  |     | NULL    |                |
| b           | int(11)     | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

(4)删除字段

语法:

alter table 表名 drop 字段名;

示例:

mysql> desc students;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| c           | int(11)     | YES  |     | NULL    |                |
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(32) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
| a           | int(11)     | YES  |     | NULL    |                |
| b           | int(11)     | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)mysql> alter table students drop c;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> desc students;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(32) | YES  |     | NULL    |                |
| sex         | int(11)     | YES  |     | 1       |                |
| classes     | int(11)     | YES  |     | NULL    |                |
| age         | int(11)     | YES  |     | NULL    |                |
| description | text        | YES  |     | NULL    |                |
| a           | int(11)     | YES  |     | NULL    |                |
| b           | int(11)     | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)

(5)删除表

语法:

drop table 表名;

示例:

mysql> show tables;
+------------------+
| Tables_in_my_one |
+------------------+
| classes          |
| courses          |
| students         |
+------------------+
3 rows in set (0.00 sec)mysql> drop table courses;
Query OK, 0 rows affected (0.01 sec)mysql> show tables;
+------------------+
| Tables_in_my_one |
+------------------+
| classes          |
| students         |
+------------------+
2 rows in set (0.00 sec)

【三】针对数据的增删查改

# 新建表 添加数据
insert into 表名 (字段名,字段名) values(值,值);
INSERT [INTO] <表名> [ <列名1> [ , … <列名n>] ] VALUES (值1) [… , (值n) ];
mysql> create table student(-> d varchar(32),-> e int-> );
Query OK, 0 rows affected (0.03 sec)mysql> show tables;
+------------------+
| Tables_in_my_one |
+------------------+
| classes          |
| student          |
| students         |
+------------------+
3 rows in set (0.00 sec)mysql> desc student-> ;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| d     | varchar(32) | YES  |     | NULL    |       |
| e     | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

(1)插入数据

mysql> insert into student (d,e) values('knight',22),('hyt',24);
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

(2)查看数据

语法:

select * from 表名;

示例:

mysql> select * from student;
+--------+------+
| d      | e    |
+--------+------+
| knight |   22 |
| hyt    |   24 |
+--------+------+
2 rows in set (0.00 sec)

(3)更改数据

语法:

update 表名 set 字段名=字段值 where name="";

示例:

mysql> select * from student;
+--------+------+
| d      | e    |
+--------+------+
| knight |   22 |
| hyt    |   24 |
+--------+------+
2 rows in set (0.00 sec)mysql> update student set e=18 where d="hyt";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from student;
+--------+------+
| d      | e    |
+--------+------+
| knight |   22 |
| hyt    |   18 |
+--------+------+
2 rows in set (0.00 sec)

(4)删除数据

语法:

delete from 表名 where 字段名=字段值;

示例:

mysql> delete from student where d="knight";
Query OK, 1 row affected (0.00 sec)mysql> select * from student;
+------+------+
| d    | e    |
+------+------+
| hyt  |   18 |
+------+------+
1 row in set (0.00 sec)

注意:

  • 使用 DROP DATABASE/TABLE 命令时要非常谨慎,

  • 在执行该命令后,MySQL 不会给出任何提示确认信息。

  • DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。

  • 因此最好在删除数据库之前先将数据库进行备份。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改uniapp内置组件checkbox的样式

默认情况下 <view style"margin-bottom: 20rpx;"><label style"display: flex;align-items: center;width: fit-content;" click"handleCheck(cxm4s)"><checkbox /><text>车信盟出险4S维保</text></label>…

Java实验08

实验一 demo.java package q8.demo02;public class demo{public static void main(String[] args) {WindowMenu win new WindowMenu("Hello World",20,30,600,290);} }WindowMenu.java package q8.demo02; import javax.swing.*;public class WindowMenu extends…

数据结构初始化链表

链表是一种常见的数据结构&#xff0c;可以用于存储一系列的元素&#xff0c;每个元素包含一个值和一个指向下一个元素的指针。 链表的初始化可以通过创建一个头结点来实现&#xff0c;头结点不存储任何元素&#xff0c;只作为链表的起始点。在初始化时&#xff0c;可以将头结…

3d火灾救援模拟仿真培训软件复用性强

消防VR安全逃生体验系统是深圳VR公司华锐视点引入了前沿的VR虚拟现实、web3d开发和多媒体交互技术&#xff0c;为用户打造了一个逼真的火灾现场应急逃生模拟演练环境。 相比传统的消防逃生模拟演练&#xff0c;消防VR安全逃生体验系统包含知识讲解和模拟实训演练&#xff0c;体…

el-table树型数据lazy加载实现首行展开

el-table树型数据lazy加载实现首行展开 遇到一个小需求&#xff0c;一个树型数据的el-table&#xff0c;并且使用lazy加载&#xff0c;需要实现首行展开。 实现 思路&#xff1a;使用 expand-row-keys 或者 toggleRowExpansion API展开&#xff0c;但是发现这些API并不会触发…

【百度智能体】5分钟打造一款为你写情书的智能体

目录 前言一、智能体特点二、应用场景三、打造一款写情书智能体1、名称2、简介3、填写人物设定&#xff1a;4、开场白5、引导示例6、预览 最后 前言 智能体作为人工智能领域的一个重要概念&#xff0c;是指能够自主感知环境、做出决策并执行行动的系统。它具备自主性、交互性、…

程序员经常去的网站

程序员们经常去的网站确实非常多样化&#xff0c;这些网站不仅提供了丰富的技术资源和学习材料&#xff0c;还是他们交流经验和分享知识的重要平台。以下是一些程序员经常访问的网站&#xff0c;我将按照不同的类别进行归纳和分点表示&#xff1a; 一、代码托管与协作 GitHub&a…

单元测试(了解)

单元测试定义 针对最小功能单元&#xff08;方法&#xff09;&#xff0c;编写测试代码对其进行正确性测试 之前如何进行单元测试&#xff1f;有什么问题&#xff1f; main中编写测试代码&#xff0c;调用方法测试 问题&#xff1a; 无法自动化测试 每个方法的测试可能不是…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟&#xff0c;用于记录和跟踪时间&#xff0c;具有独立供电和时钟功能。在某些应用场景中&#xff0c;为了保证RTC在断电或者其他异常情况下依然能够正常工作&#xff0c;需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

【吊打面试官系列】Java高并发篇 - AQS 支持几种同步方式 ?

大家好&#xff0c;我是锋哥。今天分享关于 【AQS 支持几种同步方式 &#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; AQS 支持几种同步方式 &#xff1f; 1、独占式 2、共享式 这样方便使用者实现不同类型的同步组件&#xff0c;独占式如 ReentrantLock&…

VUE3.0学习-模版语法

安装Node.js的过程相对直接&#xff0c;以下是详细的步骤指导&#xff0c;适用于大多数操作系统&#xff1a; ### 1. 访问Node.js官方网站 首先&#xff0c;打开浏览器&#xff0c;访问 [Node.js 官方网站](https://nodejs.org/)。 ### 2. 选择合适的版本下载 在Node.js官网上…

OpenHarmony 实战开发——ArkUI中的线程和看门狗机制

一、前言 本文主要分析ArkUI中涉及的线程和看门狗机制。 二、ArkUI中的线程 应用Ability首次创建界面的流程大致如下&#xff1a; 说明&#xff1a; • AceContainer是一个容器类&#xff0c;由前端、任务执行器、资源管理器、渲染管线、视图等聚合而成&#xff0c;提供了生…

C++ 头文件优化

C 是一种灵活的语言&#xff0c;所以需要一种积极的方法来分析和减少编译时依赖。一种常见的达到这个目的的方法是&#xff0c;将依赖从头文件里转移到源代码文件里。实现这个目的的方法叫做提前声明。 简而言之&#xff0c;这些声明告诉编译器某个函数接受和返回哪些参数&…

opencv 关于 卷积核(掩膜) 的通俗理解

1 opencv 坐标原点是左上角 x向右延伸 y向下延伸 图像的坐标原点位于左上角&#xff0c;x 轴向右延伸&#xff0c;y 轴向下延伸。这种坐标系与大多数计算机图像处理库&#xff08;如 PIL、MATLAB 等&#xff09;一致 例如 给定像素坐标(x,y) 则周围点表示为: 左上方的像素:…

Android 调用OpenCV动态库

1、下载OpenCVMobile的文件,链接地址 2、OpenCV-android-sdk/sdk/native/libs/arm64-v8a/libopencv_java4.so拷贝处理放到libs里面 3、 OpenCV-android-sdk/sdk/native/jni/include 放到include文件夹下 4、Cmake修改 set(lib_DIR ${CMAKE_SOURCE_DIR}/libs) add_library(l…

Python操作MySQL实战

文章导读 本文用于巩固Pymysql操作MySQL与MySQL操作的知识点&#xff0c;实现一个简易的音乐播放器&#xff0c;拟实现的功能包括&#xff1a;用户登录&#xff0c;窗口显示&#xff0c;加载本地音乐&#xff0c;加入和删除播放列表&#xff0c;播放音乐。 点击此处获取参考源…

《异常检测——从经典算法到深度学习》28 UNRAVEL ANOMALIES:基于周期与趋势分解的时间序列异常检测端到端方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

【必会面试题】Redis 中的 zset数据结构

目录 Redis 中的 zset&#xff08;sorted set&#xff0c;有序集合&#xff09;数据结构在底层可以使用两种不同的实现&#xff1a;压缩列表&#xff08;ziplist&#xff09; 和 跳跃表&#xff08;skiplist&#xff09;。具体使用哪种结构取决于存储元素的数量和大小&#xff…

设计模式13——桥接模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 桥接模式&#xff08;Bridge&a…

冯喜运:5.27黄金短线看震荡,今日黄金原油走势分析

【黄金消息面分析】&#xff1a;黄金作为传统的避险资产&#xff0c;在经济不确定性中扮演着至关重要的角色。近期&#xff0c;国际黄金价格经历了显著的波动。从5月9日的低点2325.19美元/盎司反弹至2340美元/盎司以上&#xff0c;尽管金价曾一度触及2449.89美元/盎司的历史高点…