『 MySQL篇 』:MySQL表的CURD操作

📢 MySQL 系列专栏持续更新中 …MySQL专栏

目录

*
目录

+
* 一、SQL语句
*
– SQL通用语法
– 注释
– SQL语句分类
* 二、 基础表操作
*
– 创建表
– 查看库中的表
– 查看表结构
– 删除表
– 重命名表
* 三、MySQL 中的增删查改操作
*
– 增加(insert语句)
– 查询(select语句)
– 修改(update)
– 删除(delete)

一、SQL语句

操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准,简称SQL。

– SQL通用语法

1 . SQL语句可以单行或多行书写,以分号结尾。

2 . SQL语句可以使用空格/缩进来增强语句的可读性。

​ 3 . MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

– 注释
  • 单行注释: – 注释内容 或者使用 # 注释内容 。
  • 多行注释:/ 注释内容 /
– SQL语句分类

分类说明DDL(deifnition)数据定义语言(用来定义数据库对象,数据库,表,字段)DML(manipulation)数据操纵语言(对数据库 表中的是数据进行增删改)DQL(query)数据查询语言,用来查询数据库中表的记录DCL(control)数据控制语言,用来创建数据库用户,控制数据库的访问权限

二、 基础表操作
– 创建表
  • 同一个数据库中,不能有两个表的名字相同,表名和列名不能和SQL的关键词重复。
  • 语法:
create table 表名(定义列1, 定义列2, .......);
列 -> 变量名 数据类型
  • 举例:
mysql> create table if not exists book(
    ->   book_name varchar(32) comment '图书名称',
    ->   book_author varchar(32)comment  '图书作者' ,
    ->   book_price decimal(12,2) comment '图书价格',
    ->   book_category varchar(12) comment '图书分类',
    ->   publish_data timestamp
    -> )character set utf8mb4;

Query OK, 0 rows affected (0.04 sec)
– 查看库中的表
  • 语法:
show tables;
  • 举例:
mysql> show tables;
+
| Tables_in_mytestdb |
+
| book               |
+
1 row in set (0.00 sec)

– 查看表结构
  • 语法:
desc  表名;
  • 举例:
    『 MySQL篇 』:MySQL表的CURD操作

MySQL数据库中的表结构主要包含以下几种信息: 字段名称,字段类型,是否允许为空,索引类型。默认值,扩充信息

– 删除表
  • 语法:
drop table 表名
  • 举例 :
mysql> desc test1;
+
| Field | Type        | Null | Key | Default | Extra |
+
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+
2 rows in set (0.02 sec)

mysql> drop table test1;
Query OK, 0 rows affected (0.04 sec)

mysql> desc test1;
ERROR 1146 (42S02): Table 'mytestdb.test1' doesn't exist
– 重命名表
  • 语法:
rename table old_name to new_name;
  • 举例:
mysql> rename table book to eBook;
Query OK, 0 rows affected (0.05 sec)

mysql> show tables;
+
| Tables_in_mytestdb |
+
| ebook              |
+
1 row in set (0.00 sec)
三、MySQL 中的增删查改操作

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写

案例:


mysql> create table if not exists book(
    ->   book_name varchar(32) comment '图书名称',
    ->   book_author varchar(32)comment  '图书作者' ,
    ->   book_price decimal(12,2) comment '图书价格',
    ->   book_category varchar(12) comment '图书分类',
    ->   publish_data timestamp
    -> )character set utf8mb4;
– 增加(insert语句)
  • 单行插入(全列)
insert into 表名 values(对应列的参数列表);

  • 多行插入(全列)
insert into 表名 values(对应列的实参列表), (对应列的参数列表), (对应列的参数列表);

  • 指定列插入
  • values 后面( )中的内容, 个数和类型要和表名后面( )中指定的结构匹配.

  • 未被指定的列会以默认值进行填充.

insert into 表名 (需要插入的列) values(对应列的参数列表);

insert into 表名 (需要插入的列) values(对应列的参数列表), (), ()....

  • 案例

mysql>
insert into book values('计算机网络','谢希仁',45,'计算机类','2020-12-25 12:51:00');
Query OK, 1 row affected (0.01 sec)

mysql>
insert into book values('计算机组成原理','王峰',45,'硬件类','2020-12-12 12:00:00'),
    -> ('微机原理','李华',97,'硬件类','2000-12-19 20:00:00');

Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql>
insert into book(book_name,book_author,publish_data) values ('软件工程','张三','2020-05-06 12:00:00');
Query OK, 1 row affected (0.02 sec)

『 MySQL篇 』:MySQL表的CURD操作

在MySQL当中 , 多条记录逐次插入的效率是要低于一次把多条纪录一起插入的 ,原因如下:

  • 网络请求和响应时间开销 , 每次插入都会有一定的时间开销.

  • 数据库服务器是把数据保存在硬盘上的 , IO操作时,操作的次数带来的影响大于数据量.

  • 每一次sql操作,内部开启的事务也会占据一定的开销.

– 查询(select语句)
  • 全列查询

语法

select * from 表名

企业级别的数据库中慎用, 容易把I/O或者网络带宽吃满,如果有外边的用户客户端要通过宽带访问服务器时,服务器就无法做出正确的响应.

示例

select * from book;

『 MySQL篇 』:MySQL表的CURD操作
  • 指定列查询
select 列名...  from  表名
  • 示例
)mysql> select book_name from book;
+
| book_name      |
+
| 计算机网络     |
| 计算机组成原理 |
| 微机原理       |
| 软件工程       |
+
4 rows in set (0.01 sec)

mysql> select book_author,book_price from book;
+
| book_author | book_price |
+
| 谢希仁      |      45.00 |
| 王峰        |      45.00 |
| 李华        |      97.00 |
| 张三        |       NULL |
+
4 rows in set (0.00 sec)
  • 查询你字段为表达式
select 字段或表达式, 字段或表达式... from 表名;
  • 示例

mysql> select book_name ,book_author,book_price + 10 from book;
+
| book_name      | book_author | book_price + 10 |
+
| 计算机网络     | 谢希仁      |           55.00 |
| 计算机组成原理 | 王峰        |           55.00 |
| 微机原理       | 李华        |          107.00 |
| 软件工程       | 张三        |            NULL |
+
4 rows in set (0.00 sec)

  • 将表达式或者字段指定别名查询

mysql中支持给所查询的表达式取一个别名 , 使用 as 可以使查询结果更加直观 , 代码的可读性也会更强.

select 列名或表达式 as 别名, ... from 表名;
  • 示例

mysql> select book_name,book_author,book_price + 20 as newprice from book;
+
| book_name      | book_author | newprice |
+
| 计算机网络     | 谢希仁      |    65.00 |
| 计算机组成原理 | 王峰        |    65.00 |
| 微机原理       | 李华        |   117.00 |
| 软件工程       | 张三        |     NULL |
+
4 rows in set (0.00 sec)
  • 去重查询
select distinct 列名 from 表名
  • 示例

mysql> insert into book values('计算机网络','张华',89,'计算机类','2020-11-23 11:00:00');
Query OK, 1 row affected (0.00 sec)

mysql> select book_name from book;
+
| book_name      |
+
| 计算机网络     |
| 计算机组成原理 |
| 微机原理       |
| 软件工程       |
| 计算机网络     |
+
5 rows in set (0.00 sec)

mysql> select distinct book_name from book;
+
| book_name      |
+
| 计算机网络     |
| 计算机组成原理 |
| 微机原理       |
| 软件工程       |
+
4 rows in set (0.00 sec)

查询结果当中,没有了重复的book _ name 元素,达到了去重效果.

  • 排序查询
select 列名
from 表名
order by 列名 asc(升序)/desc(降序);

  • 示例

mysql> select book_name,book_price from book order by book_price asc;
+
| book_name      | book_price |
+
| 软件工程       |       NULL |
| 计算机网络     |      45.00 |
| 计算机组成原理 |      45.00 |
| 计算机网络     |      89.00 |
| 微机原理       |      97.00 |
+
5 rows in set (0.00 sec)

mysql> select book_name,book_price from book order by book_price desc;
+
| book_name      | book_price |
+
| 微机原理       |      97.00 |
| 计算机网络     |      89.00 |
| 计算机网络     |      45.00 |
| 计算机组成原理 |      45.00 |
| 软件工程       |       NULL |
+
5 rows in set (0.00 sec)
  • 使用排序查询时 , 升序查询 asc 可以省略, 即默认为升序排列, null值一定为其中最小的.

  • 可以对多个字段进行排序,优先级按照书写的顺序进行.

  • 示例


select name,price,age from book order by price asc,age desc;

select name,english+math+chinese as total from grade order by total desc;
  • 条件查询

当我们使用查询时, 通常具有各种各样的前提条件 , 此时就需要使用条件查询来完成.

select 列名.. from 表名..where + 条件

比较运算符

运算符说明>, >=,

Original: https://blog.csdn.net/m0_56361048/article/details/128732862
Author: 署前街的少年
Title: 『 MySQL篇 』:MySQL表的CURD操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/813598/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pandas数值运算方法

    1、通用函数:保留索引: 对Series或DataFrame对象使用numpy的通用函数时,返回的是保留索引的pandas对象 2、通用函数:索引对齐: 当两个Series或Dat…

    Python 2023年8月21日
    058
  • 篇(18)-Asp.Net Core入门实战-文章管理之文章内容管理(下拉框二级结构递归)

    篇(18)-Asp.Net Core入门实战-文章管理之文章内容管理(下拉框二级结构递归实现) 文章管理是CMS系统的核心表之一,存储文章内容,特点就是字段端,属性多,比如是否标识…

    Python 2023年10月14日
    044
  • 尝试阅读理解一份linux shell脚本

    从头一二去阅读语法和命令说明,对于脚本小白来说比较枯燥,难以坚持,所以这里选择对一份完整的shell脚本代码来逐行逐段解读,希望可以一渡小白,帮助我们快速进入脚本的大门_。司机要开…

    Python 2023年10月21日
    041
  • BFS和DFS算法学习

    BFS和DFS算法基础 BFS和DFS是数据结构中的一种,属于图类比较好的讲解视频:[Python] BFS和DFS算法(第1讲)其中BFS采用队列结构,先进先出,层层递进而DFS…

    Python 2023年6月3日
    079
  • 超简单教你在树莓派上安装opencv(二)

    超简单教你在树莓派上安装opencv(二) 前言 一、如何基于python3.9.2安装OpenCv? * 1.1 查看自己系统位数及Python版本,跟对教程 1.2 换源 1….

    Python 2023年7月31日
    070
  • FastDFS分布式文件系统简介

    1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高…

    Python 2023年6月11日
    073
  • c++实现全排列的三种方式

    递归方式 #include #include #include #include using namespace std; const int MAXN = 10; bool vi…

    Python 2023年6月12日
    079
  • Python函数:groupby()

    形式: DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=Tr…

    Python 2023年8月8日
    056
  • Python爬取自己CSDN后台原始markdown数据

    Python爬取CSDN后台原始markdown数据 网页解析 生成请求变量 获取Cookie 获取文章ID列表 获取markdown内容 源码获取 个人博客之类的项目基本上是每个…

    Python 2023年10月2日
    067
  • Pandas之Series、DataFrame、MultiIndex

    Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据 *主要由一组数据和与之相关的索引两部分构成。 pd.Series(data=Node,index=None,d…

    Python 2023年8月7日
    043
  • numpy 数组中的轴 axis

    numpy 数组中的轴 numpy有很多维度的数组,一维数组,二维数组,三维数组……n维数组,我们生活的是一个三维世界,因此,在这里就只讨论 一维数组,二维…

    Python 2023年8月24日
    046
  • 华夏天信携手华为云开天aPaaS,打造安全、高效、节能的主煤流运输系统

    摘要:基于开天aPaaS集成工作台,主煤流运输系统如何实现多源异构数据融合、皮带物料和人员违章的智能感知,以及皮带的智能控制。灵活架构、高效集成、快速开发! 据权威数据显示,202…

    Python 2023年10月24日
    034
  • [Linux]-Crontab定时任务

    [Linux]-Crontab定时任务 森格 | 2022年12月 本文是对Linux中的定时任务Crontab的介绍 一、Crontab是什么 crontab命令常见于Unix和…

    Python 2023年9月15日
    057
  • python test.py_python学习-pytest(一)

    学习pytest第一步 一、安装 pytest不是python默认的package,需要手动安装。 pytest支持python 2.6–3.5之间的版本,同时可以在w…

    Python 2023年9月13日
    050
  • Scrapy

    一:User-Agent它在HTTP请求头部中,发起请求的时候,会把此字符串传递给服务器,服务器以此字符串判断是否是浏览器,许多网页通过User-Agent来禁止所有来自非浏览器的…

    Python 2023年10月7日
    050
  • utils系列:gunicorn flask 启动多进程;杀gunicorn 进程

    一、gunicorn flask 一个简单的flask demo: #main.py from flask import Flask app = Flask(__name__) @…

    Python 2023年8月12日
    044
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球