MySQL 基础命令查询:

安装

MySQL 安装

1、官网下载地址(MySQL Download MySQL Installer),点击「Download」,再点击「No thanks, just start my download.」。

2、选择「full」或者只安装「server」,其他按默认步骤直接安装,并设置数据库密码 123456

设置系统环境变量

1、在win系统中搜索「环境变量」,点击「环境变量」,选择「Path」编辑,添加上MySQL的安装路径 C:\Program Files\MySQL\MySQL Server 8.0\bin

命令窗口连接

1、win+R,输入cmd,打开命令终端,输入 mysql -u root -p ,再输入密码123456。

2、输入 show databases; 可查看默认数据,最后要输入冒号 结尾,输入 exit; 退出MySQL。

数据库工具 DBeaver

数据库工具:MySQL Workbench、Navicat、DBeaver、DataGrip等工具。其中DBeaver是免费开源、功能强大、多平台、多数据库。

官方地址:Download | DBeaver Community,下载后一路安装即可。

创建数据库

1、连接本地MySQL数据库:

2、使用DBeaver连接本地MySQL后,右击「新建数据库」:

3、创建一个名为「demo_39」的数据库,字符集保持默认。

命令

MySQL 数据类型

  • 整数 INT
  • 小数 FLOAT
  • 日期 DATE
  • 文本 VARCHAR(10)
  • 空值 NULL

设置主键

将唯一的id值设置为主键。

SQL语句

查询、新增、更改、删除(增删改查)

创建表

-- 在数据库中创建一个movie的表
CREATE TABLE movie(
	id int PRIMARY KEY,
	title varchar(255) NOT NULL,
	director varchar(255),
	release_date date,
	length_minutes int
)

查询

-- 查找title列数据
SELECT title FROM movie;

-- 查找title、director两列数据
SELECT title,director FROM movie;

-- 查找所有列数据
SELECT * FROM movie;

-- 提取一列中不重复的导演名字
SELECT DISTINCT director FROM movie;

-- 提取导演和日期都不重复的数据
SELECT DISTINCT director,release_date FROM movie;

排序:

-- 对查询的数据按日期进行排序
SELECT * FROM movie ORDER BY release_date;

-- 对查询的数据按日期进行排序(降序)
SELECT * FROM movie ORDER BY release_date DESC;

-- 先按导演名升序,再按日期降序
SELECT * FROM movie ORDER BY director,release_date DESC;

查询数量限制

-- 只查询前5条
SELECT * FROM movie LIMIT 5;

-- 只查询前5条,并跳过前3条数据
SELECT * FROM movie LIMIT 3,5;

比较运算符

  • < 小于
  • > 大于
  • = 等于
  • <> 或 != 不等于
  • <= 小于等于
  • >= 大于等于
-- 查询director列中,导演名为“宁浩”的数据
SELECT * FROM movie WHERE director='宁浩';

-- 查询director列中,导演名为“宁浩”且时长大于105的数据
SELECT * FROM movie WHERE director='宁浩' AND length_minutes>105;

-- 查询导演是宁浩,或者时长大于130的数据
SELECT * FROM movie WHERE director='宁浩' OR length_minutes>130;

-- 查询导演是宁浩或者姜文的数据
SELECT * FROM movie WHERE director='宁浩' OR director='姜文';
-- 或者用 in 
SELECT * FROM movie WHERE director IN ('宁浩', '姜文');

-- 查询电影时间大于115,小于130的数据
SELECT * FROM movie WHERE release_date>115 OR release_date<130;

like关键字

LIKE关键字的2种通配符:

  • % 任意数量
  • _ 单个字符
-- 查询日期需要加引号
SELECT * FROM movie WHERE release_date='2010-12-16';

-- 查询日期为2013的电影
SELECT * FROM movie WHERE release_date BETWEEN '2013-01-01' AND '2013-12-31';
SELECT * FROM movie WHERE release_date LIKE '2015%';

-- 查询名字为2个字的导演
SELECT * FROM movie WHERE director LIKE '__';

日期函数

-- 用year函数查询2013年的数据
SELECT * FROM movie WHERE YEAR(release_date)='2013';

-- 用year函数查询200_年的数据
SELECT * FROM movie WHERE YEAR(release_date) LIKE '200_';

-- 用month函数查询08月的数据
SELECT * FROM movie WHERE MONTH(release_date)='08';

查询顺序

==先查询 SELECT,再过滤 WHERE(and/or/between/like),然后再排序 ORDER BY ,最后再限制数量 LIMIT。==

SELECT * FROM movie
WHERE id >= 1
ORDER BY id DESC
LIMIT 3;

SELECT * FROM movie 
WHERE release_date LIKE '2015%' 
ORDER BY id DESC 
LIMIT 2

插入

-- 插入一条新数据,做为主键的id值不能重复
INSERT INTO movie 
(id,title,director,release_date,length_minutes) 
VALUES (68,'活着','张艺谋','1994-05-18',125);

-- 插入多条新数据
INSERT INTO movie 
(id,title,director,release_date,length_minutes) 
VALUES 
(70,'活着','张艺谋','1994-05-18',125),
(71,'红高粱','张艺谋','1987-10-01',91);

-- 插入全部列的话,可删除列名
INSERT INTO movie 
VALUES 
(70,'活着','张艺谋','1994-05-18',125);

-- 只插入部分(时长未填写),列名必须写上
-- 未填写的项必做是为非空,或者有默认值
INSERT INTO movie 
(id,title,director,release_date) 
VALUES 
(70,'活着','张艺谋','1994-05-18');


更改

-- 更新数据:将无人区电影时长更改为80分钟
UPDATE movie 
SET length_minutes = 80 
WHERE title = '无人区';

-- 将id为1和2的数据更改:时长80分钟,且导演为姜文
UPDATE movie 
SET 
	length_minutes = 80,
	director = '姜文'
WHERE 
	id BETWEEN 1 AND 2;

删除

-- 更新为null空值,即为删除:将无人区的日期删除
UPDATE movie 
SET release_date = NULL 
WHERE title = '无人区';

-- 删除电影无人区的数据
DELETE FROM movie 
WHERE title = '无人区';

-- 删除director列
ALTER TABLE movie DROP COLUMN director;

-- 删除director列和length_minutes列
ALTER TABLE movie 
DROP COLUMN director,DROP COLUMN length_minutes;

-- 删除表的全部内容(表仍然在数据库)
DELETE FROM movie;

-- 将表从数据库全部删除
DROP TABLE movie;