MySQL数据库常用语句

MySQL语句

数据库中的关键字不区分大小写,一般大写关键字与一般字符做区分。
最近接触到了数据库,做个笔记免得自己忘了。


1、创建数据库

CREATE DATABASE 数据库名;

-- 创建数据库名为“farm”的数据库
CREATE DATABASE farm;

执行结果
在这里插入图片描述
在这里插入图片描述

2、指定当前操作的数据库

USE 数据库名;

-- 指定以后操作是位于“farm”数据库中的
USE farm;

执行结果
执行结果

3、创建表格

CREATE TABLE 表格名(
列名1 数据类型 其他配置,
列名2 数据类型 其他配置,
列名3 数据类型 其他配置,

);
数据类型有:(入门版)

关键字数据类型
INT整数
VARCHAR()字符串(括号限制字符个数
DATE时间(年-月-日

其他配置

关键字描述
AUTO_INCREMENT自动递增
NOT NULL非空(不输入内容就会报错
NULL可以为空 (不输入内容就是空
PRIMARY KEY主键(需要数据是唯一的
-- 创建一个数据表“farm_list”,这个表一共有三项:农场id,农场名称,农场创建时间
CREATE TABLE farm_list (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10) NOT NULL,
start DATE NULL
);

执行结果
在这里插入图片描述

4、插入数据

INSERT INTO 数据库名.表格名(列名1,列名2, 列名3)VALUES(数值1, 数值2, 数值3)

-- 插入数据如下: id:1 name:农场1 start:2024年5月11号
INSERT INTO farm.farm_list(id, name, start)
VALUES (1, '农场1', '2024-05-11');

-- 不指明列名 直接输入VALUES以及对应的值
INSERT INTO farm.farm_list
VALUES (2, '农场2', '2024-05-12');

-- 省略id值,其默认递增可以用DEFAULT代替 时间可以为空,用NULL代替
INSERT INTO farm.farm_list
VALUES (DEFAULT, '农场2', NULL);

执行结果在这里插入图片描述

5、编辑表格

1.添加列

ALTER TABLE 数据库名.表格名 ADD 列名 数据类型 其他条件;

-- 新增一列数据 profit:
ALTER TABLE farm.farm_list ADD profit INT NULL;

执行结果在这里插入图片描述

2.修改数据

UPDATE 数据库名.表格名
SET
WHERE 条件;

-- 给第三行数据添加时间
UPDATE farm.farm_list
SET start = '2024-05-13'
WHERE id = 3;

执行结果在这里插入图片描述

3.删除某条数据

DELETE FROM 数据库名.表格名
WHERE 条件;

-- 删除第三条数据
DELETE FROM farm.farm_list
WHERE id = 3;

执行结果在这里插入图片描述

4.删除表格

DROP TABLE 数据库名.表格名;

-- 删除farm_list这个表格
DROP TABLE farm.farm_list;

5.删除整个数据库

DROP DATABASE 数据库名;
这里就不演示了,免得有人删库跑路(~ ̄(OO) ̄)ブ

-- 删除fram数据库
DROP DATABASE farm;

6、查找数据(重点!!!)

1.查询整个数据表

SELECT *
FROM 表格名;

-- 查看全部数据
SELECT *
FROM farm_list;

执行结果在这里插入图片描述

2.查询某几列数据

SELECT 列名1,列名2
FROM 表格名;

-- 查看name列
SELECT name, start
FROM farm_list;

执行结果在这里插入图片描述

3.查询某一列所有不重复的项

SELECT DISTINCT 列名
FROM 表格名;

编辑一下表格,添加一些数据
在这里插入图片描述

-- 查询5月份有哪几号有农场成立
SELECT DISTINCT start
FROM farm_list;

执行结果
在这里插入图片描述

4.查询结果排序

SELECT *
FROM 表格名
ORDER BY 列名 排序;

排序:

排序语句(不加默认为ASC)描述
ASC从小到大排列
DESC从大到小排列
-- 查看全部数据 并根据“profit”列从小到大排序
SELECT *
FROM farm_list
ORDER BY profit ASC;

执行结果在这里插入图片描述

5.查询结果 排序+过滤

SELECT *
FROM 表格名
WHERE 条件
ORDER BY 列名 排序;

WHERE配合的运算符
比较运算符:

符号描述
=等于
!= 或 <>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN两值之间
IN一组值里
LIKE相似匹配

逻辑运算符:

符号描述
ADN
OR
NOT 或 !
-- 查看所有列 且profit小于100的 并根据“profit”列从大到小排序 
SELECT *
FROM farm_list
WHERE profit < 100
ORDER BY profit DESC;

执行结果
在这里插入图片描述

-- 查看所有列 且profit小于100的 并根据“profit”列从大到小排序 并且不看id大于10的
SELECT *
FROM farm_list
WHERE profit < 100 AND id <= 10
ORDER BY profit DESC;

执行结果
在这里插入图片描述

-- 查看所有列 且profit值在50到150之间的数据 并根据“profit”列从大到小排序
SELECT *
FROM farm_list
WHERE profit BETWEEN 50 AND 150
ORDER BY profit DESC;

执行结果
在这里插入图片描述

模糊搜索
-- 查看所有列 且name中以'阿'开头的 并根据“profit”列从大到小排序
SELECT *
FROM farm_list
WHERE name LIKE '阿%'
ORDER BY profit DESC;

执行结果
在这里插入图片描述

-- 查看所有列 且name中第二个字符是‘场’的 并根据“profit”列从大到小排序
SELECT *
FROM farm_list
WHERE name LIKE '_场%'
ORDER BY profit DESC;

执行结果
在这里插入图片描述

7、与时间相关的查找

1.新增一列数据

ALTER TABLE 
farm.farm_list 
ADD createTime datetime NOT NULL DEFAULT CURRENT_TIMESTAMP;

执行结果
在这里插入图片描述

编辑数据,新增一些数据(后面懒得修改了)
在这里插入图片描述

2.查询所有数据并根据时间排序(倒序)

SELECT *
FROM farm_list
ORDER BY createTime DESC;

执行结果
在这里插入图片描述

3.查询固定时间段的数据

-- 查询2024年5月15号9点 到 2024年25号12点的数据
SELECT * 
FROM farm_list
WHERE createTime BETWEEN '2024-05-15 09:00:00' AND '2024-05-25 12:00:00'
ORDER BY createTime  ASC;

执行结果
在这里插入图片描述

4.删除一小时之内的数据

-- 删除1小时之内的数据
delete 
from farm_list
where DATE(createTime ) >= DATE(DATE_SUB(NOW(),INTERVAL 1 HOUR));

执行结果
在这里插入图片描述

8、数据库中数据表的合并

待更新。。。

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值