数据库21/10/16

数据库

DML

插入数据

1.语法

  • insert into 表名(列名1,列名2,列名3)
    values(‘数据1’,‘数据2’,‘数据3’)

2.举例

insert into stu(stu_num,stu_name) values(1,'zhangsan');

删除数据

1.delete from 表名 where 条件 删除满足条件的数据
2.delete from 表名 删除表的所有数据(敏感操作)

修改数据

1.update 表名 set 列名 where 条件 修改满足条件的列里的数据
例如:

update stu set stu_name = '张三' where stu_num = 1;

2.修改两条数据,用逗号隔开
例如:

update stu set stu_name = '张三',stu_qq = '123456789' where stu_num = 1;

DQL

单表查询

从数据表中查询数据
1.select 列名1,列名2 from 表名 查询特定的列的所有行
2.select * from 表名 查询所有列的所有行的数据(在开发项目中不建议使用)
3.where子句

  • 单条件查询:select * from 表名 where 条件;
    例如:
select * from stu where stu_num=1;
  • 多条件查询:and or not between···and(左右都包括)连接

4.like

  • 在where语句中使用
  • select * from 表名 where 列名 like ‘’;
  • 例如:
       select * from stu where stu_name like '%o%';   -- 查找名字里带有o的所有数据
       select * from stu where stu_name like '_o&';    -- 查找名字里第二位是0的所有数据
  • %表示任意多字符,_表示任意一个字符

5.查询结果处理

  • 计算列
    例如:
select stu_name,2021-stu_age from stu;    -- 从stu表中显示姓名和出生年份(用当前年份-stu_age)
  • 字段别名(给查询结果的列名命名)如:
select 2021-stu_age as stu_birthyear from stu;
  • 消除重复的列 distinct 如:
select distinct stu_age from stu;

6.查询结果排序:单字段排序

  • 将查询到的记录按照指定的列的升序或者降序排列
  • order by 根据···升序排序
  • order by 根据···降序排列
  • select * from 表名 where 条件 order by 列名 asc|desc (将查询的结果按指定的列排序升序|降序)

7.查询结果排序:多字段排序

  • select * from 表名 where 条件 order by 列名 , 列名(先按第一个列排序)
    例如:
select * from stu order by stu_sex,stu_age asc;

8.聚合函数

  • count() 统计满足条件的指定字段值的个数
    例如:
select count(stu_num)from stu where stu_age>19;-- 统计stu表中有几个学号满足年龄大于19
  • max()计算最大值
    例如:
select max(stu_age) from stu where stu_sex='nv'; -- 计算nv里学生的最大值
  • min() 计算最小值
  • sum() 计算总和
    例如:
select sum(stu_age)from stu;    -- 计算所有学生年龄的总和
  • avg()计算平均值

9.日期函数

  • now()和sysdate()都为当前时间

10.字符串函数

  • **concat 连接
    例如: **
select concat(stu_num.'-',stu_name) from stu;    -- 将两组数据用-连接在一起
  • upper 转换成大写
    例如:
select upper(stu_name) from stu;    -- 将名字转换成大写
  • lower 转换成小写
    例如:
select lower(stu_name) from stu;     -- 将名字转换成小写
  • substring 从指定列中街区部分显示
    例如:
select stu_num,substring(stu_phone,1,4) from stu;    -- 显示姓名和电话的1-4位

11.分组查询

  • 语法:select 分组字段/聚合函数 from 表名 【where 条件】group by 分组列名【having 条件】(先where语句从数据库查询记录,group by对查询后的语句进行分类,having对分组后的记录进行筛选)
    例如:
select stu_age,count(stu_num) from stu group by stu_age having count(stu_num)>1;   -- 将数据按照年龄进行分组,后提取出年龄一样大的个数多于1的数据
  • group by 分组
    例如:
select * from stu group by stu_sex;    -- 按性别分组,但是显示每种性别的地一条
  • 按什么分组select后就写什么,就不是只显示第一条了
    例如:
select stu_sex from stu group by stu_sex;    -- 显示两种性别
  • 应用 可以计算每组的个数
    例如:
select stu_sex,count(stu_num) from stu group by stu_sex;
posted @ 2021-10-16 21:44  想吃坚果  阅读(59)  评论(0)    收藏  举报