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. Maven 项目无法在Ecplise加进tomcat server

    当把用Maven项目 加进 tomcat server 时,出现 "There are no resources that can be added or removed from the ...

  2. java-zhisji

    1. int indexOf(int ch):用来检查给定的一个字符在当前字符串中第一次出现的下标位置.这里的下标和数组的下标意思相近,0表示该字符串的第1个字符,以此类推.当该字符串中并不     ...

  3. sizeof('a')

    #include <iostream> using namespace std; int main(void) { cout << sizeof('a') << e ...

  4. python函数中的参数类型

    python函数中的参数 动态获取函数的参数 python的函数类型详解

  5. BZOJ 1601 [Usaco2008 Oct]灌水 (建图+mst)

    题意: 300个坑,每个坑能从别的坑引水,或者自己出水,i从j饮水有个代价,每个坑自己饮水也有代价,问让所有坑都有谁的最少代价 思路: 先建一个n的完全图,然后建一个超级汇点,对每个点连w[i],跑m ...

  6. Yandex Big Data Essentials Week1 Unix Command Line Interface Processes managing

    free displays the total amount of free and used memory free [options] top provides a dynamic real-ti ...

  7. NR / 5G - Downlink Carrier Waveform

  8. 【学习笔记】:JavaScript基础知识超详细总结!

    目录 一.JavaScript的实现 二.JavaScript语言的特点 三.JS与HTML如何结合 四.JS中的数据类型 四.JS的原始数据类型 2.JS的引用数据类型 五.JS引用数据类型之函数 ...

  9. 基于SSM开发自行车在线租赁管理系统源码

    开发环境: Windows操作系统开发工具: Myeclipse+Jdk+Tomcat+MYSQL数据库注意:此项目分管理员与普通用户两种角色运行效果图 源码及原文链接:https://javadao ...

  10. 目前最全的Python的就业方向

    Python是一门面向对象的编程语言,编译速度超快,从诞生到现在已经25个年头了.它具有丰富和强大的库,常被称为“胶水语言”,能够把用其他语言编写的各种模块(尤其是C/C++)很轻松地联结在一起.其特 ...