MySQL概述及入门(一)
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、join和union等
外部查询必须是以下语句之一: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概述及入门(一)的更多相关文章
- MySql概述及入门(五)
MySql概述及入门(五) MySQL集群搭建之读写分离 读写分离的理解 为解决单数据库节点在高并发.高压力情况下出现的性能瓶颈问题,读写分离的特性包括会话不开启事务,读语句直接发送到 salve 执 ...
- MySQL概述及入门(四)
MySql概述及入门(四) 什么是MySQL的锁? 数据库锁定机制,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则,简单说,就是不让别人动 总的来说,MySQL各 ...
- MySQL概述及入门(三)
MySql概述及入门(三) MySQL性能优化 主要优化安全和性能方面 安全方面 : 数据可持续性 性能方面 : 数据的高性能访问 性能优化——慢查询 在MySQL数据库中有一个慢查询日志功能,去获取 ...
- MySQL概述及入门(二)
MySql概述及入门(二) MySQL架构 逻辑架构图: 执行流程图: MySQL的存储引擎 查询数据库支持的存储引擎 执行: show engines: 多存储引擎是mysql有别于其他数据库的一大 ...
- MySQL数据库快速入门与应用实战(阶段一)
MySQL数据库快速入门与应用实战(阶段一) 作者 刘畅 时间 2020-09-02 实验环境说明: 系统:centos7.5 主机名 ip 配置 slavenode3 172.16.1.123 4核 ...
- MySQL数据库从入门到放弃(目录)
目录 MySQL数据库从入门到放弃 推荐阅读 MySQL数据库从入门到放弃 193 数据库基础 194 初识MySQL 195 Windows安装MySQL 196 Linux安装MySQL 197 ...
- 2. Mysql数据库的入门知识
2. Mysql数据库的入门知识 (1)打开Windows系统提供的服务查看相应的服务. (2)在Windows任务管理器的进程中查看 (3)使用命令行管理windows的Mysql数据库服务. Ne ...
- mysql之SQL入门与提升(二)
在mysql之SQL入门与提升(一)我们已经有了些许基础,今天继续深化 先造表 SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0; -- -------------- ...
- MySQL 概述和基础
# MySQL 概述 什么是数据库 存储数据的仓库 都有哪些公司在用数据库 金融机构.游戏网站.购物网站.论坛网站-- 提供数据库服务的软件 MySQL.Oracle.SQL Server.DB2.M ...
随机推荐
- Leetcode | 刷题日记(1)
本文记录个人刷题记录 推荐两个刷题网站: 地址:https://leetcode.com/ 另外一个地址:http://www.lintcode.com/ 1.Write a SQL query to ...
- 【大白话系列】MySQL 学习总结 之 初步了解 MySQL 的架构设计
一.MySQL还是个黑盒子 我们都知道,只要我们系统引入了 MySQL 驱动和连接池,就能从数据库连接池获取一个数据库连接,然后就可以执行增删改查的操作了. 可是我们并不知道 MySQL 里面是怎么执 ...
- 一个支持高网络吞吐量、基于机器性能评分的TCP负载均衡器gobalan
一个支持高网络吞吐量.基于机器性能评分的TCP负载均衡器gobalan 作者最近用golang实现了一个TCP负载均衡器,灵感来自grpc.几个主要的特性就是: 支持高网络吞吐量 实现了基于机器性能评 ...
- JSP&Servlet学习笔记----第6章
JSP与Servlet是一体两面的关系. JSP最终还是被编译为Servlet. <%@page contentType="text/html;charset=UTF-8" ...
- Codeforces_456_A
http://codeforces.com/problemset/problem/456/A 按价格排序,比较质量. #include<cstdio> #include<algori ...
- DOCKER 学习笔记9 Kubernetes (K8s) 生产级容器编排 上
前言 在上一节的学习中.我们已经可以通过最基本的 Docker Swarm 创建集群,然后在集群里面加入我们需要运行的任务 以及任务的数量 这样我们就创建了一个服务. 当然,这样的方式在我们本地虚拟机 ...
- awk命令入门
什么是awk? AWK是一个强大的文本处理工具.可以使用awk读取输入文件.为数据排序.处理数据.对输入执行计算以及生成报表,还有无数其他的功能. 使用awk的基本格式 awk [options] ‘ ...
- mIoU混淆矩阵生成函数代码详解
代码参考博客原文: https://blog.csdn.net/jiongnima/article/details/84750819 在原文和原文的引用里,找到了关于mIoU详尽的解释.这里重点解析 ...
- Part2-求AX=b的最优解
自己一边听课一边记得,参考网上广为流传的那本<MIT线性代数笔记>,转成Latex上传太麻烦,直接截图上传了,需要电子版的可以私信我.
- C#开源组件DocX处理Word文档基本操作(一)
C#中处理Word文档,是大部分程序猿绕不过的一道门.小公司或一般人员会选择使用开源组件.目前网络上出现的帖子,大部分是NPOI与DocX,其它的也有.不啰嗦了,将要使用DocX的基本方法贴出来,供参 ...