leiwuhen-67's blog leiwuhen-67's blog
首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)

我的公众号

首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)
  • MySQL

    • Mac上安装MySQL以及MySQL基本操作
      • 一、MySQL安装
        • 1、安装mysql
        • 2、启动、关闭、重启mysql
        • 3、执行安全设置
        • 4、登录mysql
      • 二、MySQL基本操作
        • 1、创建数据库
        • 2、删除数据库
        • 3、选择数据库
        • 4、创建表
        • 5、删除表
        • 6、查看表
        • 7、插入数据
        • 8、查询数据
        • 9、删除数据
        • 10、更新数据
        • 11、修改表,添加字段
        • 12、修改表,修改字段
        • 13、查询表结构
        • 14、修改表,删除字段
        • 15、多表查询
        • 16、聚合查询
    • DBeaver导出sql
    • 本地数据库上传到服务器,并访问服务器数据库
  • MySQL
  • MySQL
心欲无痕
2022-04-16
目录

Mac上安装MySQL以及MySQL基本操作

# 一、MySQL 安装

# 1、安装 mysql

brew install mysql
1

# 2、启动、关闭、重启 mysql

mysql.server start    #启动

mysql.server stop     #关闭

mysql.server restart  #重启
1
2
3
4
5

# 3、执行安全设置

mysql_secure_installation
1

按照提示选择密码等级并设置 root 密码。

# 4、登录 mysql

#登录本机的MySQL数据库
mysql -u root -p

/*
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
*/
mysql -h 主机名 -u 用户名 -p
1
2
3
4
5
6
7
8
9

按提示输入 root 密码

# 二、MySQL 基本操作

# 1、创建数据库

CREATE DATABASE 数据库名;
1

如果数据库已存在,则会创建失败,创建时,一般会先判断数据库是否存在,如不存在再创建

#创建一个数据库,指定默认字符集为utf8,默认校对规则为utf8_chinese_ci(简体中文,不区分大小写)
CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_chinese_ci;
1
2

# 2、删除数据库

DROP DATABASE 数据库名;
1

如果数据库不存在,执行上面操作会报错,此时可以使用 IF EXISTS,判断是否存在,如存在再进行删除操作

DROP DATABASE IF EXISTS 数据库名;
1

ps:此操作慎用,在执行该命令后,MySQL 不会给出任何提示确认信息。DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。因此最好在删除数据库之前先将数据库进行备份。

# 3、选择数据库

在 MySQL 中有许多系统自带的数据库,因此在操作前需要确定是哪一个数据库,当用 CREATE DATABASE 语句创建数据库后,该数据库不会自动成为当前数据库,需要使用 USE 来指定当前数据库

use 数据库名;
1

# 4、创建表

CREATE TABLE table_name (column_name column_type);

示例代码:
root@host# mysql -u root -p
Enter password:*******
mysql> use RUNOOB;
Database changed
mysql> CREATE TABLE runoob_tbl(
   -> runoob_id INT NOT NULL AUTO_INCREMENT,
   -> runoob_title VARCHAR(100) NOT NULL,
   -> runoob_author VARCHAR(40) NOT NULL,
   -> submission_date DATE,
   -> PRIMARY KEY ( runoob_id )
   -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.16 sec)
mysql>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

说明:

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为 NULL ,就会报错。

AUTO_INCREMENT 定义列为自增的属性,一般用于主键,数值会自动加 1。

PRIMARY KEY 关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。

ENGINE 设置存储引擎,CHARSET 设置编码。

注意:MySQL 命令终止符为分号;。

注意: -> 是换行符标识,不要复制。

# 5、删除表

DROP TABLE table_name;
1

# 6、查看表

SHOW TABLES;
1

# 7、插入数据

INSERT INTO table_name (field1, field2, ...fieldN)
VALUES
(value1, value2, ...valueN);
1
2
3

ps:注意: 使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写 SQL 语句,SQL 语句的命令结束符为分号 ;。

# 8、查询数据

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

#例如:读取user_list表中所有数据
select * from user_list;
1
2
3
4
5
6
7

# 9、删除数据

DELETE FROM table_name [WHERE Clause]
1

如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。

你可以在 WHERE 子句中指定任何条件

# 10、更新数据

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
1
2

# 11、修改表,添加字段

ALTER TABLE table_name ADD column_name  column_type;

-- 例如,如下语句将为user_list表添加一个新字段id_card,为char类型,可存储20个字符。
ALTER TABLE user_list ADD id_card char(20);
1
2
3
4

# 12、修改表,修改字段

ALTER TABLE table_name CHANGE column_name1 column_name2 column_type;

-- 例如,将user_list表中id_card字段修改为idCard字段
ALTER TABLE user_list CHANGE id_card idCard char(20);
1
2
3
4

# 13、查询表结构

DESC table_name;
1

# 14、修改表,删除字段

ALTER TABLE table_name DROP column_name;

# 删除user_list表中的id_card字段
ALTER TABLE user_list DROP id_card;
1
2
3
4

# 15、多表查询

# 例如,同时从students表和classes表中查询
SELECT * FROM students, classes;

/* 
当上述表查询结果中有两个id,两个name的时候,在结果集中不好区分,
这时候可以利用投影查询的“设置列别名”来给两个表各自的id和name起别名
*/
SELECT 
  students.id sid, 
  students.name, 
  students.gender, 
  students.score, 
  classes.id cid, 
  classes.name cname 
FROM students, classes;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

注意:多表查询时,要使用 表名。列名 这样的方式来引用列和设置别名,这样避免了结果集的列名重复问题。可能你发现了,使用 表名。列名 这种方式来列举两个表所有列很繁琐,MySQL 考虑到了这点,贴心的提供了给表设置别名的功能。

SELECT 
  s.id sid, 
  s.name, 
  s.gender, 
  s.score, 
  c.id cid, 
  c.name cname 
FROM students s, classes c;
1
2
3
4
5
6
7
8

注意:FROM 子句给表设置别名的语法是 FROM 表名 1 别名 1, 表名 2 别名 2。这样用别名 s 和 c 分别表示 students 和 classes 表。

# 16、聚合查询

# 查询表总条数
SELECT COUNT(*) FROM students;

# 查询的时候可以给列起个别名,便于处理结果, COUNT(*)和COUNT(id)效果一样
SELECT COUNT(*) num FROM students;
1
2
3
4
5

常用聚合函数:

函数 说明
COUNT 计算所有列的行数
SUM 计算某一列的合计值,该列必须为数值类型
AVG 计算某一列的平均值,该列必须为数值类型
MAX 计算某一列的最大值
MIN 计算某一列的最小值
编辑 (opens new window)
上次更新: 7/1/2024, 4:56:33 PM
DBeaver导出sql

DBeaver导出sql→

Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式