当前位置: 首页 > news >正文

mysql数据库关于表的基础知识

一、数据库操作

sql

-- 1. 创建数据库 CREATE DATABASE 数据库名; CREATE DATABASE school; -- 2. 删除数据库 DROP DATABASE 数据库名; DROP DATABASE school; -- 3. 切换到指定数据库 USE 数据库名; USE school; -- 4. 查看当前所有数据库 SHOW DATABASES;

二、表操作

sql

-- 1. 创建表 CREATE TABLE 表名 ( 列名1 数据类型 [约束], 列名2 数据类型 [约束], ... ); -- 示例:创建 users 表 CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,自增 name VARCHAR(50) NOT NULL, -- 非空字符串 password VARCHAR(50) NOT NULL, age INT, create_time DATETIME DEFAULT CURRENT_TIMESTAMP ); -- 2. 删除表 DROP TABLE 表名; DROP TABLE users; -- 3. 查看表结构 DESC 表名; DESC users; -- 4. 修改表名 ALTER TABLE 旧表名 RENAME TO 新表名; ALTER TABLE users RENAME TO user_info; -- 5. 添加列 ALTER TABLE 表名 ADD 列名 数据类型; ALTER TABLE users ADD email VARCHAR(100); -- 6. 修改列 ALTER TABLE 表名 MODIFY 列名 新数据类型; ALTER TABLE users MODIFY age TINYINT; -- 7. 删除列 ALTER TABLE 表名 DROP 列名; ALTER TABLE users DROP email;

三、数据操作(增删改查)

1. 增(INSERT)

sql

-- 单条插入 INSERT INTO 表名(列1, 列2, ...) VALUES(值1, 值2, ...); INSERT INTO users(name, password) VALUES('zhangsan', '123456'); -- 批量插入 INSERT INTO users(name, password) VALUES ('zhangsan', '123456'), ('lisi', '654321'), ('wangwu', '111111');

2. 删(DELETE)

sql

-- 按条件删除(推荐) DELETE FROM 表名 WHERE 条件; DELETE FROM users WHERE id = 1; -- 清空整张表(危险!) DELETE FROM users; TRUNCATE TABLE users; -- 更快,重置自增ID

3. 改(UPDATE)

sql

-- 按条件修改(推荐) UPDATE 表名 SET 列1=新值1, 列2=新值2 WHERE 条件; UPDATE users SET password='000000' WHERE id=1; -- 批量修改 UPDATE users SET password='000000' WHERE name='zhangsan';

4. 查(SELECT)

sql

-- 1. 查询所有列 SELECT * FROM 表名; SELECT * FROM users; -- 2. 查询指定列 SELECT 列1, 列2 FROM 表名; SELECT id, name FROM users; -- 3. 条件查询 WHERE SELECT * FROM users WHERE id = 1; SELECT * FROM users WHERE age > 18; SELECT * FROM users WHERE name LIKE '%zhang%'; -- 模糊查询 -- 4. 排序 ORDER BY SELECT * FROM users ORDER BY age ASC; -- 升序 SELECT * FROM users ORDER BY age DESC; -- 降序 -- 5. 分页 LIMIT SELECT * FROM users LIMIT 0, 10; -- 第1页,10条 SELECT * FROM users LIMIT 10 OFFSET 10; -- 第2页,10条 -- 6. 聚合函数 SELECT COUNT(*) FROM users; -- 总条数 SELECT MAX(age) FROM users; -- 最大年龄 SELECT MIN(age) FROM users; -- 最小年龄 SELECT AVG(age) FROM users; -- 平均年龄 SELECT SUM(age) FROM users; -- 年龄总和 -- 7. 分组 GROUP BY SELECT age, COUNT(*) FROM users GROUP BY age; -- 8. 分组后过滤 HAVING SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;

四、多表查询(JOIN)

sql

-- 示例表 -- users(id, name) -- orders(id, user_id, amount) -- 1. 内连接 INNER JOIN(只显示两边匹配的数据) SELECT * FROM users u INNER JOIN orders o ON u.id = o.user_id; -- 2. 左连接 LEFT JOIN(显示左表所有数据,右表匹配不到显示 NULL) SELECT * FROM users u LEFT JOIN orders o ON u.id = o.user_id; -- 3. 右连接 RIGHT JOIN(显示右表所有数据,左表匹配不到显示 NULL) SELECT * FROM users u RIGHT JOIN orders o ON u.id = o.user_id;

五、常用约束

sql

CREATE TABLE users ( id INT PRIMARY KEY, -- 主键(唯一且非空) name VARCHAR(50) NOT NULL, -- 非空 phone VARCHAR(11) UNIQUE, -- 唯一 age INT CHECK (age > 0), -- 检查约束(MySQL 8.0+支持) gender VARCHAR(5) DEFAULT '男', -- 默认值 FOREIGN KEY (dept_id) REFERENCES dept(id) -- 外键 );

六、常用函数

sql

-- 字符串函数 SELECT CONCAT('hello', 'world'); -- 拼接 SELECT LENGTH('zhangsan'); -- 长度 SELECT UPPER('zhangsan'); -- 转大写 SELECT LOWER('ZHANGSAN'); -- 转小写 -- 日期函数 SELECT NOW(); -- 当前时间 SELECT CURDATE(); -- 当前日期 SELECT YEAR(NOW()); -- 年 SELECT MONTH(NOW()); -- 月 -- 条件函数 SELECT IF(age > 18, '成年', '未成年') FROM users; SELECT CASE age WHEN 18 THEN '成年' ELSE '未成年' END FROM users;

七、事务(保证数据安全)

sql

START TRANSACTION; -- 开启事务 UPDATE users SET password='xxx' WHERE id=1; -- 可以在这里检查是否正确 COMMIT; -- 提交事务(永久生效) ROLLBACK; -- 回滚事务(撤销所有操作)
http://www.jsqmd.com/news/672879/

相关文章:

  • 中文图形编程+语音识别,485设备智能化一步到位
  • IDR逆向工程工具:Delphi程序反编译完整指南
  • 【项目实训(个人)】5:完成管理员端及统计功能
  • DCT-Net卡通化模型多语言支持:Gradio界面中英文切换与本地化配置
  • GLM-OCR一键部署教程:基于Ubuntu20.04的快速环境配置指南
  • Gitee DevOps平台:中国企业的数字化研发效能加速器
  • 电脑批量改文件名的4种超实用方法,原来这么简单!
  • memory泄露分析方法(FD泄漏篇)
  • 简易信号失真度测量装置的设计与实现(STM32单片机)
  • 山东大学软件学院项目实训进展记录2
  • 基恩士KV7500/KV8000轴控制FB模板大全:多种定位控制单元适配,PLC编程利器,详细...
  • Dify 客户端插件集成全链路解析(C# 14 + Native AOT 部署终极手册)
  • 发票统计软件:批量OCR识别的神器
  • 2026年3月赛事承办学习机构推荐,比较好的赛事承办推荐10年质保有保障 - 品牌推荐师
  • 在macOS上享受完美歌词体验:LyricsX终极使用指南 [特殊字符]
  • 博士论文不是“本科生Pro版”,好写作AI的“学术脚手架”让孤独的长征有迹可循
  • LVGL官方例程深度调优指南:以lv_demo_widgets为例,释放你的TFT-LCD全部潜力
  • 【LeetCodeHOT100】 160. 相交链表 —— Java多解法详解
  • 保姆级教程:在Ubuntu 20.04上从源码编译运行ORB_SLAM2(附TUM数据集测试)
  • 科研小白第一次向国外实验室要质粒,我的完整邮件模板与催更话术(附避坑经验)
  • Python的__reduce__与__reduce_ex__方法在对象序列化中的定制
  • “像河流一样编程”:从罗素的散文学习如何设计可维护的软件架构与优雅的代码生命周期
  • Dify工作区权限继承链断裂?资深SRE教你用GraphQL动态追溯17级权限依赖关系
  • 别再让Excel弹窗被挡住了!手把手教你用VBA给UserForm加个“永远置顶”按钮
  • 别光下载了!用C++ Primer第5版源码在VS Code里搭建你的第一个C++项目(附GCC/MSVC配置)
  • 魔兽争霸3终极优化秘籍:让经典游戏在现代电脑上焕然新生!
  • 人工智能之数学基础:动量梯度下降法
  • 终极指南:如何免费解锁Cursor AI Pro功能,突破试用限制
  • 论文魔法师:书匠策AI,让期刊论文创作如行云流水
  • 从“会写”到“会思考”,好写作AI的本硕博论文功能藏着三层“学术年轮”