MySQL入门(一)

1.  MySQL是什么?

MySQL是一个小型的关系型数据库管理系统,开发者为瑞典MySQL AB 公司,在2008年1月16号被sun公司收购,之后又在2009年4月被Oracle公司收购,现属于 Oracle 旗下产品。

MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL被广泛的应用在Internet上的中小型网站中。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

2.  数据库的分类

在实际项目开发中,数据库一共分为两大类:

2.1     关系型数据库

关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。

小型数据库:微软Access

中型数据库:

DB2:IBM公司的数据库产品,收费的。常应用在银行系统中.       在中国的互联网公司,要求去IOE

MySQL:开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL5.5版本之后都是由Oracle发布的版本。

SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。

大型数据库:

Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。

2.2     非关系型数据

非关系型数据库有:Redis、MongoDB

3.  mysql命令行使用

1.      连接mysql

格式: mysql -h主机地址 -u用户名-p用户密码

A.       连接到本地MYSQL

首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,

回车后提示你输密码。 MYSQL的提示符是: mysql> 。(默认root用户没有密码)

B.       连接到远程主机上的MYSQL

假设远程主机的IP为:218.105.110.116,用户名为root,密码为abcd123456。

则键入以下命令:mysql -h218.105.110.116 -u root -p abcd123456;(注:u与root之间可以不用加空格,其它也一样)。

2.      启动mysql服务

net start mysql

3.      停止mysql服务

net stop mysql

4.      查询端口是否冲突

netstat –na | findstr 8080 查看被监听的端口 , findstr用于查找后面的端口是否存在。

5.      退出mysql

quit或者exit退出

6.      修改密码:

格式:mysqladmin -u用户名 -p旧密码 password 新密码

例如给root修改密码:

mysqladmin -u root -p ab12 password djg345

4.  SQL语句

SQL,全称Structured Query Language,简称SQL,中文叫结构化查询语言。

4.1     SQL的分类

Ø  数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等

Ø  数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等

Ø  数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户;关键字:grant等

Ø  数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

4.2     SQL语句的使用

1.     创建MySQL数据库:

create  database  数据库名称;

示例代码:

①    选中localhost,然后切换到SQL编辑器

②    SQL编辑器中输入create database db_20171227;如下图所示:

2.     删除数据库

基本语法:

删除就是不想要了,不想要了就是丢掉,丢掉的单词:drop

drop database  数据库名称;

示例代码:

特别注意:删除数据库是不可逆的,删除之前一定要慎重。

3.     查看数据库

①查看所有数据库

查看的单词:show

查看所有数据库:show  databases;

示例代码:

②显示指定的某类数据库

show databases   like   db%; //查询所有以db开头的所有数据库

普及like模糊查询,有两个关键字需要记住:

_(下划线):代表任一一个字符,可能代表a也可能代表b...

%(百分号):代表任意的n个字符,可能代表ab也可能代表abcd...

4.     创建表

创建数据表的基本语法:

create table  数据表名称(

列名称(英文)  列类型   列约束(not null)

);

示例代码:

5.       删除数据表

丢掉:drop

表:table

删除数据表:drop  table  数据表名称;

6.       修改数据表(数据表的名称)

重命名:rename

rename table  原来的名字 to 新名称;

7.     查看数据表

①查看所有的数据表或某类的数据

show tables  like   ‘_或%’;

②查看数据表的结构

desc  数据表名称;

8.       插入记录:insert

语法:

insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入某些列

insert into 表 values (值1,值2,值3..); --向表中插入所有列

insert into 表 (列名1,列名2,列名3..) values select (列名1,列名2,列名3..) from 表

insert into 表 values select * from 表

9.       更新数据表中的记录

基本语法:

更新:update

update  数据表名称 set  字段(列) = 更新后的值,字段(列) = 更新后的值 where  条件;

10.    从数据表中查询数据

①查询所有数据

查询:select

select *  from   数据表名称;

select  字段(某一列) from  数据表名称;

②根据条件查询数据(多了一个where)

11.    从数据表中删除数据(重点)

基本语法:

删除:delete

delete from 数据表名称  where 条件;

delete from 数据表名称;

truncate 数据表名称;

两者的功能都是删除所有数据,但是truncate删除的数据,其主键(primary key)会重新编号。而delete from删除后的数据,会继续上一次编号。

4.3     CMD中文乱码

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

5.  多表之间的关系

表与表之间的关系,说的就是表与表之间数据的关系。

5.1     一对一关系

在实际工作中,一对一在开发中应用不多,因为一对一完全可以创建成一张表

案例:一个丈夫只能有一个妻子

5.2     一对多关系

案例:一个分类对应多个商品

总结:有外键的就是多的一方

1.     注意事项:

一对多关系和一对一关系的创建很类似,唯一区别就是外键不唯一。

2.     一对多关系创建:

添加外键列

添加外键约束

3.     注意事项:

Ø  需要中间表去完成多对多关系的创建

Ø  多对多关系其实就是两个一对多关系的组合

5.3     多对多关系创建:

Ø  创建中间表,并在其中创建多对多关系中两张表的外键列

Ø  在中间表中添加外键约束

Ø  在中间表中添加联合主键约束

6.  多表关联查询

6.1     交叉连接

交叉连接的关键字:CROSS JOIN

1.     隐式交叉连接

SELECT  *   FROM   A, B

2.     显式交叉连接

SELECT  *  FROM  A  CROSS  JOIN  B

6.2     内连接

内连接的关键字:INNER JOIN

内连接也叫等值连接,内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。

1.     隐式内连接

SELECT  *  FROM  A,B  WHERE      A.id = B.id

2.     显式内连接

SELECT  *  FROM  A  INNER JOIN  B ON A.id = B.id

6.3     外连接

外联接可以是左向外联接、右向外联接或完整外部联接。也就是说外连接又分为:左外连接、右外连接、全外连接

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

在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:

1.     左外连接:LEFT JOIN 或者 LEFT OUTER JOIN

SELECT  *  FROM  A  LEFT  JOIN  B ON A.id = B.id

2.     右外连接::RIGHT JOIN 或者 RIGHT OUTER JOIN

SELECT  *  FROM  A  RIGHT  JOIN  B ON A.id = B.id

3.     全外连接(MySQL不支持):FULL  JOIN 或 FULL OUTER JOIN

SELECT  *  FROM  A  FULL JOIN  B ON A.id = B.id

外连接总结

l  通过业务需求,分析主从表

l  如果使用LEFT JOIN,则主表在它左边

l  如果使用RIGHT JOIN,则主表在它右边

查询结果以主表为主,从表记录匹配不到,则补null

6.4     分页查询

MySQL的分页关键字是:LIMIT

格式:

SELECT * FROM table LIMIT [offset,] rows

6.5     子查询

定义:

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

  子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。

子查询可以包含普通select可以包括的任何子句,比如:distinct、 group by、order by、limit、join和union等;

但是对应的外部查询必须是以下语句之一:select、insert、update、delete。

位置:

select 中、from 后、where 中.

group by 和order by 中无实用意义。

7.  MySQL事务处理

MySQL 事务主要用于处理操作量大,复杂度高的数据。

Ø  在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。

Ø  事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

Ø  事务用来管理DML操作,比如 insert,update,delete 语句

一般来说,事务是必须满足4个条件(ACID):

Ø  Atomicity(原子性)

构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。

Ø  Consistency(稳定性)

数据库在事务执行前后状态都必须是稳定的。

Ø  Isolation(隔离性)

事务之间不会相互影响。

Ø  Durability(可靠性)

事务执行成功后必须全部写入磁盘。

(0)

相关推荐

  • SQL查询优化实践

    为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上,即随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢,且数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计数据库时 ...

  • MySQL(三):多表查询和存储程序

    今天内容: ● 多表查询(内连接   外连接   子查询) ● 存储程序(存储过程   函数) 多表查询 同时从多张数据表中查取到需要的数据即是多表查询. 多表查询时,参与查询的表中每条数据进行组合, ...

  • mysql入门必备

    mysql入门必备

  • 一.MySQL入门基础

    一.MySQL入门基础

  • (8条消息) Mysql入门教程

    Mysql5.5 下载地址 百度 Mysql5.5安装教程 https://blog.csdn.net/ryan_woo/article/details/93710357f2148a81a.html ...

  • MySql 入门到精通-sql查询语句的执行过程,你真的知道吗?

    首先,我们先来看看MySQL的基础架构,我们再平时写的最多的也就是 sql 查询语句,那么,对于一条简单的查询语句,你可否有想过它是如何执行的,期间又经历了哪些步骤呢?如下sql 查询: mysql& ...

  • MySQL入门——Linux下安装后的配置文件

    MySQL入门--Linux下安装后的配置文件 摘要:本文主要了解了在Linux环境下安装MySQL后的配置文件的位置,以及如何创建配置文件. 查看配置文件的加载顺序 找到mysqld的路径 通过wh ...

  • 从入门到入土:MySQL完整学习指南,包教包会!

    一 SQL 介绍 SQL(Structured Query Language),语义是结构化语言, 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统: 二 数据库介绍 2.1 数据库 我们 ...

  • MySQL数据库操作快速入门

    本文适合MySQL初学者快速了解数据库操作中的常用命令.通过一些简单的例子来介绍MySQL中的使用. 数据库的操作 创建数据库(create database) create database tes ...

  • MySQL数据库基础学习教程,MySQL从入门到精通

    MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的 RDBMS:关系数据库管理系统应用软件之一. MySQL体积小.速度快,性能优异,也是目前企业实际开发中最广泛应用的 ...

  • MySQL基础入门使用和命令的使用

    数据库了解 概念 数据库就是一种特殊的文件,其中存储着需要的数据 一个数据库可以有多张表 MySQL是一种关系型数据库 具有关联性数据的就是关系型数据库 MySQL是一种软件可以用来创建mysql数据 ...