MySQL基本操作

一、理解数据库系统

数据库系统(Database system)= 数据库管理系统(DBMS,Database Management System)+ 数据库(DB,Database)

  • 数据库(DB):即仓库,存储了一系列有组织的数据。
  • 数据库管理系统(DBMS):数据库是由DBMS创建和操作的容器

其中数据库管理系统(DBMS)可分为两类:

  1. 基于共享文件系统的DBMS,包括Microsoft Access 和FileMaker等,用于桌面用途,通常不用于高端或更关键的应用;
  2. 基于客户机-服务器的DBMS,包括MYSQL、Oracle以及Microsoft SQL Server等。

数据库基本构成(根据后端课程PPT整理):

  1. 一个数据库包含众多的表,在每个表中存放数据,且每个表都有自己的名字,表名具有唯一性
  2. 表中具有一些特性,这些特性定义数据如何在表中存储,类似Java中的“”。
  3. 表由一个或多个列组成(我们也成为字段),类似Java中的“属性”。
  4. 表中的数据是按行存储的,每一行类似Java中的“对象”。

具体实现为:

nameageworksalary
Sharon20Student0
Jack30programmer30,000

二、MySQL

(一)简介

由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL是一个多用户、多线程的关系型数据库管理系统。 工作模式是基于客户机/服务器结构。目前它可以支持几乎所有的操作系统,同时也可以和php完美结合。
简单的来说 ,MySql是一个开放的、快速的、多线程的、多用户的SQL数据库服务器。

(二)MySQL语法规范
  1. 不区分大小写
  2. 每句话用 ;\g 结尾
  3. 各子句一般分行
  4. 关键字不能缩写也不能分行
  5. 缩进提高语句的可读性
(三)简单操作
  1. 查询现有的数据库:
show databases;
  1. 新建数据库:
create database 数据库名称;
// 可通过show databases;查询数据库是否建立成功
  1. 进入数据库并进行简单操作:
use 数据库名称;
//我们可以顺便查询一下该数据库下的表
show tables;      
  1. 在数据库中创建表:
use 数据库名称;
create table 表名(
//列名 字符格式 约束
);
  1. 查看或删除表:
//查询表的结构
desc 表名;
//删除表 			
drop table 表名;    
  1. 插入一条数据或是多条数据:
insert into 表名 (想要插入数据的列) values (数据,中间用 , 隔开);
  1. 插入多条数据:
insert into 表名 (想要插入数据的列) values (数据,中间用 , 隔开)(数据)(数据),……;
  1. 通过具体实例感受创建表及数据的过程:
//引入数据库
use myjoiner;
//创建表
create table student(
 id varchar(30),
 age int,
 name varchar(30),
 birthday date);
 //插入一条数据
insert into student(id,age,name,birthday) value(100,20,'Sharon','20010409');
//插入多条数据,注意此处我未插入id的值
insert into student(id,age,name,birthday) values(21,'Jack','20000503')(20,'Branda','20010317'),(19,'Mary','20020709');
(四)更多操作…

在这里插入图片描述
该图是对上述实例的实现(此处后三个id为NULL),以下语句将根据该表student进行操作。

  1. 选择全部列的数据
SELECT * From student;
  1. 选择特定的列
SELECT age,name From student;
  1. 查询某范围
SELECT name From student WHERE age>=20 OR id>=103;
  1. 模糊查询
//搜索以S开头的name
SELECT name From student WHERE name LIKE 'S%';	

更多用法请点击此处:mysql中like的用法

  1. 对数据排序
//从小到大排列
SELECT * From student ORDER BY age ASC;	
//从大到小排列
SELECT * From student ORDER BY age DESC;	
	//如果没有ASC和DESC就默认是从小到大,且空值最小
//在对id进行排列的基础上,再考虑age的顺序
SELECT * From student ORDER BY id,age;	
  1. AVG,MAX,MIN及SUM函数
//可以得到age的平均值,最小值,最大值以及四位同学的总和
SELECT AVG(age),MAX(age),MIN(age),SUM(age) From student;	
  1. 计算某一数值出现的次数
//计算age=20的次数,对于此表student则返回2
SELECT count(*) From student WHERE age=20;	
  1. 分组函数
//返回的是age列:20,21,19;即将相同的值归到一组
SELECT age From student GROUP BY age;	
  1. 过滤分组:HAVING
    HAVING类似于WHERE,但是不同点在于:WHERE在聚合前先筛选记录,也就是说作用在GROUP BY和HAVING前,而 HAVING子句在聚合后对组记录进行筛选。 例如:
SELECT name From student WHERE age>=20;
SELECT id,age From student GROUP BY id HAVING age>=20;

更多讲解请点击此处:mysql having的用法

  1. 多表间的查询(在此不提供表的具体内容)
//进行两个表间的不同列或范围的选择
SELECT name,age From table1 WHERE name='Sharon';
UNION
SELECT id,name,birthday From table2 WHERE id=102;
//进行两个表间相同列或范围的选择.如果表中列名相同,需要加‘table1.' 'table2.' 前缀(即表名前缀) ,如果列名不相同,则不需要前缀
SELECT table1.id,table2.name,birthday From table1,table2;
  1. 有关JOIN在此不做更多详述啦,奉上一篇超喜欢的博客 mysql的几种join
  2. 使用ON判断范围
    HAVING类似于WHERE,但是不同点在于:ON在JOIN后判断范围。例如:
SELECT age,name From table1 JOIN table2 ON table1.age=table2.age;
  1. 3种分页查询方法
  • limit m,n查询
//查询第m+1至m+n页,若m=0则可省略m
SELECT * From table1 limit m,n;		
  • limit m查询
//查询第m+1页至第n页
SELECT * From dept WHERE deptno>m ORDER BY deptno asc limit n;	
//查询第m-n页至第m-1页
SELECT * From dept WHERE deptno<m ORDER BY deptno desc limit n;	 
  1. 子查询,即SELECT的嵌套
SELECT name From table1 where age in (
		SELECT age From table2 WHERE id=100);
  1. insert的子插入(无需values)
//插入某几行列
insert into table1(id,name,age)
SELECT id,table2_name,age From table2;
//插入所有列
insert into table1
SELECT * From table2 WHERE age>==20;
  1. 更新数据
UPDATE student SET age=30 WHERE name='Sharon';
  1. 删除数据
//若无WHERE,则删除表中所有数据
DELETE From student WHERE name='Sharon';	

暂时就先写这么多叭。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值