当前位置: 首页 > news >正文

【Mysql】数据库的基本操作和表的增删改查

本章内容是,用sql语言实现对数据库的基本操作和表的基本操作

文章目录

  • 前言
  • 1. 数据库的基本操作
    • 1.1 创建数据库
    • 1.2 查看数据库
    • 1.3 选中数据库
    • 1.4 删除数据库
  • 2. 数据库基本数据类型
  • 3. 表的基本操作
    • 3.1 创建表
    • 3.2 显示数据库中的表
    • 3.3 查看表的构造
    • 3.4 删表
  • 4. 表的增删改查
    • 4.1 增加数据
    • 4.2 删除数据
    • 4.3 查询数据
    • 4.4 数据库运算
      • 4.4.1 比较运算符
      • 4.4.2 逻辑运算符
    • 4.5 更新数据


前言

sql语句这里知识点不难,但是很多,需要时常练习复习,否则很快就忘了.大家可以收藏本篇文章,时时巩固复习.打开你的Mysql,我们开始啦~


1. 数据库的基本操作

1.1 创建数据库

  1. 创建数据库的语句
create  database 数据库名;

如下图,显示OK,就是创建好了.
分号" ; " 是一条sql语句结束的标志.
在这里插入图片描述
2. 创建数据库是不允许出现重名数据库的,所以,这里有创建数据库时,防止名字重复的创建数据库语句.若是输入已经存在的名字,系统不会报错,只是不会执行该数据库创建语句.

create database if not exists 数据库名

如下图
在这里插入图片描述
3. 创建数据库时指定字符集
数据库中,一个汉子占几个字节取决于字符集.我们数据库通常使用utf-8字符集,utf-8中,汉子一般占3字节,支持各种语言文字,但utf-8不能表示表情,utf8b4可以表示表情

create database 数据库名 charset utf8;

在这里插入图片描述

1.2 查看数据库

我们来看看自己有哪些数据库吧~
展示数据库语句.注意后面的databases,要变复数.

show databases;

如下图
在这里插入图片描述

1.3 选中数据库

我们要对数据库中的表进行操作时,首先要选中数据库.

use 数据库名;

如下图
在这里插入图片描述

1.4 删除数据库

首先,这是一个非常危险的操作,尤其是生产环境的数据库,一旦删除重要信息,可能会造成很严重的损失.
删库语句

drop database 数据库名;

如图,一定要谨慎!!!
在这里插入图片描述

2. 数据库基本数据类型

数据字母不区分大小写
以下为常用数据结构介绍.由于decimal无精度丢失,所以可以用来表示钱数.
varchar(SIZE),size要考虑的是里面字符的个数,比如要记录班级同学名字,名字最长有四个字,那size为4即可.

数据类型大小对应java类型说明
int4字节Integer
float(M,D)4字节float单精度,M为指定长度,D为小数点位数,有精度丢失
double(M,D)8字节double
decimal(M,D)M/D最大值+2BigDecimal双精度,M为指定位数,D为小数点位数,无精度丢失
varchar(SIZE)size为允许字符的最多个数string常用字符串类型

3. 表的基本操作

3.1 创建表

首先,在操作表时,要指定是哪个数据库.

use 数据库名;
create table 表名(列名1 列类型, 列名2 列类型,.....)

如下图,创建了一个student表,列有学号,名字,性别.
在这里插入图片描述

3.2 显示数据库中的表

来看看自己数据库的表吧~

show tables;

在这里插入图片描述

3.3 查看表的构造

这个操作,是查看表的结构,有哪些列,列的类型是什么

desc 表名;

如下图.
在这里插入图片描述

3.4 删表

同样,这个也是极其危险的操作,删表需谨慎!!!

drop table 表名;

如下图

4. 表的增删改查

4.1 增加数据

insert into 表名 values(值1,值2....);

如下图,插入了三个数据.
字符串用单引号’',或者双引号""括起来都可以.
在这里插入图片描述
指定列插入,直插入指定的列,未被插入的列为null.

insert into 表名 (列名1,列名2) values(值1,值2);

如下图.
在这里插入图片描述

4.2 删除数据

删除数据语句

delete from 表名 where 条件;

危险操作!!!这里的删除是直接删除硬盘里的数据.
如下图,删除阿三同学的数据.
在这里插入图片描述

4.3 查询数据

1.全列查询

select * from 表名;

" * "是通配符,表示所有的列
在这里插入图片描述
注意,这个操作有一定危险性,select * 会遍历所有数据,而公司中数据库数值巨大,数据都需要从硬盘中读出来,所以硬盘容易被占满,而会影响他人对数据库的使用.

限制查询出来的语句数目,这个方法可以避免查询出来的数据过多的问题.

select * from score limit n;

在这里插入图片描述

2.指定列查询

select 列名 from表名;

如图,只看name这一列
在这里插入图片描述
3.查询时,对列进行修改
如图,在查询数学成绩时加了10,
需要注意的是,这个查询出来的是临时表,这里的改动不会对实际表有什么影响,相当于形参不改变实参的值.
在这里插入图片描述
4.查询总成绩
如图,查询三人总成绩,并给总成绩起了一个别名total.
在这里插入图片描述
5.查询时去重

select distinct 列名 from表;

如下图,去掉了语文成绩重复的数据,这里,若是指定多个列,必须这些列的值都重复,才算重复,才能去重.
在这里插入图片描述
6.查询时,对查询出来的结果进行排序

根据语文成绩进行升序排序.

select * from score order by chinese;

根据语文成绩降序排序,这里的desc指的是单词descend,下降.

select * from score order by chinese desc;

在这里插入图片描述
注意,如果排序的值有null,则null视为最小的值.
null与任何值进行运算都是null;这里的任何运算包括逻辑运算和算术运算.如下图,
chinese + null = null.
在这里插入图片描述
注意:多列排序时,先以第一列为主,若第一列值相等,再比较第二列.方法与比较字符串大小类似.
7.条件查询.

select * from score where 条件;

如下图,查询语文成绩大于80的同学.
在这里插入图片描述

4.4 数据库运算

4.4.1 比较运算符

1.普通的>,<.=正常使用.注意,因为判断null == null,也等于null,为假.所以,null之间的相等判断使用运算符"<=>"

2.between 值1 and 值2;这里是闭区间 [值1,值2]
在这里插入图片描述
3.in(值1,值2,…);
只要值和可选值中的一个对应上即可.

4.is null 与 is not null
如图,查询name 不为null的数据
在这里插入图片描述
5.like 模糊匹配
“阿%” 代表只要以阿开头的字符串即可匹配,"%“可代表任意一个字符串,空也可以
“阿_” 代表阿后面有一个字符的可以匹配,”_"代表有一个字符.
“_阿” 代表阿前面有一个字符的可以匹配
“%阿%” 代表包含阿即可

4.4.2 逻辑运算符

1.and,是逻辑中的与&&
2.or,是逻辑中的或||
3.not,是逻辑中的非!
实例如下图
在这里插入图片描述
在这里插入图片描述

4.5 更新数据

这里的更新数据,是直接修改硬盘里的数据,持久生效.

update 表名 set 列名 where 条件;

如下图,修改阿恒同学的数学成绩.
在这里插入图片描述
使用表达式进行修改

update 表 set 表达式 where 条件;

如下图,给摆烂的同学数学成绩加10分.加分,谁摆烂给谁加,看谁还卷我o(╥﹏╥)o
在这里插入图片描述
修改多个列
如图,继续支持摆烂同学,给摆烂同学的语文和英语成绩加10 摆烂同学还是没及格,适当摆烂,有益身心健康
在这里插入图片描述

相关文章:

  • 掌握这十个Linux命令,秒变Linux老手
  • Spring Security(十八)--OAuth2:实现授权服务器(上)--环境准备以及骨架代码搭建
  • 使用说明丨Kamiya艾美捷抗酒石酸酸性磷酸酶TRAP染色试剂盒
  • 预测足球世界杯比赛
  • [Linux](15)线程基础,线程控制,线程的互斥与同步
  • 【树莓派不吃灰】Linux篇⑩ 学习例行性工作排程(核心概念)
  • 梅西进球了,用Python预测世界杯冠军是 ... 网友:痛,太痛了
  • 基于Spring Boot的个人博客系统(源码+数据库)
  • 文本表示(Representation)
  • 美团应届生面试第一问:Object o = new Object()占用多少字节?
  • Cesium中的DataSource和Entity关系
  • 微信小程序图书商城毕业设计,图书商城购物小程序系统设计与实现,图书商城购物小程序商城毕设作品参考
  • 这 13 个可能是你一直未使用过的超级棒的 Python 用法
  • 【数据结构初阶】链式二叉树接口实现+痛苦的OJ题
  • 【Linux】基本指令(三)
  • SegmentFault for Android 3.0 发布
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Druid 在有赞的实践
  • js算法-归并排序(merge_sort)
  • js中forEach回调同异步问题
  • nodejs:开发并发布一个nodejs包
  • Sass 快速入门教程
  • Shell编程
  • 聚类分析——Kmeans
  • 实现简单的正则表达式引擎
  • 使用 @font-face
  • 函数计算新功能-----支持C#函数
  • ​虚拟化系列介绍(十)
  • #pragma data_seg 共享数据区(转)
  • (26)4.7 字符函数和字符串函数
  • (done) 两个矩阵 “相似” 是什么意思?
  • (二开)Flink 修改源码拓展 SQL 语法
  • (四)c52学习之旅-流水LED灯
  • (一)Dubbo快速入门、介绍、使用
  • (转)用.Net的File控件上传文件的解决方案
  • .form文件_SSM框架文件上传篇
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [20180224]expdp query 写法问题.txt
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [LeetCode] 19. 删除链表的倒数第 N 个结点
  • [LitCTF 2023]Http pro max plus
  • [NISACTF 2022]level-up
  • [office] excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 #笔记#学习方法
  • [Oh My C++ Diary]\t \n \r的用法
  • [Oh My C++ Diary]函数重载
  • [Redis源码阅读]当你输入get/set命令的时候,Redis做了什么
  • [RK3568 Android11] Binder驱动结构体
  • [Rust] 快速基础入门教程
  • [Shell]Linux常用快捷键