一、MySQL介绍篇

1、数据库概述

什么是数据库

存储数据的仓库,其本质是一个文件系统

什么是关系型数据库

有行有列的数据库就是关系型数据库,与之相反的就是NOSQL数据库

数据库与表关系

mysql 如何查看表在哪个库 mysql怎么查看表_mysql root远程访问权限

数据库管理系统DBMS,是一个大型软件,用于建立,使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的完整性和安全性。

常见的数据库管理系统

Mysql:开源免费的,小型数据库,已经被oracle数据库收购,5.5版本之后都是由oracle发布的版本

Oracle:收费的大型数据库,oracle公司的产品,oracle收购了sun公司之后,收购mysql

DB2:IBM公司的数据库产品,收费的

SqlServer:.net,C#等语言常使用

2、Mysql介绍

MySQL是什么

MySQL 是最流行的【关系型数据库管理系统】,在WEB应用方面 MySQL是最好的RDBMS应用软件之一。

3、SQL介绍

什么是SQL

SQL是Structured Query Language的缩写, 关系型数据库的标准语言

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等

二、MySQL基础篇

MySQL单机安装

操作系统centos7 

Mysql:5.6

MySQL的卸载

查看MySQL软件

rpm -qa|grep mysqlyum repolist all | grep mysqlyum remove -y mysql mysql-libs mysql-common #卸载mysqlrm -rf /var/lib/mysql #删除mysql下的数据文件rm /etc/my.cnf #删除mysql配置文件yum remove -y mysql-community-release-el6-5.noarch #删除组件

查看是否还有 MySQL 软件,有的话继续删除。

安装MySQL

#下载rpm文件wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm#执行rpm源文件rpm -ivh mysql-community-release-el6-5.noarch.rpm#执行安装文件yum install mysql-community-server

#启动MySQL

systemctl start mysqld

设置root用户密码

#为root账号设置密码为 root :/usr/bin/mysqladmin -u root password 'root'#没有密码 有原来的密码则加/usr/bin/mysqladmin -u root -p '123' password 'root'mysql -uroot -proot

登录MySQL

登录命令

mysql -uroot -proot

命令说明:

-u:指定数据库用户名

-p:指定数据库密码,记住-u和登录密码之间没有空格

配置MySQL

vim /etc/my.cnf

修改内容如下:

[mysqld]# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写# 0:大小写敏感 1:大小写不敏感lower_case_table_names=1# 默认字符集character-set-server=utf8

MySQL远程连接授权

授权命令

grant 权限 on 数据库对象 to 用户

示例:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANTOPTION;

FLUSH PRIVILEGES;--刷新权限

命令说明:

ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。

*.* :表示所有库中的所有表

'root'@'%' :myuser是数据库的用户名,%表示是任意ip地址,可以指定具体ip地址。

IDENTIFIED BY 'mypassword' :mypassword是数据库的密码

关闭linux的防火墙

systemctl stop firewalld(默认)

systemctl disable firewalld.service(设置开启不启动)

客户端远程访问

利用navicat可以远程访问MySQL

注:如果连接不上,可以按照以下步骤排错

1、MySQL是否正常启动

[root@localhost ~]# ps -ef | grep mysql

2、查看防火墙是否关闭

[root@localhost ~]# systemctl status firewalldfirewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)Active: inactive (dead)

3、查看root权限为所有ip都可以访问

mysql> show grants for root;+--------------------------------------------------------------------------------------------------------------------------------+| Grants for root@%| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD'*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION |+-----------------------------------------------------------------

4、服务器与客户端是否可以ping通

DDL语句

数据库操作:database

创建数据库

create database 数据库名;

create database 数据库名 character set 字符集;

查看数据库

show databases;

查看某个数据库的定义的信息:

show create database 数据库名;

删除数据库

drop database 数据库名称;

切换数据库:

use 数据库名;

查看正在使用的数据库:

select database();

表操作:table

常见类型有

数字型:int

浮点型:double

字符型:varchar(可变长字符串)

日期类型:date(只有年月日,没有时分秒)

datetime(年月日,时分秒)

创建表

create table 表名(

字段名 类型(长度) 约束,

字段名 类型(长度) 约束

);

单表约束:

- 主键约束:primary key

- 唯一约束:unique

- 非空约束:not null

主键约束 = 唯一约束 + 非空约束

查看表

查看数据库中的所有表:

show tables;

查看表结构:

desc 表名;

删除表

drop table 表名;

修改表

alter table 表名 add 列名 类型(长度) 约束; --修改表添加列.

alter table 表名 modify 列名 类型(长度) 约束; --修改表修改列的类型长度及约束.

alter table 表名 change 旧列名 新列名 类型(长度) 约束; --修改表修改列名.

alter table 表名 drop 列名; --修改表删除列.

rename table 表名 to 新表名; --修改表名

alter table 表名 character set 字符集; --修改表的字符集

删除表中所有记录使用【delete from 表名】,还是用【truncate table 表名】?

- delete :一条一条删除,不清空auto_increment记录数。

- truncate :直接将表删除,重新建表,auto_increment将置为零,从新开始。

分页分为逻辑分页和物理分页:

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

物理分页:通过LIMIT关键字,直接在数据库中进行分页,最终返回的数据,只是分页后的数据。( SELECT * FROM table LIMIT [offset,] rows)

union 集合的并集(不包含重复记录)

unionall 集合的并集(包含重复记录)

mysql 如何查看表在哪个库 mysql怎么查看表_mysql 大小写_02

WHERE条件解析顺序

1. MySQL :从左往右去执行 WHERE 条件的。

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

外连接总结:

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

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

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

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