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. static静态变量在c++类中的应用实例

    这个static 如果写在类中,那么就可以得到一个局部的静态变量,也就是说可以实现在类内保存某个特殊值不随函数释放而消失的作用.应用中由于赋初值的位置不对而报错,错误提示为:“无法解析外部符号 ... ...

  2. 安卓开发实战-记账本APP(三)

    本次实现的是有关登录,注册和整体页面的改观,实现下方选项导致页面的切换效果. 利用到的技术有Sqlite数据库的增删改查,与fragment实现.由于暂时没有找到合适的图标,先借用微信的图标暂代一下. ...

  3. DOCKER 学习笔记5 Springboot+nginx+mysql 容器编排

    前言 在上节的内容中,我们已经通过一个简单的实例,将Docker-compose 进行了实际的应用.这一小节中.我们将通过学习和了解,着重认识容器的编排,上一节只算是一个小小的测试.在这一节中.我们将 ...

  4. 分享数百个 HT 工业互联网 2D 3D 可视化应用案例之 2019 篇

    继<分享数百个 HT 工业互联网 2D 3D 可视化应用案例>2018 篇,图扑软件定义 2018 为国内工业互联网可视化的元年后,2019 年里我们与各行业客户进行了更深度合作,拓展了H ...

  5. ROS机器人之动作(一)

    前面我们探讨了ros的两种通信方式,话题和服务,服务机制常用于同步的请求/响应交互方式. 话题则是单工通信,尤其是接收方有多时(比如传感器数据流),然而,当需要完成的任务比较复杂时, 服务和话题都不是 ...

  6. Codeforces_733_C

    http://codeforces.com/problemset/problem/733/C 从后往前一个个b对应一组组a. #include<iostream> #include< ...

  7. 小白学 Python 数据分析(3):Pandas (二)数据结构 Series

    在家为国家做贡献太无聊,不如跟我一起学点 Python 顺便问一下,你们都喜欢什么什么样的文章封面图,老用这一张感觉有点丑 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析( ...

  8. LeetCode#26 | Remove Duplicates from Sorted Array 删除有序数组中的重复元素

    一.题目 Description Given a sorted array, remove the duplicates in-place such that each element appear ...

  9. vue学习(一)项目搭建

    首先需要配置node和npm,如果没有安装的话,百度一下安装教程. 如果感觉npm下载速度慢,可以使用淘宝镜像cnpm,链接地址: http://npm.taobao.org/ 安装cnpm npm ...

  10. qt creator源码全方面分析(2-5)

    目录 Creating Wizards in Code 介绍 相关类 IWizardFactory的设置器和获取器 Creating Wizards in Code 介绍 如果基于模板的自定义向导提供 ...