Mysql基础 01 数据与sql

文章目录

  • 一、基本概念
  • 二、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.mzph.cn/bicheng/59816.shtml

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

相关文章

Remix部署智能合约时报错:Gas estimation failed

1、在Remix部署智能合约时报错如下&#xff1a; 2、这时候即使发送交易&#xff0c;也无法部署 3、后来看到有人建议说调整一下GAS LIMIT&#xff0c;调整到30000000也不行&#xff0c;甚至当调整到6000000以后连交易记录都没有了 4、最终解决办法&#xff1a;Remix 和 Ganache…

随机采样之接受拒绝采样

之前提到的逆变换采样&#xff08;Inverse Transform Sampling&#xff09;是一种生成随机样本的方法&#xff0c;它利用累积分布函数&#xff08;CDF&#xff09;的逆函数来生成具有特定分布的随机变量。以下是逆变换采样的缺点&#xff1a; 计算复杂性&#xff1a;对于某些分…

用 Python 爬取淘宝商品价格信息时需要注意什么?

用 Python 爬取淘宝商品价格信息时&#xff0c;需要注意以下方面&#xff1a; 一、法律和道德规范&#xff1a; 遵守法律法规&#xff1a;网络爬虫的行为应在法律允许的范围内进行。未经淘宝平台授权&#xff0c;大规模地爬取其商品价格信息并用于商业盈利等不当用途是违法的…

免费数据集网站

1、DataSearch https://datasetsearch.research.google.comhttp://DataSearch 2、FindData findata-科学数据搜索引擎https://www.findata.cn/ 3、Kaggle Kaggle: Your Machine Learning and Data Science CommunityKaggle is the world’s largest data science community …

在 FPGA 中实现 `tanh` 和 Softplus 函数

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

基于java+SpringBoot+Vue的旅游管理系统设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

【Python TensorFlow】入门到精通

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发&#xff0c;广泛应用于机器学习和深度学习领域。本篇将详细介绍 TensorFlow 的基础知识&#xff0c;并通过一系列示例来帮助读者从入门到精通 TensorFlow 的使用。 1. TensorFlow 简介 1.1 什么是 TensorFlow…

数据库管理-第258期 23ai:Oracle Data Redaction(20241104)

数据库管理258期 2024-11-04 数据库管理-第258期 23ai&#xff1a;Oracle Data Redaction&#xff08;20241104&#xff09;1 简介2 应用场景与有点3 多租户环境4 特性与能力4.1 全数据编校4.2 部分编校4.3 正则表达式编校4.4 随机编校4.5 空值编校4.6 无编校4.7 不同数据类型上…

基于SpringBoot的医药管理系统+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、收银员功能模块&#xff1a;管理员&#xff08;收银员信息管理、药品管理、药品类别、出库信息管理、入口信息。药品库存图表&#xff09;、收银员&#xff08;药品库存图表、会员积分信息等&#xff09;技术选型&#xff1a;SpringBo…

PH热榜 | 2024-11-07

DevNow 是一个精简的开源技术博客项目模版&#xff0c;支持 Vercel 一键部署&#xff0c;支持评论、搜索等功能&#xff0c;欢迎大家体验。 在线预览 1. SWE-Kit 标语&#xff1a;打造你自己的“德文”——一个像软件工程师一样的智能助手&#xff01; 介绍&#xff1a;SWE-K…

(蓝桥杯C/C++)——基础算法(下)

目录 一、时空复杂度 1.时间复杂度 2.空间复杂度 3.分析技巧 4.代码示例 二、递归 1.递归的介绍 2.递归如何实现 3.递归和循环的比较 4.代码示例 三、差分 1.差分的原理和特点 2.差分的实现 3.例题讲解 四、枚举 1.枚举算法介绍 2.解空间的类型 3. 循环枚举解…

echarts功能五 --geo地理组件、VisualMap图例组件

利用geoJson文件生成geo地理组件&#xff0c;如下图所示&#xff1a; 三个颜色区域分别代表了3个区域图层&#xff1b;淡蓝色代表了线条&#xff1b;正中心是geo地理组件&#xff1b;右下角展示图例&#xff0c;是VisualMap视觉映射组件。 共包含以下功能&#xff1a; &#…

WordCloudStudio:AI生成模版为您的文字云创意赋能 !

在信息泛滥的时代&#xff0c;如何有效地将文字内容变成生动的视觉元素&#xff1f;WordCloudStudio为您提供了答案。无论您是市场营销专家、教育工作者、数据分析师&#xff0c;还是创意设计师&#xff0c;WordCloudStudio都能帮助您轻松创建引人注目的文字云。更重要的是&…

25-RVIZ CARLA插件

RVIZ插件(RVIZ plugin)提供了一个基于RVIZ(RVIZ) ROS包的可视化工具。 用RVIZ运行ROS桥接 RVIZ插件需要一个名为ego_vehicle的自车。要查看ROS-bridge使用RVIZ的示例&#xff0c;请在运行CARLA服务器的情况下执行以下命令&#xff1a; 1. 启用RVIZ启动ROS桥接&#xff1a; # …

FP7209单节锂电升压恒流80V,PWM控制调光调色应急电源驱动方案,支持LED开路保护、LED短路保护、开关NMOS过电流保护、过温保护、过热保护

FP7209是针对LED驱动器的升压拓扑开关调节器。它提供了内置的门驱动销&#xff0c;用于驱动外部N-MOSFET。误差放大器的非反相输入端连接到一个0.25V的参考电压。如UVP、OVP、OCP等&#xff0c;保护系统电路有三个功能。LED电流可以通过一个连接到DIM针脚的外部信号来调整。DIM…

JS常用数组方法 reduce filter find forEach

文章目录 reduce应用&#xff1a;数据扁平化 filterfind从数组 [1,2,3,4,5,6] 中找出值为 2 的元素 forEach用于遍历&#xff0c;forEach 方法没有返回值&#xff0c;它总是返回 undefined。 reduce 数组变量名.reduce((sum,value) > { // 向sum变量上累加值 // 一定要retur…

精选报告| 2024年,5份必读的“虚仿教育”行业报告合集

以3D/XR应用为主的虚拟仿真实验教学课程&#xff0c;在教育信息化建设过程中已成为必选的技术方案。通过构建虚拟教育环境&#xff0c;允许学习者在数字空间中进行互动学习&#xff0c;这种方法在基础教育、职业培训、远程教育等关键教育领域已经展现出前所未有的变革潜力&…

Ethernet 系列(8)-- 基础学习::ARP

目录 1. ARP的目的&#xff1a; 1.1 什么是ARP 1.2 什么时候用ARP 2. ARP如何工作&#xff1a; 2.1 主机-主机的直接通信 2.2 主机-路由-主机的间接通信 3. ARP header&#xff1a; 1. ARP的目的&#xff1a; 1.1 什么是ARP: ARP-地址解析协议&#xff0c;是第3层地址&#xff…

uniapp组件实现省市区三级联动选择

1.导入插件 先将uni-data-picker组件导入我们的HBuilder项目中&#xff0c;在DCloud插件市场搜索uni-data-picker 点击下载插件并导入到我们的项目中 2.组件调用 curLocation &#xff1a;获取到的当前位置&#xff08;省市区&#xff09; <uni-data-picker v-slot:defa…

软件分享丨火绒应用商店

【资源分享】 资源名&#xff1a;火绒应用商店 官方网址&#xff1a;点击跳转 火绒应用商店是由火绒安全推出的一款独立软件。它提供了海量的应用程序&#xff0c;涵盖办公、社交、游戏、视频、工具等多种领域和类别&#xff0c;方便用户轻松找到所需的应用并进行一键下载安装…