MySql概述及入门(一)


什么是MySQL?

    MySQL是当今主流的关系型数据库管理系统(记录是有行有列的数据库) , 可以与Oracle 和SQL Server 竞争 , 是最好RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一 ,主要使用5.5左右版本, MySQL、Oracle 等并不是数据库,只是管理数据库系统的软件(数据库就是存储数据的仓库,本质是一个文件系统,用户通过SQL进行增删查改) 。

为什么使用MySQL?

  因其体积小、支持多处理器、支持多种操作系统、提供多种API接口、支持多种开发语言、安装及维护成本低、开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高。

数据库和表的关系

数据库是一组数据的集合,可以包括很多张表,相当于家和家人的关系

用户通过数据库管理系统访问数据库中表内的数据。(记录)

MySQL安装

使用linux安装MySQL

rpm命令使用 : rpm -ivh   gcc-c++-4.4.7-3.el6.x86_64.rpm

常用参数:

i:安装应用程序    :(install)

e:卸载应用程序   :(erase)

vh:显示安装进度 :(verbose hash)

U:升级软件包      :(update)

qa: 显示所有已安装软件包(query all),结合grep命令使用    

示例: # rpm -qa|grep mysql  

查看是否已有MySQL软件 :  rpm -qa|grep mysql 

卸载My SQL :      yum remove mysql mysql-server mysql-libs mysql-common

rm -rf /var/lib/mysql

  rm /etc/my.cnf

删除mysql的数据库:    /var/lib/mysql

使用yum 安装mysql,要使用mysql的yum仓库,从官网下载适合自己系统的仓库  http://dev.mysql.com/downloads/repo/yum/

5.6版本 : mysql-community-release-el6-5.noarch.rpm   

   

使用命令  yum localinstall mysql-community-release-el6-5.noarch.rpm  将  mysql-community-release-el6-5.noarch.rpm 上传到linux系统。

安装 : yum install mysql-community-server

启动MySQL :  service mysqld start    

为root用户设置密码 : /usr/bin/mysqladmin -u root password 'new-password'

远程连接授权 : mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;    //'myuser'、'mypassword' 需要替换成实际的用户名和密码。

设置表名大小写不敏感 : 在/etc/my.cnf 中的[mysqld]  后添加   lower_case_table_names=1  然后重启MySQL服务 ,  默认0区分大小写,1不区分

重启MySQL :  service mysqld restart

    

cmd中文乱码

修改my.ini文件,然后重启mysql服务器

SQL语句

    SQL语句全称Structured Query Language , 简称SQL,是结构化查询语言 ,SQL用于创建,插入,更新和修改数据,分为DDL(定义),DML(操作),DCL(控制),DQL(查询)。

      DDL(定义): 创建数据库 CREATE DATABASE database-name , 删除数据库 drop database dbname ……

      DML(操作):   insert into table(name,age) values(value1,value2)...  delete、update

      DCL(控制):grant 权限 on 数据库.表 to 用户名@'主机名'
identified by '密码';

      DQL(查询): select *
from table1……

    

排序语法关键字:  ORDER BY ,  ASC(升序) DESC(降序)  示例: select * from student where sname like '%陈%'
order by sid desc;(按学生ID降序排序)

聚合函数(只对单列进行操作) :                                

sum():求某一列的和                             

avg():求某一列的平均值                             

max():求某一列的最大值

min():求某一列的最小值

count():求某一列的元素个数

示例: 

select sum(price) from product(求总和)

select count(*)from product (求总次数) 

分组:  GROUP BY   HAVING   

示例:select cid,avg(price) from product group by
cid  having avg(price)>60;
      //分组统计每组商品的平均价格,并且平均价格> 60

 

UNION 和 UNIONALL操作符

WHERE条件执行顺序(影响性能)

MYSQL:从左往右去执行WHERE条件的。

Oracle:从右往左去执行WHERE条件的。

结论 :  写WHERE条件的时候,优先级高的部分要去编写过滤力度最大的条件语句

表与表之间的关系

  一对一(一夫一妻制度)、一对多(一个班级和多个学生)、多对多(多个学生和多个老师)、多对一(多个员工和一个部门)

  示例:

多表联查

关键词

    CROSS JOIN(交叉连接)    显示交叉连接 :SELECT  *  FROM  A  CROSS  JOIN 
B    隐式交叉连接:  SELECT      
*   FROM   A, B

    INNER JOIN(内连接或等值连接) 显式内连接:  SELECT  *  FROM  A  INNER JOIN 
B ON A.id = B.id     隐式内连接
: SELECT       *  FROM  A,B 
WHERE    A.id = B.id

    OUTER JOIN(外连接)       左外连接:  SELECT  *  FROM  A  LEFT 
JOIN
  B ON A.id = B.id

                    右外连接: SELECT  *  FROM  A  RIGHT  JOIN 
B ON A.id = B.id    左查询以左表为主表,右查询则右表为主表

                    外连接需要有主表或保留表的概念   

分页

关键词 : LIMIT (MySQL独有的语法) ,通过Limit关键字,MySQL实现了物理分页。

示例 :  SELECT * FROM table LIMIT  (PageIndex-1)*PageSize,PageSize;    (PageIndex:当前页数,PageSize:显示总数量)

物理分页: 通过LIMIT关键字,直接在数据库中进行分页,最终返回的数据,只是分页后的数据

逻辑分页: 将数据库中的数据查询到内存之后再进行分页

子查询

    子查询允许把一个查询嵌套在另一个查询当中

    在select子查询中可以包括的任何子句,比如:distinct、 group by、order by、limit、joinunion

    外部查询必须是以下语句之一:select、insert、update、delete

    示例:

    SELECT id, (select name from test t1 where t.id = t1.id ) from test t;    (这种子查询在列中只能返回一个结果)

    SELECT t.* from (select * trom test) t ;

    SELECT * from test where id IN (select id from test) ;

MySQL概述及入门(一)的更多相关文章

  1. MySql概述及入门(五)

    MySql概述及入门(五) MySQL集群搭建之读写分离 读写分离的理解 为解决单数据库节点在高并发.高压力情况下出现的性能瓶颈问题,读写分离的特性包括会话不开启事务,读语句直接发送到 salve 执 ...

  2. MySQL概述及入门(四)

    MySql概述及入门(四) 什么是MySQL的锁? 数据库锁定机制,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则,简单说,就是不让别人动 总的来说,MySQL各 ...

  3. MySQL概述及入门(三)

    MySql概述及入门(三) MySQL性能优化 主要优化安全和性能方面 安全方面 : 数据可持续性 性能方面 : 数据的高性能访问 性能优化——慢查询 在MySQL数据库中有一个慢查询日志功能,去获取 ...

  4. MySQL概述及入门(二)

    MySql概述及入门(二) MySQL架构 逻辑架构图: 执行流程图: MySQL的存储引擎 查询数据库支持的存储引擎 执行: show engines: 多存储引擎是mysql有别于其他数据库的一大 ...

  5. MySQL数据库快速入门与应用实战(阶段一)

    MySQL数据库快速入门与应用实战(阶段一) 作者 刘畅 时间 2020-09-02 实验环境说明: 系统:centos7.5 主机名 ip 配置 slavenode3 172.16.1.123 4核 ...

  6. MySQL数据库从入门到放弃(目录)

    目录 MySQL数据库从入门到放弃 推荐阅读 MySQL数据库从入门到放弃 193 数据库基础 194 初识MySQL 195 Windows安装MySQL 196 Linux安装MySQL 197 ...

  7. 2. Mysql数据库的入门知识

    2. Mysql数据库的入门知识 (1)打开Windows系统提供的服务查看相应的服务. (2)在Windows任务管理器的进程中查看 (3)使用命令行管理windows的Mysql数据库服务. Ne ...

  8. mysql之SQL入门与提升(二)

    在mysql之SQL入门与提升(一)我们已经有了些许基础,今天继续深化 先造表 SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0; -- -------------- ...

  9. MySQL 概述和基础

    # MySQL 概述 什么是数据库 存储数据的仓库 都有哪些公司在用数据库 金融机构.游戏网站.购物网站.论坛网站-- 提供数据库服务的软件 MySQL.Oracle.SQL Server.DB2.M ...

随机推荐

  1. 互联网那些事 | MQ数据丢失

    本系列故事的所有案例和解决方案只是笔者以前在互联网工作期间的一些事例,仅供大家参考,实际操作应该根据业务和项目情况设计,欢迎大家留言提出宝贵的意见 背景 小王和小明分别维护分布式系统中A.b两个服务, ...

  2. CSS-- 实用CSS样式

    自用实用CSS样式 1.清除DIV浮动 <span style="font-family:KaiTi_GB2312;">clear: both;</span> ...

  3. vue 新建脚手架项目npm命令

    使用国外原镜像 npm install -g @vue/cli   //yarn global add @vue/cli            使用淘宝镜像 cnpm install -g @vue/ ...

  4. Java并发读书笔记:JMM与重排序

    目录 Java内存模型(JMM) JMM抽象结构 重排序 源码->最终指令序列 编译器重排序 处理器重排序 数据依赖性 as-if-serial happens-before happens-b ...

  5. 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...

  6. java设计模式3——建造者模式

    java设计模式3--建造者模式 1.建造者模式介绍: 建造者模式属于创建型模式,他提供了一种创建对象得最佳方式 定义: 将一个复杂对象的构建和与它的表示分离,使得同样的构建过程可以创建不同的表示 主 ...

  7. Markdown 教程

    Markdown 简介 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档. Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建. ...

  8. SpringBoot学习笔记 文件访问映射

    通过SpringBoot可以把磁盘内所有的文件都访问到 有一张图片存放在 E://images/acti/123.jpg import org.springframework.context.anno ...

  9. 在CentOS8 上安装Python3

    从centos开始入手学习linux.感觉安装python很费劲,之前centos6因为python2和python3兼容的问题一直无法彻底解决,python3一旦安装影响到python2,cento ...

  10. dubbo-admin dubbo-monitor 安装

    dubbo-admin: 因为我们不能直观的看到dubbo和zk上到底有什么服务(提供者),所以我们需要一个可视化工具来方便我们管理每一个服务和每一个节点.dubbo-admin 就是dubbo的管理 ...