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

mysql数据库基础操作

1.操作数据库

#创建库
1)创建数据库,判断是否存在,并设置字符集create database if not exists db1 character set utf8mb4;#查询库
1)查看所有库show databases;
2)查看库的字符集show create database db1;#修改库
1)修改数据库的字符集alter database db1 character set utf8mb4;#删除库
1)删除数据库drop database db1;
2)判断数据库存在就删除;drop database if exists db1;#使用数据库
1)查询当前正在使用数据库的名称select database();
2)进入指定数据库use db1;

2.对表结构操作

#创建表
1)判断表存在就不执行,不存在就创建      create table if not exists tb1(id int unsigned not null AUTO_INCREMENT PRIMARY KEY,username varchar(30) not null,password char(32) not null,email varchar(100) not null,pic varchar(50) default './public/img/pic.jpg')engine=innodb default charset=utf8;实例解析:
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。
2)复制表craete table tb2 like tb1#查询表 1)查看库里所有的表show tables; 2)查看表结构desc tb1;show columns from dycx_details; 3) 查询注释select COLUMN_NAME, COLUMN_COMMENT from INFORMATION_SCHEMA.Columns where table_name = 'table'; #修改表 1)修改表名alter table tb1 rename to tb2; 2)修改表的字符集alter table tb1 character set utf8mb4; 3)添加一列alter table tb1 add gender varchar(10); 4)修改列名和类型alter table tb1 change gender sex varchar(20);alter table tb1 modify sex char(10); #只修改类型 5)删除列alter table tb1 drop sex;#删除1)删除表drop table tb1;drop table if exists tb1; #判断是否存在然后删除;
3.对表里的数据操作
#查询表1)查询所有数据select * from tb1;2)对某一列进行去重查询select distinct name from tb1;3)多字段查询,数值相加生成新字段,起别名,判断字段为null用0替换select line1,line2,ifnull(line3, 0),line2+line3 as 总分 from tb1;4)条件查询select * from tb1 where id (=,!=, >, <, <>) 20; #注意<>也是不等于#查找年龄20到30之间的select * from tb1 where age between 20 and 30; #简写,查找年龄20到30之间的等同于上面select * from tb1 where age >=20 and age <=30;  #查找年龄为10,20,30的,or也可写为||select * from tb1 where age=10 or age=20 or age=30; #简写,查找年龄为10,20,30的等同于上面select * from tb1 where age in (10,20,30);#查询年龄为null的select * from tb1 where age is null;#查询年纪不为nullselect * from tb1 where age is not null;5)模糊查询#查询姓""select * from tb1 where name like '马%'#查询名字包含""select * from stu where name like "%马%";#查询名字是三个字符的select * from tb1 where name like "___" 6)排序查询#升序ascselect * from student3 order by math asc;select * from student3 order by math;  #默认升序#降序descselect * from student3 order by math desc;7) 聚合函数  (注意聚合函数会排除为null的数据,解决方法计算前先用ifnull()替换)1. count()   计算个数select count(name) from tb1;  #查询一共有多少个人2.max() 取出最大值select max(age) from tb1;  #查询年龄最大的3.min() 取出最小值  select min(age) from tb1;   #查询年龄最小的4.sum()  求和select sum(age) from tb1;   #求年龄总和5.avg()  计算平均值select avg(age) from tb1;#求平均年龄8)分组查询  group by#按性别分组每组各有多少人select sex, count(id) from tb1 group by sex; #按性别分组,每组多少人,并年龄小于20的不参与分组select sex,count(id) from tb1 where age>20 group by sex;#having ,按性别分组,每组多少人,并年龄小于20的不参与分组,并不要分组人数少于2的select sex,count(id) as rsu from tb1 where age >20 group by sex having rsu>2;9)分页#从0开始显示10条数据select * from student3 limit 0,10;#增,删,改1)添加数据insert into tb1(列名1,列名2,...) values(值1,值2,...);insert into tb1 values(值1,值2,...)2)删除数据delete from tb1 where id=1;truncate table tb1;  #先删除表,然后创建一张一样的表。(如果删除所有的数据推荐使用)3)修改数据update tb1 set name="张三" , age=17 where id=1;#按时间查询
Select * From user Where DATE_FORMAT(字段,'%m-%d') >= '06-03'

4.约束

1)非空约束 not null
2) 唯一约束 unique  #注意唯一约束可以有多个null值#删除除唯一约束alter table tb1 drop index name;  注意删除唯一约束只能用这个方法,不能用修改类型来改变唯一约束。3)主键约束:primary key注意:1.含义:非空且唯一;2.一张表只有一个主键;3.主键就是表中记录的唯一标识;#删除除主键alter table tb1 drop primary key; #只能用这种方法删除主键4)自增:auto_increment
5) 外键约束:foreign key#创建表时添加外键create table tb1(constraint 外键名称 foreign key (外键列名称) references 主表列名称);#删除外键alter table tb1 drop foreign key 外键名;#创建表以后添加外键alter table tb1 add constraint 外键名称 foreign key (外键列名称) references 主表列名称
6)级联操作1.级联更新:on update cascade2.级联删除:on delete cascade

5.多表联查

1)内连接:inner joinselect * from tb1 t1,tb2 t2 where t1.id=t2.id2;select * from tb1 t1 join tb2 t2 where t1.id=t2.id2;select * from tb1 t1 inner join tb2 t2 where t1.id=t2.id2;2)左连接:left joinselect * from tb1 t1 left join tb2 t2 on t1.id=t2.id;  #注意这里的判断条件用on
3)右联查:rightselect * from tb1 t1 right join tb2 t2 on t1.id=t2.id2;

6.事物

开启事物 start transaction; 
提交事务 commit;回滚事务 rollback;

 

http://www.jsqmd.com/news/562151/

相关文章:

  • Microstation v8与Terrasolid插件安装全攻略:从零到精通
  • 深入RFSOC的射频数据流:图解ADC的DDC与DAC的DUC是如何工作的
  • 3大维度解析猫抓:资源捕获与智能解析的终极方案
  • Windows11下快速搭建PyTorch-GPU开发环境:从驱动到测试全流程指南
  • 终极WebGL 3D图形开发指南:gl-matrix快速集成实战
  • 毕业季必看!2026年最新AI写论文工具测评,选题到降重这几款真的免费又好用 - 沁言学术
  • Bash Infinity代码重构终极指南:如何将传统脚本升级为现代化框架
  • 从一次存储故障复盘说起:深入理解FC SAN中WWN、WWPN、WWNN的区别与实战应用
  • z.lua 与 FZF 完美整合:可视化目录导航的终极指南
  • 终极Vim文件搜索指南:快速掌握ctrlp.vim的安装与配置技巧
  • 提升51%运行速度:Win11Debloat系统优化工具全方位应用指南
  • 如何通过APKMirror解决安卓应用安全下载与版本管理难题
  • Audacity音频编辑神器:5大核心功能助你成为专业音频制作人
  • 告别OpenCV卡顿:手把手教你用昇腾310P的DVPP硬件加速图像预处理(附完整代码)
  • 微信读书助手wereader:革新数字阅读体验的全方位解决方案
  • Graph Node数据源模板:创建动态可扩展数据索引的完整指南
  • Orleans分布式追踪采样率配置终极指南:平衡数据量与精度的10个技巧
  • Hearthrock:跨次元交互引擎赋能炉石传说AI创新开发
  • OpenClaw备份与迁移:Qwen3.5-4B-Claude项目环境快速转移
  • 6个高效技巧:用Pencil Project实现专业原型设计流程
  • 3/30
  • 数字信号处理IIR与FIR笔记
  • TwinCAT3进阶指南:台达A2伺服扭矩读取与回零实战
  • Atmosphere系统功能扩展指南:从基础配置到高级应用的完整学习路径
  • 不同预算都能把AI率降到20%以内:免费到付费工具全推荐
  • Lark语法优先级终极指南:如何正确处理运算符优先级和结合性
  • Win10/8/7开机密码忘了?3分钟教你用U盘PE系统重置(附各品牌快捷键表)
  • Python接口与抽象基类:构建可扩展系统的终极指南
  • DocArray与FastAPI集成:构建高性能多模态API的简单方法
  • 计算机毕业设计:Python二手车市场数据分析与价格预测系统 Django框架 随机森林 可视化 数据分析 汽车 车辆 大数据 hadoop(建议收藏)✅