跳至主要內容

MySQL

wangdongovo...大约 7 分钟数据库mysql

MySQL

https://dev.mysql.com/downloads/mysql/open in new window

双击安装

image.png
image.png

傻瓜式安装

image.png
image.png
image.png
image.png

修改环境变量

新建或者打开.bash_profile 文件

image.png
打开.bash_profile 文件输入下面的环境配置

export PATH=${PATH}:/usr/local/mysql/bin

在.zshrc 文件下配置 source ~/.bash_profile

image.png
image.png

Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) "报错问题

cd /usr/local/mysql
sudo ./bin/mysqld_safe

8.0 以后版本的 mysql

mysql8  之前的版本中加密规则是 mysql_native_password,而在 mysql8 之后,加密规则是 caching_sha2_password

登录

image.png
image.png

查看 mysql 版本

image.png
image.png

修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY 'react521' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'react521';

刷新权限

FLUSH PRIVILEGES;

登录

mysql -u root -p
image.png
image.png

数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件)

表(table) 某种特定类型数据的结构化清单

创建数据库

create database db_name;

查询已有的数据库

返回可用数据库的一个列表

show databases;
image.png
image.png

使用数据库

use db_name;
image.png
image.png

删除数据库

drop database testone;

创建表

create table pirate(id int not null,name char(60) null,address varchar(60) null,sex char(20) null,age char(20) null,primary key(id));
image.png
image.png

AUTO_INCREMENT

告诉 MySQL,本列每当增加一行时自动增量。每次执行一个 INSERT 操作时,MySQL 自动对该列增量(从而才有这个关键字 AUTO_INCREMENT ),给该列赋予下一个可用的值

PRIMARY KEY

表的主键可以在创建表时用 PRIMARY KEY 关键字指定。

更新列

alter table navy add intro varchar(600)
image.png
image.png

添加主键

主键 一列(或一组列),其值能够唯一区分表中每个行

唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行
任意两行都不具有相同的主键值
每个行都必须具有一个主键值(主键列不允许 NULL 值)

数据插入

INSERT 是用来插入(或添加)行到数据库表的

插入完整的行

要求指定表名和被插入到新行中的值

 insert into pirate values(1,'凯多','和之国鬼岛','男',30);
image.png
image.png
image.png
image.png

插入多个行

insert into pirate(id,name,address,sex,age) values(2,'夏洛特·玲玲','拖特兰','女',28),(3,'爱德华·纽盖特','能力是被誉为最强超人系的震震果实','男',35);
image.png
image.png

更新数据

更新(修改)表中的数据,可使用 UPDATE 语句

update pirate set address = '不知名的一座小岛' where id = 3;
image.png
image.png

UPDATE 语句总是以要更新的表的名字开始。在此例子中,要更新的表的名字为 pirate 。SET 命令用来将新值赋给被更新的列。

UPDATE 语句以 WHERE 子句结束,它告诉 MySQL 更新哪一行。

删除数据

一个表中删除(去掉)数据,使用 DELETE 语句。

delete from pirate where id = 4;
image.png
image.png

更快的删除 如果想从表中删除所有行,不要使用 DELETE 。可使用 TRUNCATE TABLE 语句,它完成相同的工作,但速度更快(TRUNCATE 实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据)。

排序数据

为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。ORDER BY 子句取一个或多个列的名字,据此对输出进行排序。

单列排序

select * from eagle_team order by num;

image.png
按照 num 排序

按多个列排序

select name,num from eagle_team order by name,num;
image.png
image.png

指定排序方向

select * from eagle_team order by num desc;
image.png
image.png

DESC 关键字只应用到直接位于其前面的列名。
与 DESC 相反的关键字是 ASC (ASCENDING ),在升序排序时可以指定它。但实际上,ASC 没有多大用处,因为升序是默认的(如果既不指定 ASC 也不指定 DESC ,则假定为 ASC )。

使用 ORDER BY 和 LIMIT 的组合,能够找出一个列中最高或最低的值。

select * from eagle_team order by num desc limit 1;
image.png
image.png

过滤数据

使用 SELECT 语句的 WHERE 子句指定搜索条件。

数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。
在 SELECT 语句中,数据根据 WHERE 子句中指定的搜索条件进行过滤。WHERE 子句在表名(FROM 子句)之后给出

select * from eagle_team where id = 1;
image.png
image.png

WHERE 子句操作符

image.png
image.png

数据过滤

AND 操作符

更新表

更新表定义,可使用 ALTER TABLE 语句

查询所有的表

返回当前选择的数据库内可用表的列表。

show tables;
image.png
image.png

查看表的基本信息

desc pirate;
image.png
image.png

检索数据

SELECT 检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

检索单个列

利用 SELECT 语句从 products 表中检索一个名为 prod_name 的列。所需的列名在 SELECT 关键字之后给出,FROM 关键字指出从其中检索数据的表名

select name from student;
image.png
image.png

检索多个列

select name,age,home from student;
image.png
image.png

检索所有列

给定一个通配符(* ),则返回表中所有列。

select * from student;
image.png
image.png

检索不同的行

image.png
image.png

select distinct name from eagle_team;
image.png
image.png

限制结果

SELECT 语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用 LIMIT 子句。
带一个值的 LIMIT 总是从第一行开始,给出的数为返回的行数。带两个值的 LIMIT 可以指定从行号为第一个值的位置开始。

select * from eagle_team limit 3;
image.png
image.png
select * from eagle_team limit 2,3;
image.png
image.png

MySQL 数据类型

串数据类型

不管使用何种形式的串数据类型,串值都必须括在引号内(通常单引号更好)

如果数值是计算(求和、平均等)中使用的数值,则应该存储在数值数据类型列中。如果作为字符串(可能只包含数字)使用,则应该保存在串数据类型列中。

image.png
image.png

数值数据类型

image.png
image.png

日期和时间数据类型

image.png
image.png

二进制数据类型

二进制数据类型可存储任何数据(甚至包括二进制信息),如图像、多媒体、字处理文档

image.png
image.png
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5