返回顶部
首页 > 资讯 > 数据库 >mysql入门以及远程访问
  • 563
分享到

mysql入门以及远程访问

摘要

Mysql 数据库的使用 一、mysql 简介 1什么是 Mysql MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数


	mysql入门以及远程访问
[数据库教程]

Mysql 数据库的使用

一、mysql 简介

1什么是 Mysql

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于
oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表
中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2MySQL 特点

MySQL 是开源的,所以你不需要支付额外的费用。
MySQL 支持大型系统的数据库。可以处理拥有上千万条记录的大型数据库。
MySQL 使用标准的 SQL(结构化查询语言) 数据语言形式。
MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、c++
python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
MySQL 存储数据量较大,32 位系统表文件最大可支持 4GB,64 位系统支持最大的
表文件为 8TB。

目前小型系统开发流行的架构(linux,apatche(服务器),php,mysql)

二、MySQL 的安装与卸载

1MySQL 版本说明

MySQL CommUnity Server 社区版本,开源免费,但不提供官方技术支持。
MySQL Enterprise Edition 企业版本,需付费,可以试用 30 天。
MySQL Cluster 集群版,开源免费。可将几个 MySQL Server 封装成一个 Server。
MySQL Cluster CGE 高级集群版,需付费。

2安装 MySQL 8.0
下载地址:https://dev.mysql.com/downloads/installer/
安装依赖
Microsoft Visual C++ 2015下载地址:
Https://www.updatestar.com/zh-cn/directdownload/microsoft-visual-c-2015-Redistributable-package/2249800

三、MySQL 的客户端工具

1MySQL 自带的客户端端工具

四、MySQL 与 Oracle 的区别

1实例区别

MySQL 是轻量型数据库,开源免费。Oracle 是收费的而且价格非常高。
MySQL 安装完后 300M 而 Oracle 有 5G 左右。
MySql是一般可以直接在一个用户root下建多个数据库,再在数据库下建表
Oracle一般先创建一个用户,再给其授权,再在用户下创建数据库表
默认的编码方式是用Latin1(西欧文)

2操作区别

主键: MySQL 一般使用自动增长类型,而 Oracle 则需要使用序列对象。
单引号的处理: MySQL 里字符串可以用双引号包起字符串也可以用单引号,ORACLE 里只可以用单引号包
起字符串。
分页的 SQL 语句: MYSQL 用 limit,而 Oracle 需要使用 rownum 伪列。
事务处理:MySQL 默认是自动提交,而 Oracle 默认不自动提交,需要用户 CTL 语言
进行事务提交。

五、操作 MySQL

1创建与删除数据库

1创建数据库

1.1使用命令创建数据库

create database 数据库名 default character set 字符编码;

创建一个scott的数据库,并查看该数据库,及设置编码。
创建数据库:
create database scott default character set utf8;

查看 当前用户下的所有的库:
show databases;

2删除数据库

1使用命令删除数据库

Drop database 数据库名
drop database scott;
2选择数据库

需要在哪个库中创建表需要先选择该数据库。
use 需要选择的库的名称。
use scott;

3MySQL 中的数据类型

1数值类型(int)

MySQL 支持所有标准 SQL 数值数据类型。
作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT(类似于java中的bigdecimal)。

数值类型中的长度 m 是指显示长度,并不表示存储长度,只有字段指定 zerofill 时有用
例如:
int不需要指定长度.
int(3),如果实际值是 1,如果列指定了 zerofill,查询结果就是 002,左边用 0 来
填充

2浮点型

3字符串型

3.1char 和 varchar

1)char(n) 若存入字符数小于 n,则以空格补于其后,查询之时再将空格去掉。所以 char
类型存储的字符串末尾不能有空格,varchar 不限于此。
2) char 类型的字符串检索速度要比 varchar 类型的快。

4日期类型(date)

5二进制数据(BLOB) 64位中最大单个文件可以存8G

1)BLOB
是以二进制方式存储,不分大小写。
2)BLOB 存储的数据只能整体读出。

4创建表与删除表

1创建表

创建一个表
create table student(
sid int primary key,
sname varchar(20) not null
);
insert into student values(1,‘张三‘);

2删除表

2.1通过 DDL 语句删除表
删除 一个 表
drop table 表名;
drop table student;

MySQL 中的约束

1约束类型

· 非空约束(not null)
· 唯一性约束(unique)
· 主键约束(primary key)
· 外键约束(foreign key) ,只支持表级别定义外键约束
· 检查约束(目前 MySQL 不支持、Oracle 支持)

2创建表

主键设置自动递增:
create table student(
sid int primary key auto_increment, # auto_increment表示自动递增+1
sname varchar(20) not null,
sex char(3),
email varchar(50) unique,
cid int,
constraint fk_clazz_cid foreign key(cid) references clazz(cid) #外键约束,constraint注意constraint不带s,oracle中是constraints

);

create table clazz(
cid int primary key auto_increment,
cname varchar(20) not null
);

insert into clazz values(null,‘高等数学‘);
insert into clazz values(null,‘国际英语‘);

select * from clazz;

insert into student values(null,‘张三‘,‘男‘,‘zhangsan@qq.com‘,1);
insert into student values(null,‘李四‘,‘男‘,‘lisi@qq.com‘,2);
select * from student;
select * from student s join clazz c on s.cid = c.cid;

查询表中的约束信息
show keys from 表名
show keys from student;

1.2自动增长(auto_increment)

MySQL 中的自动增长类型要求:
· 一个表中只能有一个列为自动增长。
· 自动增长的列的类型必须是整数类型。
· 自动增长只能添加到具备主键约束与唯一性约束的列上。

1.3默认值处理

在 MySQL 中可以使用 DEFAULT 为字段设定一个默认值。如果在插入数据时并未指

定该列的值,那么 MySQL 会将默认值添加到该列中。

1.3 插入数据时的默认值处理
如果在插入数据时并未指定该列的值,那么 MySQL 会将默认值添加到该列中。如果是
完全项插入需要使用 default 来占位。

create table student(
sid int primary key auto_increment, # auto_increment表示自动递增+1
sname varchar(20) not null,
sex char(3) default ‘男‘, #处理默认值
email varchar(50) unique,
cid int,
constraint fk_clazz_cid foreign key(cid) references clazz(cid) #外键约束

);
insert into student values(null,‘张三‘,default,‘zhangsan@qq.com‘,1);#默认值用default占位
insert into student values(null,‘李四‘,‘女‘,‘lisi@qq.com‘,2);

8MySQL 中的事务处理

在 MySQL 中,默认情况下,事务是自动提交的,也就是说,只要执行一条
DML (增insert、删delete、改update)语句就开启了事物,并且自动提交了事务

1关闭 MySQL 的事务自动提交
select @@autocommit; #autocommit的默认值是1代表事务是开启的,0带关闭
set @@autocommit = 0;#关闭自动提交事务
select @@autocommit;# 查询事务的是否自动提交参数,默认是1,代表默认自动提交
set @@autocommit = 0;

4MySQL 中定义空值
包含空值的算术表达式计算结果为空。

通用函数(了解)
coalesce(comm,0) 如果第一个参数为null就返回0
(类似 oracle 的 nvl()函数)

ifnull(expr1,expr2)判断 expr1 是否为 null,如果为 null,则用 expr2 来代替 null
(类似 oracle 的 nvl()函数)

IF(expr1,expr2,expr3)判断 expr1 是否(不为 null),如果为真,则使用 expr2
替代 expr1;如果为假,则使用 expr3 替代 expr1(类似 oracle 的 NVL2()函数)
实例:
从emp标准中查询员工的姓名,月总收入
ifnull(expr1,expr2)

IF(expr1,expr2,expr3)

查询每个员工的年总收入
select ename,(sal+coalesce(comm,0))*12 年薪 from emp;

select ename,(sal+ifnull(comm,0))*12 年薪 from emp;

select ename,(sal+if(comm,comm,0))*12 年薪 from emp;

1.2模糊查询

· like
· %表示任意个,任意字符
· _表示一个任意字符

查询 emp 中雇员名字第二个字母是 A的雇员信息。
select * from emp where ename like ‘_A%‘;

查询名字里不包含A的员工
select * from emp where ename not like ‘%A%‘;

1.3逻辑运算符

· and 并且,相当于 &&
· or 和
· not 不

查询 emp 表中雇员薪水是 3000 的并且名字中含有 s 的雇员信息
select * from emp where sal =3000 and ename like ‘%S%‘;

查询 emp 表中雇员名字中不包含 M 的雇员信息 NOT LIKE

查询emp表中,叫SCOTT和CLARK的员工
select * from emp where ename =‘scott‘ or ename=‘clark‘;#mysql中对大小写不敏感

4日期函数

SYSDATE() 或者 NOW()返回当前系统时间,格式为 YYYY-MM-DD hh-mm-ss
LAST_DAY(date)返回 date 日期当月的最后一天

查询系统的当前时间:
select sysdate() from dual; #from dual可以省略不写
select now();

返回本月的最后一天
select last_day(now());

5转换函数

date_fORMat(date,format)将日期转换成字符串(类似 oracle 中的 to_char())
把当前系统时间按指定格式输出为字符串
select date_format(now(),‘%Y-%m-%d‘);
select date_format(now(),‘%Y年%m月%d日 %H:%i:%s‘);

把字符串的时间转换为date格式
str_to_date(str,format)将字符串转换成日期(类似 oracle 中的 to_date())
select str_to_date(‘1997-7-1‘,‘%Y-%m-%d‘);

往emp表中插入一条记录
insert into emp values(4444,‘张三‘,‘总经理‘,7902,str_to_date(‘2020-3-10‘,‘%Y-%m-%d‘),8000,1000,20);

五.多表连接查询

等值连接

查询雇员 King 所在的部门名称
select * from emp e join dept d on e.deptno = d.deptno where ename=‘king‘;

自连接
查询每个雇员的经理的名字以及雇员的名字。
select e1.ename,e2.ename 上司 from emp e1 join emp e2 on e1.mgr = e2.empno;

查询所有雇员的薪水级别。
select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal >= s.losal and e.sal <= s.hisal;

外连接(OUTER JOIN)

左外连接(LEFT [OUTER] JOIN)

查询所有雇员的名字以及他们的部门名称,包含那些没有部门的雇员。
select * from emp e leftjoin dept d on e.deptno = d.deptno;

右外连接(RIGHT [OUTER] JOIN)

查询所有雇员的名字以及他们的部门名称,包含那些没有雇员的部门。
select * from emp e right join dept d on e.deptno = d.deptno;

92sql在mysql支持不完善

全外链接

注意:MySQL 中不支持 FULL OUTER JOIN 连接

六、MySQL 中的其他对象

1索引

MySQL 索引的建立对于 MySQL 的高效运行是很重要的,索引可以大大提高 MySQL
的检索速度。

MySQL 中的索引
主键索引

主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建
表的时候同时创建主键索引。

创建索引(显示创建隐式使用,主键和唯一键会自动创建index)
用法:
当某一列频繁的使用查询时,此列又不是主键或唯一约束,可以考虑给此列创建一个索引,可以大大提高效率
create index index_name on 表名 (列名)
create index index_emp_ename on emp(ename);

删除索引

drop index idx_name on 表名
drop index index_emp_ename on emp; #on emp oracle中不用加on 表名

七、MySQL 分页查询

MySQL 分页查询原则
· 在 MySQL 数据库中使用 limit 子句进行分页查询。
· MySQL 分页中开始位置为 0。
· 分页子句在查询语句的最后侧。

1LIMIT 子句

语法格式

SELECT 列 FROM 表名 WHERE 条件 LIMIT 开始位置,查询数量。

示例

查询emp表中第1行~5行

查询emp表中第6行~10行

查询emp表中第11行~15行

查询分页的公式m代表每页显示m行,n代表第n页

显示emp表的第二页,每页三行数据

select * from emp limit 0,5; #从0(第一行),5表示显示5行
select * from emp limit 5,5;

select * from emp limit 10,5;

m代表每页显示多少行,n代码第n页

select * from emp limit m*n-n,m;

2LIMIT OFFSET 子句分页查询(了解)

语法格式

SELECT 列 FROM 表名 WHERE 条件 [ORDER BY ] LIMIT 查询数量 OFFSET
开始位置。

查询emp表中第1行~5行

查询emp表中第6行~10行

查询分页的公式m代表每页显示m行,n代表第n页

查询emp表中第1行~5行

查询emp表中第6行~10行

推导公式

offset的方式分页

查询emp表中第1行~5行

查询emp表中第6行~10行

推导公式

select * from emp limit 5 offset 0; #limit后跟显示的行数, offset表偏移量0表示第一行

select * from emp limit 5 offset 5;

推导的分页查询公式:m代表每页显示多少行,n代码第n页

select * from emp limit m offset m*n-m;

mysql的远程访问

切换到mysql库下 use mysql;
select * from user;

默认只能有本地ip来访问mysql数据库

update user set host = ‘%‘ where user=‘root‘;

flush privileges;#刷新访问权限

接下来就可以远程访问mysql数据库了

mysql入门以及远程访问

原文地址:https://www.cnblogs.com/mylifewell/p/13555824.html

您可能感兴趣的文档:

--结束END--

本文标题: mysql入门以及远程访问

本文链接: https://lsjlt.com/news/7876.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql入门以及远程访问
    MySQL 数据库的使用 一、MySQL 简介 1什么是 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数...
    99+
    2018-08-26
    mysql入门以及远程访问 数据库入门 数据库基础教程 数据库 mysql
  • 安装mariadb以及允许远程访问
    下载mariadb: yum -y install mariadb-server mariadb 开启mariadb服务: systemctl start mariadb 无密码登录mariadb: my...
    99+
    2024-04-02
  • MySQL MariaDB密码以及远程访问权限配置是怎样的
    本篇文章给大家分享的是有关MySQL  MariaDB密码以及远程访问权限配置是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。...
    99+
    2024-04-02
  • 远程访问及控制——SSH
    SSH——远程访问及控制 SSH远程管理SSH定义1. SSH的端口号2. OpenSSH服务器 SSH服务端1. 查询当前的版本2. 用ssh实现远程登录3. 设置黑白名单4. 远程复制...
    99+
    2023-09-15
    ssh 网络 服务器
  • 远程访问本地mysql
    文章目录 一、设置本地mysql允许外部访问找到mysql配置文件`my.ini` ,linux环境是`my.cnf`配置mysql配置文件 二、创建外部访问的mysql用户三、配置mys...
    99+
    2023-10-04
    mysql adb android
  • Windows开启远程访问MySQL
    第一步进入MySQL (所有命令都可以直接复制) 1 在Windows下搜索cmd,找到“命令提示符”,右键【以管理员身份运行】 2 在命令行输入:mysql -u root -p ,然后回车,会弹出 Enter password: my...
    99+
    2023-09-05
    linux 服务器 运维
  • mysql如何允许远程访问
    默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。本文提供了二种方法设置mysql可以通过远程主机进行连接。 修改用户表的数据 登入mysql后,更改 mysql ...
    99+
    2024-04-02
  • Mysql怎么实现远程访问
    这篇文章主要讲解了“Mysql怎么实现远程访问”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql怎么实现远程访问”吧! 本地机器安装的数据库,本地程...
    99+
    2024-04-02
  • 怎么开启Mysql远程访问
    这篇文章主要讲解了“怎么开启Mysql远程访问”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么开启Mysql远程访问”吧!   Mysql默认...
    99+
    2024-04-02
  • mysql如何开启远程访问
    本文小编为大家详细介绍“mysql如何开启远程访问”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql如何开启远程访问”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。mysq...
    99+
    2024-04-02
  • MySQL设置远程访问权限
    当我们在日常开发中;需要连接其他同事的数据库或者其他服务器的数据库;可能会出现以下情况 我们输入的用户和密码都正确;但是提示我们用户没有权限;这个用户指的是远程连接的电脑ip没有访问权限;不是mysq...
    99+
    2023-09-05
    mysql 数据库
  • mysql如何设置远程访问
    这篇“mysql如何设置远程访问”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql如...
    99+
    2023-04-21
    mysql
  • mysql开启远程访问权限
    在默认情况下,MySQL只允许本地登录,如果需要远程访问数据库,如果不开启远程访问权限,会报错java.sql.SQLNonTransientConnectionException: Could not create connection ...
    99+
    2023-08-18
    mysql 数据库
  • mysql怎么卸载远程访问
    为了卸载 mysql 远程访问,需要执行以下步骤:停止 mysql 服务。编辑 mysql 配置文件,移除远程访问配置。重启 mysql 服务。刷新权限(可选)。删除 mysql 远程访...
    99+
    2024-05-30
    mysql
  • 如何解决mysql远程访问的问题
    今天就跟大家聊聊有关如何解决mysql远程访问的问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如果连接mySQL的时候出现'Host &...
    99+
    2024-04-02
  • ORACLE远程访问
      1.开启防火墙 修改listener.ora # listener.ora Network Configuration File: C:appusernameproduct12.1.0dbhome_1NETWORKADMINlisten...
    99+
    2015-04-15
    ORACLE远程访问 数据库入门 数据库基础教程 数据库 mysql
  • Mysql开始root远程访问权限
    1. GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "123456" 这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址 2...
    99+
    2020-01-22
    Mysql开始root远程访问权限
  • MySQL启用与关闭远程访问
    注意:此文仅适用于 Windows Server 登录MySQL mysql> mysql -u root -p Enter Password: 输入root密码以登录 mysql> use mysql; Database changed...
    99+
    2016-06-16
    MySQL启用与关闭远程访问
  • 如何远程访问mysql数据库
    如何远程访问mysql数据库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。方法一:将localhost改成"%"修改&...
    99+
    2024-04-02
  • Mysql中怎样开启远程访问
    Mysql中怎样开启远程访问,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 Mysql默认是不可以通过远程机器访问的,通过下面...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作