返回顶部
首页 > 资讯 > 数据库 >Mysql复习
  • 736
分享到

Mysql复习

Mysql复习 2015-06-04 17:06:18 736人浏览 无得
摘要

切换数据库:USE mydb1; 切换到mydb1数据库 创建数据库:CREATE DATABASE [IF NOT EXISTS]mydb1; 删除数据库:DROP DATABASE[IF EXISTS]mydb1; 修改数据库编

Mysql复习

切换数据库:USE mydb1; 切换到mydb1数据库

创建数据库:CREATE DATABASE [IF NOT EXISTS]mydb1;

删除数据库:DROP DATABASE[IF EXISTS]mydb1;

修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8;

操作表

创建表

CREATE TABLE 表名(

列名 列类型,

列名 列类型,

......

);

查看当前数据库中所有表名称:

SHOW TABLES;

查看指定表的创建语句:

SHOW CREATE TALBE emp,查看emp表的创建语句

查看表结构:

DESC emp,查看emp表结构

删除表:

DROP TABLE emp,删除emp表

查询表中所有数据

SELECT * FROM students

修改表:

添加列:给stu表添加classname列:

ALTER TABLE stu ADD(classname varchar(100));

修改列类型:修改stu表的gender列类型为CHAR(2);

ALTER TABLE stu MODIFY gender CHAR(2);

修改列名:修改stu表的gender列名为sex:

ALTER TALBE stu CHANGE gender sex CAHR(2);

删除列: 删除stu表的classname列:

ALTER TABLE stu DROP classname;

修改表名称:修改stu表名称为student:

ALTER TABLE stu RENAME TO student;


DML(DATA Manipulation Language)

数据操作语言,用来定义数据库记录(数据);
对表的记录进行更新(增、删、改)

插入数据

INSERT INTO 表名(列名1,列名2...) VALUES(值1,值2);

因为没有指定要插入的列,表示按创建表时列的顺序插入所有的列

INSERT TNTO 表名 VALUES(值1,值2...);

注意:所有字符串数据必须使用单引号

修改数据

UPDATA 表名 SET 列名1=值1,... 列名n=值n WHERE 条件

删除数据

DELETE FROM 表名 WHERE 条件

TRUNCATE TALBE 表名

DLETE 效率没有TRUNCATE 高

TRUNCATE先DROP TABLE ,再CREATE TABLE 。而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的


DCL(Data Control Language)

数据控制语言,用来定义访问权限和安全级别;
对用户的创建,及授权

创建用户

CREATE USER 用户名@地址 IDENTIFIED BY "密码";

给用户授权

GRANT 权限1,...,权限n ON 数据库.*TO 用户名

撤销授权

REVOKE 权限1,...,权限n ON 数据库*.FORM 用户名

查看用户权限

SHOW GRANTS FOR 用户名

删除用户

DROP USER 用户名

修改用户密码

USE Mysql;
UPDATE USER SET PASSWord=PASSWORD("密码")WHERE User="用户名" and Host="IP";
FLUSH PRIVILGES;


DQL(Data Query Language)

数据查询语言,用来查询记录(数据)。
对表的记录的查询(难)

要查询的列名称

SELECT selection_list

要查询的表名称

FROM table_list

行条件

WHERE condition

对结果分组

GROUP BY grouping_colums

分组后的行条件

HAVING condition

对结果分组

ORDER BY sorting_colums

结果限定

LIMIT offset_start,row_count

字段控制查询

去除重复记录

SELECT DISTINCT sal FROM emp;

查看雇员的月薪与佣金之和

SELECT *,sal+IFNULL(comm,0)FROM emp

更换列名(换成total)

SELECT *,sal+IFNULL(comm,0) total FROM emp;

聚合函数

用来做纵向运算的函数

COUNT():统计指定列不为NULL的记录函数

查询emp表中记录数

SELECT COUNT(*) AS cnt FROM emp;

查询emp表中有佣金的人数;

SELECT COUNT(comm) cnt FROM emp;

注意,因为count()函数中给出的是comm列,那么只统计count列非NULL的行数

分组查询

查询每个部门的编号以及每个部门的人数

SELECT DEPTNO,COUNT(*) FROM EMP GROUP BY DEPTNO;

查询每个部门的部门编号以及每个部门工资大于1500的人数

SELECT DEPTNO,COUNT(*) FROM EMP WHERE sal>1500 GROUP BY DEPTNO;

HAVING子句

查询工资和大于9000的部门编号以及工资和

SELECT DEPTNO,SUM(sal) FROM emp GROUP BY DEPTNO HAVING SUM(sal) >9000;

LIMIT

LIMIT用来限定查询结果的起始行,以及总行数

查询5行记录,起始行从0开始

SELECT * FROM emp LIMIT 0,5;

注意,起始行从0开始,即第一行开始

查询10行记录,起始行从3开始

SELECT * FROM emp LIMIT 3,10;

分页查询

如果一页记录为10条,希望查看第3页记录应该怎么查呢?

第一页记录起始行为0,一共查询10行;

第二页记录起始行为10,一共查询10行;

第三页记录起始行为20,一共查询10行

第一步分析

要查哪些

条件

---查询组合字段

SELECT

---连表

FROM

---查询条件 WHERE

---分组

GROUP BY

---分组条件

HAVING

---排序

ORDER BY

select top(4) status , max(m.id) as maxMemberID
from [dbo].[Member] as m right outer join [dbo].[Order] as o
on m.id=o.member_id
where m.id>0
group by status
having status>=0
order by maxMemberID asc

第一步,从from开始

1、加载左表

from [dbo].[Member] as m

  • 查询结果:rember表中的所有数据

2、在sql中被定义分解为2个步骤,即join ,right outer join 。表达式关键字从左到右,依次执行。

join [dbo].[Order] as o

  • 查询结果,存入伪表,为两个表的笛卡尔集合

3、on筛选器

on m.id=o.member_id

  • 从上一步的笛卡尔集合35条数据中删除掉不匹配的行,就得到啦5条数据,存入虚拟表Vt2

4、添加外部行(outer row)

right outer join [dbo].[Order] as o

  • 右表(order)作为保留表,把剩余的数据重新添加到上一步的虚拟表中vt2,生成虚拟表vt3.

第二部,进入where 阶段

where m.id>0

  • 查询结果:存入虚拟表vt4,为筛选的条件为true的结果集,这里加入一个记忆点,就是,where的筛选删除为永久的,而on的筛选删除为暂时的,因为on筛选过后,有可能会经过outer添加外部行,重新把数据加载回来,而where则不能。

第三部,group by分组

group by status

  • 查询结果:存入vt5,以status列的数值开始分组,即status列,值一样的分为一组,这里的两个null在三值逻辑中被视为true。三值逻辑:true,false,null。此三值,null为未知,是数据的逻辑特色,有的地方两个null相等为ture,在有些地方则为false。这个你百度下看看有很多讲解。

第四部,having筛选器

having status>=0

  • 查询结果:筛选分好组的组数据,把不满足条件的删除掉

第五步,select 查询挑拣计算列

1、计算表达式

select status , max(m.id)

查询结果:从分过组的数据中计算各个组中的最大m.id,列出要筛选显示的列。

2、distinct过滤重复

3、top 结合order by 筛选 多少行,但这里的数据没有排序只是把多少行数据列出来而已。

第六部,order by 排序显示。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql复习

本文链接: https://lsjlt.com/news/4752.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mysql复习
    切换数据库:USE mydb1; 切换到mydb1数据库 创建数据库:CREATE DATABASE [IF NOT EXISTS]mydb1; 删除数据库:DROP DATABASE[IF EXISTS]mydb1; 修改数据库编...
    99+
    2015-06-04
    Mysql复习
  • MySQL学习笔记(27):备份与恢复
    本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。 目录逻辑备份和恢复物理备份和恢复冷备份和恢复热备份和恢复表数据导入导出 MySQL的备份分为逻辑备份和物理备份,物理备份分为冷备份和热备份...
    99+
    2021-04-04
    MySQL学习笔记(27):备份与恢复
  • mysql 学习笔记之主从复制 Replication
    主从复制 Replication...
    99+
    2024-04-02
  • mysql学习笔记之备份与恢复
    5 .备份恢复 相关关...
    99+
    2024-04-02
  • plsqL复习
    下单超过4次的女顾客的查询语句:SELECT c.customer_id, COUNT(o.order_id) AS orders_ct  FROM customers c  J...
    99+
    2024-04-02
  • MySQL处理重复数据的学习笔记
    MySQL 处理重复数据 有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复...
    99+
    2022-05-16
    MySQL 重复数据
  • 12 Python 复习
    1.      实现1-100的所有的和sum = 0for i in xrange(1, 101):    sum += iprint (sum)2.      实现1-500所有奇数的和sum = 0for i in xrange(1,...
    99+
    2023-01-31
    Python
  • 数据库学习之十二:mysql主从复制
    十二、mysql主从复制 1、主从复制原理 主从复制的前提: 1两台mysql实例(多台物理机,或者多实例) 2主库要开启二进制日志 3主库要提供复制相关用户,replication slave,一个比较特殊的权限。 grant ...
    99+
    2019-12-13
    数据库学习之十二:mysql主从复制
  • 数据库学习之十一:mysql 备份恢复
    十一、mysql 备份恢复 课程大纲 1、备份的原因 2、备份的方式 3、备份的工具 4、mysqldump备份工具的详解 5、mysqldump+mysqlbinlog实现增量备份 6、企业级备份策略及恢复案例 7、...
    99+
    2019-06-08
    数据库学习之十一:mysql 备份恢复
  • 机器学习期末复习题
    1.以下哪项不属于知识发现的过程?( D) A、数据清理 B、数据挖掘 C、知识可视化表达 D、数据测试 2.协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些用户对某一信息的评价,形成系统对该指定用户对此信息的喜...
    99+
    2023-10-09
    python 数据挖掘 开发语言 人工智能
  • python 学习第二周总复习
    目录 数据类型内置方法 数字类型内置方法 整型 浮点型 字符串类型内置方法 列表...
    99+
    2023-01-31
    总复习 python
  • Oracle体系复习
    本文章为学习过程中个人心得和总结,非权威,仅供参考分享    Oracle数据库,目前是主流数据库之一,为什么说是主流数据库之一呢,还有一些主流数据库不过啰嗦(Mys...
    99+
    2024-04-02
  • SQL复习笔记
    Don`t put off till tomorrow what should be , the Review Screnn clean Command:host cls Sys user...
    99+
    2024-04-02
  • python复习笔记
    #python复习笔记<font color=blue>##基础</font><pre>1.下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。 <pre>Microsoft Wind...
    99+
    2023-01-31
    笔记 python
  • Mysql的学习
    数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓库。 3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管...
    99+
    2018-06-07
    Mysql的学习
  • MySQL学习(一)
    引言 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 概念 数据库(Data...
    99+
    2014-10-14
    MySQL学习(一) 数据库入门 数据库基础教程 数据库 mysql
  • MYSQL-mysqldump学习
    mysqldump导出的文件其实是个sql脚本 举例: mysqldump --single-transaction --all-databases > /mysql/mysqldump_201806...
    99+
    2024-04-02
  • 怎样利用MySQL学习MongoDB中的备份和恢复
    这期内容当中小编将会给大家带来有关怎样利用MySQL学习MongoDB中的备份和恢复,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在数据库表丢失或损坏的情况下,备份你...
    99+
    2024-04-02
  • kafka复习:(23)事务
    一、生产者,开启事务。 package com.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;import org.apache.kafka.clients.producer.KafkaProd...
    99+
    2023-08-30
    kafka linq 分布式
  • 数据结构复习
    什么是数据结构?数据结构是抽象数据类型的物理实现抽象数据结构,怎么理解抽象 数据结构 抽象数据类型:对数据类型的描述,这种描述是抽象的,描述1.数据对象集,2.与数据集合关联的操作集 抽象:不依赖于具体实现,只描述是什么,不涉及如何做到 数...
    99+
    2023-08-30
    数据结构
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作