mysql 常用命令练习

管理表格

javascript 复制代码
创建一个包含三列的新表
CREATE TABLE products (
    id    INT,
    name  VARCHAR(255) NOT NULL,
    price INT DEFAULT 0,
    PRIMARY KEY(id) // 自增
);
从数据库中删除表
DROP TABLE product;
向表中添加新列
ALTER TABLE product ADD column_name VARCHAR(255) DEFAULT '';
从表中删除列c
ALTER TABLE product DROP COLUMN column_name
添加约束
ALTER TABLE product ADD constraint check_price_positive check (age>=0);
删除约束
ALTER TABLE product DROP constraint check_price_positive;
将表从product重命名为products
ALTER TABLE product RENAME TO products;
将列names重命名为name
ALTER TABLE products  CHANGE names name INT
将列name的数据类型改为varchart(255)
ALTER TABLE products MODIFY name VARCHAR(255);
删除表中的所有数据
TRUNCATE TABLE products

从表中查询数据

javascript 复制代码
从表中查询列c1、c2中的数据
select value,set_time from sys_config
查询表中的所有行和列
select * from sys_config sc 
查询数据并使用条件筛选行
select value,set_time from sys_config sc WHERE value = 100
select value,set_time from sys_config sc WHERE value <> 100
select value,set_time from sys_config sc WHERE value like '%F%'
select value,set_time from sys_config sc WHERE value not like '%F%'
select value,set_time from sys_config sc WHERE value IS NULL
select value,set_time from sys_config sc WHERE value is not  NULL
select value,set_time from sys_config sc WHERE value BETWEEN 50 AND 200
select value,set_time from sys_config sc WHERE value IN (64, 65, 66)
select value,set_time from sys_config sc WHERE value not IN (64, 65, 66)
查询表中的不同行(去重)
select distinct  value,set_time, from sys_config sc
按升序或降序对结果集排序
select * from sys_config sc ORDER  BY set_time ASC
select * from sys_config sc ORDER  BY set_time DESC
跳过行的偏移并返回下n行(分页)
SELECT * FROM sys_config  sc ORDER BY value limit  10 OFFSET 0
使用聚合函数对行进行分组
SELECT value,MAX(set_time),count(*)  FROM sys_config  sc GROUP BY value,set_time
SELECT value,avg(set_time)  FROM sys_config  sc GROUP BY value,set_time
使用HAVING子句筛选组(过滤)
SELECT value,avg(set_time)  FROM sys_config  sc GROUP BY value,set_time having value <>100

从多个表查询

javascript 复制代码
内部连接 t1 和 t2
SELECT n.*,a.ages FROM names n INNER JOIN ages a on n.name = a.name
左连接t1和t1
SELECT n.*,a.ages FROM names n left JOIN ages a on n.name = a.name

修改数据

javascript 复制代码
在表格中插入一行
INSERT INTO sys_config(variable,value,set_time,set_by) VALUES(1,2,'2023-07-11 18:29:24',4);
在表格中插入多行
INSERT INTO sys_config(variable,value,set_time,set_by) 
VALUES(15,2,'2023-07-11 18:29:24',4),(5,6,'2023-07-11 18:29:24',7);
将行从t2插入t1(跨表)
INSERT INTO names(id,name,num)
SELECT id,name,1 AS num FROM ages;
更新列c1中所有行的新值
UPDATE names SET num = 1;
更新列c1、c2中与条件匹配的值
UPDATE names SET num = 11 where name = 2;
删除表中的行子集
DELETE FROM names WHERE id = 1;

sql变量类型

链接

相关推荐
银发控、2 小时前
MySQL联合索引
数据库·mysql
予枫的编程笔记2 小时前
【MySQL修炼篇】从踩坑到精通:事务隔离级别的3大异常(脏读/幻读/不可重复读)解决方案
数据库·mysql·后端开发·数据库事务·事务隔离级别·rr级别·脏读幻读不可重复读
一起养小猫3 小时前
Flutter for OpenHarmony 实战:记账应用数据统计与可视化
开发语言·jvm·数据库·flutter·信息可视化·harmonyos
世界尽头与你3 小时前
(修复方案)CVE-2023-22047: Oracle PeopleSoft Enterprise PeopleTools 未授权访问漏洞
数据库·安全·oracle·渗透测试
韩立学长3 小时前
【开题答辩实录分享】以《智能大学宿舍管理系统的设计与实现》为例进行选题答辩实录分享
数据库·spring boot·后端
Henry Zhu1233 小时前
数据库(五):反规范化
数据库
Mr_Xuhhh4 小时前
MySQL函数详解:日期、字符串、数学及其他常用函数
java·数据库·sql
he___H5 小时前
Redis高级数据类型
数据库·redis·缓存
霖霖总总5 小时前
[小技巧60]深入解析 MySQL Online DDL:MySQL Online DDL、pt-osc 与 gh-ost 机制与最佳实践
数据库·mysql
爱学习的阿磊5 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python