前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL基础

MySQL基础

作者头像
Noneplus
发布2019-09-24 16:23:44
6900
发布2019-09-24 16:23:44
举报
文章被收录于专栏:开发笔记开发笔记

关于MySQL

官方文档:https://dev.mysql.com/doc/refman/8.0/en/

MySQL是Oracle公司开发、发布和支持的最流行的开源SQL数据库管理系统。

【主要特点】

  • 开源
  • 使用BTree索引
  • 支持多线程,对多核CPU性能可以达到更好的发挥
  • 用C和C++编写

CentOS7.6 安装MySQL8.0

环境准备

  • 卸载mariadb
代码语言:javascript
复制
rpm -qa | grep mariadb

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

centos7 内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。

【如果之前安装了mysql需要先卸载】

代码语言:javascript
复制
yum remove mysql*

删除安装目录

代码语言:javascript
复制
whereis  mysql

rm -rf /usr/share/mysql
  • 安装MySQL
    • 获取yum源(MySQL官网)
    1567919447819
    1567919447819
    • 安装yum源 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    • 查看各版本启动状况 yum repolist all | grep mysql 默认开启最新版8.0
    1567919595117
    1567919595117
    • [调整命令】禁用8.0,开启5.7 yum-config-manager --disable mysql80-community yum-config-manager --enable mysql57-community 命令在yum-utils 包里,安装既可以解决无法找到yum-config-manager命令: yum -y install yum-utils
    • 安装mysqll yum -y install mysql-community-server

配置MySQL远程连接

  • 查看mysql版本 mysql -V
  • 启动mysql&&设置开机自启 systemctl start mysqld systemctl enable mysqld
  • 查看默认生成密码 grep 'temporary password' /var/log/mysqld.log
  • 登录修改密码 mysql -uroot -p
  • 修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NoPassword564925080!'; mysql5.7之后默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误.
  • 授权远程登录用户 默认的密码加密方式是:caching_sha2_password,而现在很多客户端工具还不支持这种加密认证方式,连接测试的时候就会报错:client does not support authentication protocol requested by server; consider upgrading MySQL client CREATE USER 'noneplus'@'%' IDENTIFIED BY 'Noneplus564925080!'; GRANT ALL ON *.* TO 'noneplus'@'%'; //修改认证方式为mysql_native_password ALTER USER 'noneplus'@'%' IDENTIFIED WITH mysql_native_password BY 'Noneplus564925080!'; flush privileges;
  • 开放服务器3306端口
  • 远程连接
1567920997553
1567920997553

MySQL常用命令

登录

代码语言:javascript
复制
mysql -u root -p

数据库相关命令

代码语言:javascript
复制
show databases;

create database database_name;

use database_name;

drop database_name;

数据库表相关命令

【数据库和数据库表相关命令都属于DDL数据定义语言】

代码语言:javascript
复制
show tables;     [先切换到指定数据库]

//创建表
CREATE TABLE `user_info` (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `username` varchar(10) DEFAULT NULL COMMENT '用户姓名',
  `password` varchar(20) DEFAULT NULL COMMENT '用户密码',
  `age` int(5) DEFAULT NULL COMMENT '年龄',
  `email` varchar(20) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COMMENT='用户信息表'


//查看表定义
show create table user_info \G;


drop table user_info;

//删除表字段
alter table user_info column age;

//修改表
Alter table user_info modify username varchar(15);

//增加表的字段
alter  table user_info add column gender int(1);

//字段改名
alter table user_info change age age1 int(3);

//modify,add,change都可以进行排序

Alter table user_info modify username varchar(15) first;  //放在最前面

alter  table user_info add column gender int(1) after age;//字段至于age之后


//修改表名

alter table user_info rename person_info;

增删改查命令

【增删改查属于DML数据操作语言】

插入

代码语言:javascript
复制
INSERT INTO user_info(username,password,age,email) VALUES('hq','123456789',22,'glaring@sina.com')

更新

代码语言:javascript
复制
UPDATE user_info SET username='hq',age=23,email='56492508@qq.comm' WHERE id=5

删除

代码语言:javascript
复制
DELETE FROM user_info WHERE id=6

查询

代码语言:javascript
复制
SELECT * FROM user_info WHERE id = 6
代码语言:javascript
复制
SELECT * FROM user_info WHERE id = 6 and age<30

排序【默认升序】

代码语言:javascript
复制
SELECT * FROM user_info ORDER BY ID DESC LIMIT 10   //查询最后十条数据
代码语言:javascript
复制
SELECT * FROM user_info ORDER BY ID DESC LIMIT 10,20   //查询最后20条数据的前10条

统计数据总条数

代码语言:javascript
复制
SELECT COUNT(1) FROM user_info;

统计最大值,最小值,求和

代码语言:javascript
复制
SELECT MAX(age),MIN(age) ,SUM(age) FROM user_info;

表连接查询

代码语言:javascript
复制
select ename,deptname from emp,dept where emp.deptno=dept.deptno;

MySQL常用数据类型

数值类型

整数类型

字节

最小值

最大值

tinyint

1

有符号-128 无符号0

有符号127 无符号255

smallint

2

有符号-32768 无符号0

有符号32767 无符号65535

mediumint

3

有符号-800w 无符号0

有符号800w 无符号167w

int,integer

4

有符号-21亿 无符号0

有符号21亿 无符号42亿

bigint

8

有符号-92w兆 无符号0

有符号92w兆 无符号184w兆

int(5)指定显式宽度【不显式指定默认int(11)】,当数值宽度小于五位的时候,默认填满。zerofill指用0填充。

unsigned表示是否带符号

浮点数类型

字节

最小值

最大值

float

4

double

8

定点数类型

字节

最小值

最大值

decimal(M,D)

M+2

有符号-128 无符号0

有符号127 无符号255

表示一共显示M位数字,包括整数位和小数位,其中D位代表小数点有几位

decimal不指定精度默认整数位为10,小数位为0.

日期时间类型

类型

字节

最小值

最大值

date

4

1000-01-01

9999-12-31

datetime

8

1000-01-01 00:00:00

9999-12-31 23:59:59

timestamp

4

1970010108001

2038年的某个时刻

记录系统当前时间可用timestamp,支持不同地方的时区差异

TIMESTAMP 存储的时间范围 1970-01-01 00:00:01 ~ 2038-01-19-03:14:07

字符串类型

类型

描述

char

0-255字节

varchar

0-65535字节

tinyblob

0-255字节

blob

0-65535字节

mediumblob

0-16772150字节

longblob

0-4294967295字节

tinytext

0-255字节

text

0-65535字节

mediumtext

0-16772150字节

longtext

0-4294967295字节

varbinary(M)

0-M字节

binary(M)

0-M字节

MySQL支持的运算符

算术运算符

算术运算符

说明

+

加法运算

-

减法运算

*

乘法运算

/

除法运算,返回商

%

求余运算,返回余数

比较运算符

比较运算符

说明

=

等于

<

小于

<=

小于等于

>

大于

>=

大于等于

<=>

安全的等于,不会返回 UNKNOWN

<> 或!=

不等于

IS NULL 或 ISNULL

判断一个值是否为 NULL

IS NOT NULL

判断一个值是否不为 NULL

LEAST

当有两个或多个参数时,返回最小值

GREATEST

当有两个或多个参数时,返回最大值

BETWEEN AND

判断一个值是否落在两个值之间

IN

判断一个值是IN列表中的任意一个值

NOT IN

判断一个值不是IN列表中的任意一个值

LIKE

通配符匹配

REGEXP

正则表达式匹配

逻辑运算符

逻辑运算符

说明

NOT 或者 !

逻辑非

AND 或者 &&

逻辑与

OR 或者 ||

逻辑或

XOR

逻辑异或【相同为0,不同为1】

位运算符

位运算符

说明

|

按位或

&

按位与

^

按位异或

<<

按位左移

>>

按位右移

~

按位取反,反转所有比特

运算符优先级

优先级由低到高排列

运算符

1

=(赋值运算)、:=

2

II、OR

3

XOR

4

&&、AND

5

NOT

6

BETWEEN、CASE、WHEN、THEN、ELSE

7

=(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN

8

|

9

&

10

<<、>>

11

-(减号)、+

12

*、/、%

13

^

14

-(负号)、〜(位反转)

15

!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于MySQL
  • CentOS7.6 安装MySQL8.0
    • 环境准备
      • 配置MySQL远程连接
      • MySQL常用命令
        • 登录
          • 数据库相关命令
            • 数据库表相关命令
              • 增删改查命令
                • 插入
                • 更新
                • 删除
                • 查询
            • MySQL常用数据类型
              • 数值类型
                • 日期时间类型
                  • 字符串类型
                  • MySQL支持的运算符
                    • 算术运算符
                      • 比较运算符
                        • 逻辑运算符
                          • 位运算符
                            • 运算符优先级
                            相关产品与服务
                            云数据库 SQL Server
                            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档