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变量类型

链接

相关推荐
夜泉_ly2 小时前
MySQL -安装与初识
数据库·mysql
qq_529835353 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New5 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6755 小时前
数据库基础1
数据库
我爱松子鱼5 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo6 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser7 小时前
【SQL】多表查询案例
数据库·sql
Galeoto7 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)7 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231117 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql