数据库基础操作(二)数据库表数据的增删查改
一、插入数据 insert
向表中制定字段添加数据:insert into 表 (字段名1,字段名2......) values(值1,值2......);
向表中所有字段添加数据:insert into 表 values(值1,值2......);
复制代码
注意:
- values中的‘值’得数量要和字段名的数量一致;
- ‘值’的顺序要和字段名的顺序一致;
- 插入‘值’的类型要和字段的类型一致;
- 插入的‘值’不要超过你所设置的最大长度;
- 插入的‘值’如果是字符串或者是日期请记得添加单引号;
- 如果是使用的插入语句是向表中所有字段添加数据那么你的‘值’的数量和类型要和表里面的一致
二、修改数据 update
修改数据:update 表名 set 字段名1=值1,字段名2=值2;
带条件的修改数据:update 表名 set 字段名1=值1,字段名2=值2 where 条件;
复制代码
注意:
- 修改‘值’的类型需要和字段名一致;
- 修改‘值’的时候不能超过最大长度;
- 修改的‘值’如果是字符串或者是日期请记得添加单引号;
三、删除数据delete
带条件的删除语句:delete from 表名 [where 条件];复制代码
注意:delete from 表名;和truncate table 表名;的区别
- 从删除方式来说delete是一条一条的删除记录,不会去清空auto_increment记录数。而truncate则是直接将表删除重新建一个表,auto-increment将会被清空没有记录。
- 从事物方面来说delete删除的数据在一个事物内还能够找回,而truncate删除的数据是找不回来的。
四、查询数据 select
查询语句的基本语法:select [distinct] * 或者 字段名1,字段名2 from 表 [where 条件];
复制代码
distinct这个关键字在你使用的时候需要注意一下,当你查询的字段值只有一个的时候它会去掉这一个字段中 所有相同的数据如果你要是查询的是多个字段那么它会根据你的这两个字段来进行查询除非是这两个字段中的数据同时与其他的数据相同才会去除重复的。
为了简单的来说明这个基本查询我们来创建一张表用来举例:
#创建一张表
create table student(
#学号
id int(5) primary key auto_increment,
#学生名字
name varchar(10),
#学生年龄
age int(3),
#学生生日
s_date date
)复制代码
表创建完之后再插入一些数据
insert into student values (null,'张三',19,null);
insert into student values (null,'李四',20,null);
insert into student values (null,'王五',20,null);
insert into student values (null,'赵六',19,null);复制代码
简单查询:
1、查询所有学生
select * from student;复制代码
2、查询学生的学号和名字
select id,name from student;复制代码
3、使用别名的方式来查询学生的名字
select name as '学生' from student;复制代码
4、筛选学生年龄
select distinct(age) from student;复制代码
5、将所有学生的年龄加10显示
select name,age+10 as age from student;复制代码
条件查询:
在开始这些查询之前先说一下where后面的内容怎么写
比较运算符:
> 大于
< 小于
<= 小于等于
>= 大于等于
= 等于
<> 不等于
!= 这个也是不等于但是这个并不是sql的标准语法
between...and... 显示在某一个区间的值
in(...) 显示在in列表中的值比如说in(1,2,3)
like'%' 模糊查询,在like语句中'%'代表着零个或者多个字符,'_'代表着一个字符
is null 判断非空
逻辑运算符:
and 多个条件同时成立
or 多个条件任意一个成立
not 条件不成立复制代码
1、显示名字为'张三'学生的所有信息
select * from student where name = '张三';
2、查询年龄大于等于20岁的学生
select * from student where age>=20;
3、查询姓'张'的学生
select * from student where name like '张%';
4、查询id为'1'和'4'的学生
select * from student where id in(1,4);
5、查询id为'1'或者'3'的学生
select * from student where id=1 or id=3;
6、查询年龄为19同时id为1的学生
select * from student where age = 19 and id = 1;
排序查询
select ... order by 字段 asc或者desc...;
asc就是升序,desc就是降序
根据学号来对学生进行升序排序
select * from student order by id asc;
根据学号来对学生进行升降序排序
select * from student order by id desc;
聚合函数
sum() 求和
avg() 平均
max() 最大值
min() 最小值
count() 计数复制代码
查询所有学生年龄的总和
select sum(age) from student;
查询所有学生年龄最大值
select max(age) from student;
查询所有学生年龄最小值
select min(age) from student;
查询学生总数
select count(id) from student;
查询学生平均年龄
select avg(age) from student;
分组查询
group by...
如果你进行分组查询的话那么你只能使用having来进行查询,这里我就不细说了我会在之后的面试题中来进行具体的分析。
五、数据库表与表之间的关系
数据库表与表之间的关系基本上就是一下三种
1、一对多关系
- 例子:客户表与订单表之间的关系,部门表与员工表之间的关系,商品分类表和商品表之间的关系。
- 一对多建表原则:就拿上面的例子直接来说一个客户会有多个订单,那么客户表就是一,订单表就是多,创建表的时候就需要给‘多’的一方也就是订单表设置一个外键,目标是指向‘一’的一方的也就是客户表的主键。这样就实现了一对多。
2、多对多关系
- 例子:学生表和课程表之间的关系,商品表和订单表之间的关系,人物表和角色表之间的关系
- 多对多建表原则:多对多的话就不在是两张表了,而是需要添加一张中间表,是三张表进行操作,这张中间表需要有两个字段这两个字段需要作为外键分别指向各自的自一方的主键。简单的理解就是把一个多对多,变成两个一对多。
3、一对一关系
着中关系的表开发中确实比较罕见就不举例了。
六、多表查询
1、交叉连接查询(基本不会使用,这样是得到的两个表的乘积)
语法:select * from A表,B表;
2、内连接查询()
- 隐式内连接:select * from A表,B表 where 条件;
- 显示内连接:select * from A表 inner join B表 on 条件;
3、外链接查询
- 左外链接:select * from A表 left outer join B表 on 条件;
- 右外链接:select * from A表 right outer join B表 on 条件;
4.子查询
简单的理解就是将一条sql语句查询出来的表的结果作为另一个查询语句的表;
select * from table where table.id=(select id from table2 where table2.id=1);
转载于:https://juejin.im/post/5b3dd6efe51d451991548579
数据库基础操作(二)数据库表数据的增删查改相关推荐
- 【MySQL】表数据的增删查改(DML)
文章目录 一. 插入语句 --- insert 1. 指定 or 全字段插入 2. 多行数据插入 3. key不冲突直接插入,冲突的话就修改 4. 替换 ---- replace 二. 查询语句 -- ...
- 通过jQuery把数据库里面的数据进行增删查改
之前我们在数据库里面做过简单的增删查改,这次我们在jQuery里面把数据库映射过来,在jQuery里面做增删查改 数据库映射过来之后,我们则去到我们刚刚新建的LinqSelect的控制器当中去写一个查 ...
- 【超详细Django网站开发过程7】便利店管理系统之——利用管理员用户对客户数据进行增删查改
提到数据库,就免不了对信息的增删查改,今天来做一个管理员用户对顾客数据的增删查改功能. 导航 1.增删查改中的--"查"操作如下: 2.增删查改中的--"增"操 ...
- MyBatis实现数据的增删查改
MyBatis的配置请参考我的上一篇文章,在上一篇文章的基础上我们实现数据的增删查改. 创建实现增删查改的xml文件,这里才是真正实现增删查改的文件. 创建完后要在配置文件中注册创建好的xml文件: ...
- MySQL表sql语句增删查改_学会这些操作你就不会栓Q(狗头)
目录 本章目标 CRUD 新增(Create) 单行数据,全列插入 多行插入,指定列插入 查询(Retrieve) 修改(Update) 删除(Delete) 本章目标 学会MySQL表中的sql语句 ...
- Qt通过ODBC连接虚谷数据库,并对数据库数据进行增删查改
目录 虚谷数据库 简介 测试虚谷数据库 虚谷数据库中系统表 win7搭建OBDC数据源 Qt连接数据库 通过QSqlDatabase的QODBC连接虚谷数据库 查询修改虚谷数据库中数据 测试案例 补充 ...
- P4 数据记录增删查改操作
目录 查看数据表中的记录 如何往数据表中添加数据记录 写法一 写法二 如何删除数据 如何修改数据 查看数据表中的记录 SELECT * from pet; 如果为空: Empty set (0.03 ...
- MySQL~数据库表中数据的增删查改(基础篇)
文章目录 增加 建表 多行数据 全列插入 多行数据 指定列插入 查询 全列查询 指定列查询 查询字段为表达式 查询字段 名字重定义 去重 distinct 排序 order by 条件查询 运算符 比 ...
- js操作表格数据,DOM实现数据动态增删查改
项目文件下载 基本功能 demo中涉及到的管理员密码为:962464.当然啦,那是假的,代码里面能找到,随意修改,模拟敏感操作而生 1.增加 点击增加按钮,出现信息输入界面,输入完成后确认添加 2.删 ...
最新文章
- #串口通信超时处理_简单通信协议
- 教你利用python 的单人AI 扫雷游戏
- python 标准错误输出_过程的实时标准输出/错误捕获
- 标签页式样的对话框参考
- 用CUDA实现Bellman-Ford
- MFC的Serialize机制及其使用(转)
- 功能与命令式编程。 Java 8中的斐波那契,素数和阶乘
- Java Servlet教程– ULTIMATE指南(PDF下载)
- javapanel根据内部组件_java gui中怎么用jpanel实现组件的绝对定位
- 《成语玩命猜》两个弓
- VB.NET工作笔记005---用visual studio2017 编写WCF vb.net webservice
- 打不开baidu晓得、百科等可是其他网页正常的解决方法
- php类3个属性是哪3种,PHP获取类私有属性的3种方法
- 2017年云计算行业新动向盘点
- 适用于ASP.NET的自定义分页控件
- android圆角柱状图,MPAndroidChart 圆角柱状图-Go语言中文社区
- speedoffice(word)字体如何设置为斜体
- 电脑系统重装篇3:Windows 7 系统安装步骤(UltraISO)
- android系统无法识别u盘,OTG无法识别U盘怎么办 OTG无法识别解决方法
- 计算机网络-DHCP的工作原理,IP地址如何获取