MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)
MySQL学习总结(2) — 数据表管理(增删改查)、使用DQL查询数据(SELECT)
1. 数据管理(增删改查)
数据库数据管理方法:
a.通过SQLyog等管理工具管理数据库数据
b. 通过DML语句管理数据库数据。
DML语言:
数据库操作语言,用于操作数据库对象中所包含的数据。
一般对数据库的主要操作包括:查询数据库中的信息、向数据库插入新的信息、从数据库删除信息以及修改数据库中的某些信息等。
1.1 添加数据
INSERT命令,语法:
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES(值1,值2,值3)
注意:字段或值之间用英文逗号隔开,可同时插入多条数据,values后用逗号隔开。
INSERT INTO student(`name`) VALUES ('zhangsan'); INSERT INTO student(`pwd`) VALUES ('784903'); INSERT INTO student(`sex`) VALUES ('男'); # 一次插入多条数据 INSERT INTO student(`name`) VALUES ('zhangsan'),('lisi');
1.2. 修改数据
UPDATE命令,语法:
UPDATE 表名 setcolumn_name = value [,column_name2=value, ...] [WHERE condition];
其中,column_name 为要更改的数据列,value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果,condition 为筛选条件 , 如不指定则修改该表的所有列数据
WHERE条件语句:
有条件的从表中筛选数据。
1. 3 筛选数据
DELETE命令,语法:
DELETE FROM 表名 [WHERE condition];
condition为筛选条件,如不指定则删除该表的所有列数据。
TRUNCATE命令,语法:
TRUNCATE [TABLE] table_name;
用于完全清空表数据,但表结构、索引、约束等不变。
DELETE命令和TRUNCATE命令的区别:
相同:都能删除数据 , 不删除表结构 ,
不同:1)TRUNCATE速度更快;2)使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器;3)使用TRUNCATE不会对事务有影响。
案例:
创建一个测试表,并使用DELETE命令和TRUNCATE命令删除数据。
# 创建一个测试表 CREATE TABLE `test` (`id` INT(4) NOT NULL AUTO_INCREMENT,`coll` VARCHAR(20) NOT NULL,PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8# 插入数据 INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');# 删除表数据(不带where条件的delete) DELETE FROM test;# 删除表数据(truncate) TRUNCATE TABLE test;
执行步骤:
1.先执行创建表的语句,然后执行插入数据语句后结果。
[外链图片转存失败(img-drd0ouzH-1563805376333)(E:\JAVA\2019-JAVASE-课件\20190629-JAVA-资料\4.png)]
2.执行DELETE 命令删除数据
图5
3.执行INSERT命令重新插入数据
图6
结论:如不指定Where,DELETE 命令则删除该表的所有列数据,自增当前值依然从原来基础上进行,会记录日志。
4.执行TRUNCATE命令删除数据
图5
5.执行INSERT命令重新插入数据
图4
结论:truncate删除数据,自增当前值会恢复到初始值重新开始;不会记录日志。
2. 使用DQL查询数据
2.1 DQL语言
DQL(Data Query Language 数据查询语言):可用来查询数据库数据,进行简单的单表查询或者多表的复杂查询和嵌套查询。
- 查询数据库数据 , 如SELECT语句
- 简单的单表查询或多表的复杂查询和嵌套查询
- 是数据库语言中最核心,最重要的语句
- 使用频率最高的语句
2.2 SELECT语句
SELECT语法:
SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]} FROM table_name [as table_alias][left | right | inner join table_name2] #联合查询[WHERE ...] #指定结果需满足的条件[GROUP BY ...] #指定结果按照哪几个字段来分组[HAVING] #过滤分组的记录必须满足的次要条件[ORDER BY ...] #指定查询记录按一个或多个条件排序[LIMIT {[offset,]row_count | row_countOFFSET offset}];# 指定查询的记录从哪条至哪条#其中[ ]为可选,{}为必选* 通配符,查询表中所有的数据列结果
总结:
#1.[ALL | DISTINCT] 全部/去重复 【+】 #2.选择字段可以是表、列,通过 as 取别名 【+】 #3.从哪个表选择,通过 as 取别名 #4.连接查询 (左连接,右连接,内连接) 【+】 #5.where 条件句子 【+】 #6.GROUP BY 通过什么列分组,返回每个列的数量 #7.HAVING 次条件子句 #8.ORDER BY 通过什么列进行排序,生序ASC,降序DESE #9.Limit startRows,PageRows 【+】
【注意】:顺序不能错。
指定查询字段:
查询表结果时 , 可指定查询结果的数据列。
查询表中所有的数据列结果 , 采用 " * " 符号。如:
# 查询student表中的所有信息 select * from student; # 查询student表中的指定列(学号,姓名) select StudentNo,StudentName from student;
取别名 as:
AS关键字可以给数据列取一个新的别名,在联合查询中方便区别不同表的相同的列名
#查询student表中的指定列(学号,姓名),并将列名显示为学号,姓名 select StudentNo as '学号',StudentName as '姓名' from student;
去重复 distinct:
distinct可以将查询返回的记录结果中的重复记录去掉,即当返回的某些列的值相同时,只返回一条记录
# 查询studenNo并去除重复学号的学生 select distinct StudentNo from student;
条件匹配WHERE:
WHERE用于检索数据表中符合条件的记录。
搜索条件可由一个或多个逻辑表达式组成 , 结果一般为真或假。
逻辑操作符 AND(可写为&&) OR(可写为||) NOT(可写为!)
# 查询考试成绩在95-100之间的学生学号和成绩 SELECT Studentno,StudentResult FROM result WHERE StudentResult>=95 AND StudentResult<=100;# 查询学号为1009的同学以外的其他学生的学号和成绩 SELECT studentno,studentresult FROM result WHERE NOT studentno=1009;
排序 ORDER BY:
- 升序 ASC
- 降序 DESC
#查询学员及所属的年级(学号,学生姓名,年级名) 按学号升序 select StudentNo,StudentName,GradeName from student as s inner join grade as g on s.GradeId=g.GradeID order by StudentNo ASC
分页 :
语法SELECT * FROM table LIMIT 起始页码,但也显示数量。
#查询学员及所属的年级(学号,学生姓名,年级名) 按学号升序,从第6条数据开始,显示十条查询结果。 select StudentNo,StudentName,GradeName from student as s inner join grade as g on s.GradeId=g.GradeID order by StudentNo ASC limit 6,10;
2.3 模糊查询:
between and
#查询科目8成绩在90分到100分之间的同学的学号 select StudentNo from result where SubjectNo=8 and StudentResult between 90 and 100;
like
需要结合通配符使用
# 查询所欲李姓同学的学号及姓名 SELECT studentno,studentname FROM student WHERE studentname LIKE '李%';# 查询李姓且名字只有两个字的同学的学号及姓名 SELECT studentno,studentname FROM student WHERE studentname LIKE '李_';# 查询李姓且名字只有三个字的同学的学号及姓名 SELECT studentno,studentname FROM student WHERE studentname LIKE '李_';# 查询姓名中含有文字的同学的学号及姓名(文字出现的位置不限) SELECT studentno,studentname FROM student WHERE studentname LIKE '%文%';
in
# 查询address为北京,南京,河南洛阳的学生 SELECT studentno,studentname,address FROM student WHERE address IN ('北京','南京','河南洛阳');#查询科目8成绩在90分到100分之间的同学的姓名(使用嵌套连接查询) select StudentName from student where StudentNo in(select StudentNo from result where SubjectNo=8 and StudentResult between 90 and 100);
null
#查询出生日期没有填写的同学(注意,不能用=null判断,要使用is null判断) SELECT studentname FROM student WHERE BornDate IS NULL;#查询出生日期填写了的同学 SELECT studentname FROM student WHERE BornDate IS NOT NULL;
o=8 and StudentResult between 90 and 100);
- **null**
#查询出生日期没有填写的同学(注意,不能用=null判断,要使用is null判断)
SELECT studentname FROM student
WHERE BornDate IS NULL;
#查询出生日期填写了的同学
SELECT studentname FROM student
WHERE BornDate IS NOT NULL;
【注意】**空字符串''并不等于NUll**
MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)相关推荐
- 【PostgreSQL】数据表的增删改查
关于数据库的增删改查可以参考之前的博客 [PostgresSQL]登录数据库(远程).管理数据库(增删改查) 下面是数据表的增删改查 1.增加数据表 # 创建ada_address_pool表 CRE ...
- 通过php执行mysql语句进行学生成绩表的增删改查
服务器:Apache 数据库:MySQL 通过php执行mysql语句进行增删改查,首先进行功能分析,需要写哪些执行文件,及其执行的功能: 1.index.php中:通过php执行sql语句获取数据库 ...
- MySQL学习笔记(一) 下载安装+基本增删改查 + 事务
1. 数据库概述 1.1 数据库相关概念 1.1.1 基本概念 了解三个概念:数据库.数据库管理系统.SQL. 名称 解释 简称 数据库 存储数据的仓库,数据是有组织的进行存储 DataBase(DB ...
- Django框架(4.django中进入项目的shell之后对数据表进行增删改查的操作)
django设计模型类.模型类生成表.ORM框架简介:https://blog.csdn.net/wei18791957243/article/details/88657270 数据操作 完成数据表的 ...
- Thingworx - 创建一个数据表的增删改查操作
创建一个数据形状: 创建数据形态(datashapes),点击选项右侧"+"号或者右侧界面"新建"按钮 在创建页面输入名称,也可以输入说明等,如果有项目等条件, ...
- MYSQL表的增删改查进阶(下)
MYSQL表的增删改查进阶 4. 查询 4.1 聚合查询 4.1.1 聚合函数 4.1.2 group by字句 4.1.3 having 4.2 联合查询 4.2.1 内连接 4.2.2 外连接 4 ...
- Django学习笔记(10)——Book单表的增删改查页面
一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...
- R操作MySQL数据库创建表、删除表、增删改查(CRUD)
R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...
- 【MySQL系列】 MySQL表的增删改查(进阶)
目录 ??前言 ??一.数据库约束 ???1.1 约束类型 ???1.2 null约束 ???1.3 unique约束 ???1.4 default约束 ???1.5 primary key 约束 ? ...
- 数据库概论之MySQL表的增删改查1
MySQL表的增删改查 1.MySQL表的CRUD 2.插入数据 2.1 语法 2.2 注意事项 3.查找语句 3.1 全列查找 3.2 指定列查询 3.3 指定查询字段为表达式 3.4 查询字段指定 ...
最新文章
- 版本发布后软件测试人员要做的工作
- Linux权限和进程管理、网络配置、任务调度(四)
- 深入浅出根据函数调用过程谈栈回溯原理
- 20155202《网络对抗》Exp9 web安全基础实践
- numpy 平方_NumPy入门指南
- Spring中的Bean是线程安全的么?
- js基础代码大全_关于前端业务代码的一些见解
- 计算机科学概论_第1章_数据储存
- 手柄映射键盘_新手有什么手机游戏手柄推荐?简单易懂5分钟教会你做出选择...
- 明解java.pdf_明解C语言:中级篇 PDF下载
- IV值区间与预测能力关系
- 一键下载QQ空间相册
- 抖音实战~手机号一键注册登录流程(验证码)
- 六.全文检索ElasticSearch经典入门-高亮
- 计算机模拟在数学实验报告,MATLAB实验-8计算机模拟.doc
- PHP构造函数construct 析构函数destruct
- SuperMap iDesktop常见问题解答集锦(五)
- 生成订单核销二维码,扫码完成核销
- 英语四六级常用八种时态
- Basic -- Test harness
热门文章
- 企业应用开发考试笔记——重点
- 深入了解MMU是如何完成地址翻译的?
- 大学物理实验_超声声速的测量_数据处理软件_源代码
- Apeaksoft iPhone Transfer for Mac(苹果数据传输软件)
- CAD .NET 二次开发 画一条直线代码
- 计算机里面excel移动不了,笔记本电脑excel光标不能移动怎么办
- 区块链技术与应用实验报告(实验一)
- 常见ASP.PHP CMS(网站内容管理系统)
- 说说我的专业计算机作文,说说我自己作文范文5篇
- ThinkPad电脑系统损坏如何重装Win10系统教学分享