Mysql基础 01 数据与sql

news2024/11/27 15:31:49

文章目录

  • 一、基本概念
  • 二、mysql的常用命令
  • 三、sql规范
  • 四、数据类型
  • 五、SQL语句

一、基本概念

数据库(database,DB):存储数据的仓库。

数据库管理系统软件(Database Management System,DBMS):是一种操作和管理数据库的大型软件。常见的DBMS有oracle、sql server、Mysql

数据库系统(Data Base System,DBS):有软件、数据库和数据管理员组成。

二、mysql的常用命令

1、登录:mysql -h 服务器IP -P 端口号 -u 用户名 -p 密码 --prompt 命令提示符 --delimiter 指定分隔符
  例:mysql -uroot -p

2、退出:quit exit \q

三、sql规范

SQL是专门为数据库而建立的操作命令集,现在几乎所有的数据库均支持sql

1、SQL语句不区分大小写,但字符串常量区分大小写。建议命令大写,表明库名小写。

2、SQL语句课单行或多行写,以分号“;”结尾。

3、可用空格和缩进来提高语句的可读性。

4、注释:单行注释:--   多行注释:/* */

5、SQL语句可以折行操作。

四、数据类型

数值类型
在这里插入图片描述


日期和时间类型
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
在这里插入图片描述


字符串类型
在这里插入图片描述


此外,还有一个BIT类型,占一个二进制位长度,可以用来表示布尔类型。

五、SQL语句

1、显示当前的日期和时间:select now();

2、查看所有数据库:show databases;

3、创建数据库(在磁盘上创建一个对应的文件夹):create database [if not exists] db_name [character set xxx]
  注:①写if not exists,当创建的数据库已存在,也不会报错。
    ②character set xxx表示创建xxx字符集。
  例:create database s3;

4、显示警告信息:show warnings;

5、显示数据库s3的创建信息:show create database s3

6、删除数据库s4:drop database [if exists] s4;

7、修改数据库字符集为gbk(默认为utf8):alter database s3 character set gbk;

8、切换数据库到s4:use s4;

9、查看当前使用的数据库:select database();

10、创建表(类似一个excel表):
create table tab_name(
  field1 type [约束条件],
  field2 type [约束条件],
  …
  fieldn type [约束条件]
)

约束:
  primary key (非空且唯一) :能够唯一区分出当前记录的字段称为主键。主键字段必须是数字类型。一张表只有一个主键。
  unique
  not null 该字段值非空
  auto_increment 字段的值自增1
  foreign key 外键约束

例:

CREATE TABLE employee(
    id TINYINT PRIMARY KEY auto_increment,
    name VARCHAR(4),
    gender TINYINT(1),
    age INT,
    department VARCHAR(20),
    salary DOUBLE(7,2)
);

注:TINYINT(1)表示1个位宽。VARCHAR(4)表示4个字符。DOUBLE(7,2)表示总共7位数字,其中2位为小数。

11、查看当前库下的表名:show tables;

12、查看employee表结构:desc employee; 或 show columns from employee;

13、查看表的创建信息:show create table employee;

14、添加一个表字段,例:
alter table employee add is_married tinyint(1);
alter table employee add entry_date not null;
alter table employee add A INT, add B VARCHAR(10);

15、删除表字段:alter table emplyee drop A,drop entry_date;

16、修改一列类型:alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
其中first表示排字段第一个,after表示排某个字段后面。
例:alter table employee modify age smallint not null default 18 alter id;

17、修改列名:alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
例:alter table employee change department depart varchar(20) after salary;

18、修改表名:rename table 表名 to 新表名;

19、删除表:drop table 表名;

20、插入一条表记录:
①insert [into] tab_name (field1,filed2,…) values (value1,value2,…);
②insert [into] tab_name values (所有字段值);
③insert [into] tab_name set 字段名=值;

21、插入多条表记录:
insert [into] tab_name (field1,filed2,…) values
  (value1,value2,…),
  (value3,value4,…);

22、修改表记录:
update tab_name set field1=value1,field2=value2,…[where 语句];
注:没有WHERE子句,则更新所有的行。
例:update employee set salary=salary+200 where name=“xixi”;

23、删除表纪录:如果不跟where语句则删除整张表中的数据。delete语句只能删除表记录,不能删除表结构,想要一同删除表记录和表结构,用drop。delete语句是逐条删除记录,而TRUNCATE也可以删除表中的所有数据,它是首先摧毁表,再新建表。TRUNCATE删除的数据不能在事务中恢复。
delete from tab_name [where …];
truncate table tab_name;

24、查询表的所有记录:SELECT * FROM tab_name;

25、查询表的某些字段的所有记录:SELECT field1,filed2 … FROM tab_name;

26、查询表的所有不重复的记录:select [distinct] *|field1,field2,… from tab_name;

27、select 也可以使用表达式,并且可以使用: 字段 as 别名或者:字段 别名:
select name as na,age+10 from emp;

28、select语句使用where子句,进行过滤查询。例:
select name na,age+10 as a from emp where age>=20;
如果字段值为null,使用 is,而不是 =。
例:select * from emp where id=3 and gender is null;

where字句中可以使用:
  比较运算符:
  > < >= <= <> !=
  between 80 and 100 值在10到20之间
  in(80,90,100) 值是10或20或30
  like ‘xi%’

  pattern可以是%或者_,
  如果是%则表示任意多字符,此例如唐僧,唐国强
  如果是_则表示一个字符唐_,只有唐僧符合。两个_则表示两个字符:__

在多个条件直接可以使用逻辑运算符 and or not

29、select语句使用Order by 指定排序的列,排序的列即可是表中的列名,也可以是select 语句后指定的别名。
select *|field1,field2… from tab_name order by field [Asc|Desc]
Asc 升序、Desc 降序,其中asc为默认值 ORDER BY 子句应位于SELECT语句的结尾。

30、使用正则表达式查询,例:
select * from order_menu where product_name regexp “香蕉$”;

31、Mysql在执行sql语句时的执行顺序:from  where  select  group by  having  order by  limit
having和where作用相同,只是执行顺序不同。
分析:
select JS as JS成绩 from ExamResult where JS成绩 >70; ---- 不成功
select JS as JS成绩 from ExamResult having JS成绩 >90; — 成功

32、group by 分组查询:
select * from order_menu group by 4,5;
以第4和5列为基准分组,相同的合并,只显示每组的第一行。也可以写字段名:
select * from order_menu group by born_date,class;
注:禁用 ONLY_FULL_GROUP_BY 模式:SET sql_mode = ‘’;

33、使用聚合函数,例:
select class,sum(price) from order_menu group by class;

  count(列名):统计行的个数。注意:count(*)统计所有行,而 count(字段)用来统计某一列中非 NULL 的行数。

  SUM(列名):统计满足条件的行的内容和

  AVG(列名):会计算列中所有非 NULL 值的平均值

  Max()、Min():最大、最小值

34、加having过滤行
select class,sum(price) from order_menu group by class having sum(price)>200;

35、ifnull(price,0):如果price的值为null,则设置为0
select class,min(ifnull(price,0)) from order_menu group by class;

36、limit:显示行数
select * from order_menu limit 3; 显示前3行
select * from order_menu limit 3,3; 跳过前3行,显示接下来的3行。

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

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

相关文章

爬虫-------字体反爬

目录 一、了解什么是字体加密 二. 定位字体位置 三. python处理字体 1. 工具库 2. 字体读取 3. 处理字体 案例1:起点 案例2:字符偏移: 5请求数据 - 发现偏移量 5.4 多套字体替换 套用模板 版本1 版本2 四.项目实战 1. 采集目标 2. 逆向结果 一、了解什么是…

数据分析:宏基因组DESeq2差异分析筛选差异物种

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理:计算步骤:结果:加载R包准备画图主题数据链接导入数据Differential abundance (No BP vs 2BP TA)构建`countData`矩阵过滤低丰度物种构建DESeq数据对象DESeq2差异分析画图Di…

【手撕排序2】快速排序

&#x1f343; 如果觉得本系列文章内容还不错&#xff0c;欢迎订阅&#x1f6a9; &#x1f38a;个人主页:小编的个人主页 &#x1f380; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 ✌️ &#x1f91e; &#x1f91f; &#x1f918; &#x1f919; &#x1f448; &…

OpenCV自学系列(1)——简介和GUI特征操作

与另一个计算机视觉系列相对应&#xff0c;本系列主要探索OpenCV的具体操作。 学习资源&#xff1a;官网教程 https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.htmlhttps://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html 所有源码均上传至仓库&#xff1a; http…

KION Group EDI 需求分析

梳理EDI需求资料 KION Group将EDI项目中需要的资料公开在其官网上&#xff0c;企业可以点击在 KION Group 官网下载 EDI需求资料 企业可以在以上网址中获取到如下资料&#xff1a; 1.KION Group EDI团队的联系信息以及EDI连接信息 KION Group EDI团队支持7*24小时的支持&am…

OpenDroneMap Webodm

OpenDroneMap & Webodm OpenDroneMap Webodm 开源无人机航拍系列图像及其它系列图像三维重建软件。很棒的开源无人机测绘软件OpenDroneMap,从航拍图像生成精确的地图、高程模型、3D 模型和点云。 应用领域 Mapping & Surveying 测绘和测量 从图像测量获得高精度的可…

计算机网络——网络层导论

转发是局部功能——数据平面 路由是全局的功能——控制平面 网卡 网卡&#xff0c;也称为网络适配器&#xff0c;是计算机硬件中的一种设备&#xff0c;主要负责在计算机和网络之间进行数据传输。 一、主要功能 1、数据传输&#xff1a; 发送数据时&#xff0c;网卡将计算机…

从0开始深度学习(26)——汇聚层/池化层

池化层通过减少特征图的尺寸来降低计算量和参数数量&#xff0c;同时增加模型的平移不变性和鲁棒性。汇聚层的主要优点之一是减轻卷积层对位置的过度敏感。 1 最大汇聚层、平均汇聚层 汇聚层和卷积核一样&#xff0c;是在输入图片上进行滑动计算&#xff0c;但是不同于卷积层的…

深度学习笔记10-多分类

多分类和softmax回归 在多分类问题中&#xff0c;一个样本会被划分到三个或更多的类别中&#xff0c;可以使用多个二分类模型或一个多分类模型&#xff0c;这两种方式解决多分类问题。 1.基于二分类模型的多分类 直接基于二分类模型解决多分类任务&#xff0c;对于多分类中的每…

接口测试面试题及答案(后续)

一、你们什么时候测试接口 一般有需求就会做&#xff0c;后台的接口开发好&#xff0c;就可以开始测。例外&#xff0c;如果增加了新需求&#xff0c;也要做接口测试&#xff0c;还有就是开发对后台的接口做了修改&#xff0c;交互逻辑发生变化&#xff0c;我们也要重新对接口…

【SpringCloud】Nacos微服务注册中心

微服务的注册中心 注册中心可以说是微服务架构中的"通讯录"&#xff0c;它记录了服务和服务地址的映射关系 。在分布式架构中&#xff0c; 服务会注册到这里&#xff0c;当服务需要调⽤其它服务时&#xff0c;就从这里找到服务的地址&#xff0c;进行调用。 注册中心…

服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有一组由4块SAS硬盘组建的RAID5阵列&#xff0c;上层安装linux操作系统统。分区结构&#xff1a;boot分区LVM卷swap分区&#xff08;按照顺序&#xff09;&#xff0c;LVM卷中划分了一个reiserfs文件系统作为根分区。 服务器故障…

Linux下的WatchDog

看门狗&#x1f415; 看门狗简介 看门狗定时器&#xff08;Watchdog Timer&#xff09;是一种定时器&#xff0c;用于检测系统是否正常运行。如果系统在规定时间内没有向看门狗定时器发送复位信号&#xff0c;看门狗定时器就会产生复位信号&#xff0c;使系统复位。看门狗定时…

机器学习(五)——支持向量机SVM(支持向量、间隔、正则化参数C、误差容忍度ε、核函数、软间隔、SVR、回归分类源码)

目录 关于1 间隔与支持向量2 对偶问题3 核函数4 软间隔与正则化5 支持向量回归6 核方法X 案例代码X.1 分类任务X.1.1 源码X.1.2 数据集&#xff08;鸢尾花数据集&#xff09;X.1.3 模型效果 X.2 回归任务X.2.1 源码X.2.2 数据集&#xff08;加州房价数据&#xff09;X.2.3 模型…

25国考照片处理器使用流程图解❗

1、打开“国家公务员局”网站&#xff0c;进入2025公务员专题&#xff0c;找到考生考务入口 2、点击下载地址 3、这几个下载链接都可以 4、下载压缩包 5、解压后先看“使用说明”&#xff0c;再找到“照片处理工具”双击。 6、双击后会进入这样的界面&#xff0c;点击&…

几个docker可用的镜像源

几个docker可用的镜像源 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; sudo rm -rf /etc/docker/daemon.json sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://d…

Vue 项目中为何选择 TSX 而非传统 .vue 文件

近年来&#xff0c;Vue 项目中使用 TSX&#xff08;TypeScript JSX&#xff09;的写法逐渐增多&#xff0c;尤其在 TypeScript 项目中。 1. TSX 与 Vue 的结合背景 1、Vue 3 和 TypeScript Vue 3 从设计之初便更好地支持 TypeScript。Vue 3 使用了 TypeScript 重写核心&…

【SpringBoot】18 上传文件到数据库(Thymeleaf + MySQL)

Git仓库 https://gitee.com/Lin_DH/system 介绍 使用 Thymeleaf 写的页面&#xff0c;将&#xff08;txt、jpg、png&#xff09;格式文件上传到 MySQL 数据库中。 依赖 pom.xml <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --><depende…

[VUE]框架网页开发1 本地开发环境安装

前言 其实你不要看我的文章比较长&#xff0c;但是他就是很长&#xff01;步骤其实很简单&#xff0c;主要是为新手加了很多解释&#xff01; 步骤一&#xff1a;下载并安装 Node.js 访问 Node.js 官网&#xff1a; Node.js — Download Node.js 下载 Windows 64 位版本&…

canal1.1.7使用canal-adapter进行mysql同步数据

重要的事情说前面&#xff0c;canal1.1.8需要jdk11以上&#xff0c;大家自行选择&#xff0c;我这由于项目原因只能使用1.1.7兼容版的 文章参考地址&#xff1a; canal 使用详解_canal使用-CSDN博客 使用canal.deployer-1.1.7和canal.adapter-1.1.7实现mysql数据同步_mysql更…