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;