2025年数据表的增删改查(数据表的增删改查语句)

数据表的增删改查(数据表的增删改查语句)p 1 DDL 数据库操作 br SHOW DATABASES 查看当前有哪些数据库 br CREATE DATABASE if not exist 数据库名 创建数据库 br USE DATABASE 使用数据库 br SELECT p

大家好,我是讯享网,很高兴认识大家。



 <p>1.DDL-数据库操作<br /> SHOW DATABASES; //查看当前有哪些数据库<br /> CREATE DATABASE &#xff08;if not exist&#xff09;数据库名; //创建数据库<br /> USE DATABASE;//使用数据库<br /> SELECT DATABASE();//查看当前处于哪个数据库<br /> DROP DATABASE (if exist)数据库名&#xff1b;// 删除数据库</p> 

讯享网

2.DDL-表操作
SHOW TABLES;//查看所有表
CREATE TABLE 表名(字段 字段类型,字段 字段类型);//创建表
DESC 表名;//查看当前表有哪些字段
SHOW CREATE TABLE 表名;//查询建表语句
ALTER TABLE 表名 ADD 添加/MODIFY修改字段类型/CHANGE修改字段名称/DROP删除/RENAME TO修改表名…;//修改表结构
DROP TABIE 表名;//删除表


DML操作
1.添加数据
insert into 表名(字段1,字段2,…)values(值1,值2,…)[,(值1,值2,…)…];
2.修改数据
update 表名 set 字段1=值1,字段2=值2[where 条件];
3.删除数据
delete from 表名[where 条件];


DQL查询操作
select 字段列表 基本查询
from 表名列表 聚合函数(count、max、min、avg、sum)
where 条件列表 条件查询(where)
group by 分组字段列表 分组查询(group by)
having 分组后条件列表
order by 排序字段列表 排序查询(order by)
limit 分页参数 分页查询(limit)

1.查询多个字段
select 字段1,字段2,字段3…from 表名;
select * from 表名;
2.设置别名
select 字段1[as 别名1],字段2[as 别名2]… from 表名;
3去除重复记录
select distinct 字段列表 from 表名;

//1.查询指定字段name,workno,age返回
select name,workno,age from emp;
//2.查询所有字段返回
select id,workno,name, gender,age,idcard,workaddress,entrydate from emp;
select * from emp;
//3.查询所有员工的工作地址,起别名
select workaddress from emp;
select workaddress as ‘工作地址’ from emp;
select workaddress ‘工作地址’ from emp;
//4.查询公司员工的上班地址(不要重复)
select distinct workaddress ‘工作地址’ from emp;

 

DQL-条件查询
1.语法
select 字段列表 from 表名 where 条件列表;
2.条件
比较运算符 功能 逻辑运算符 功能
&gt; 大于 and 或 && 并且(多个条件同时成立)
&gt;= 大于等于 or 或 || 或者(多个条件任意一个成立)
&lt; 小于 not 或 ! 非,不是
&lt;= 小于等于
= 等于
&lt;&gt;或!= 不等于
between…and 在某个范围之内(含最小值、最大值)
in(…) 在in之后的列表中的值,多选一
like 占位符 模糊匹配(_匹配单个字符,%匹配任意个字符)
is null 是null

案例
//1.查询年龄等于88的员工
select * from emp where age=88;
//2.查询年龄小于20的员工信息
select * from emp where age =20;
//3.查询年龄小于等于20的员工信息
select * from emp where age&lt;=20;
//4.查询没有身份证号的员工信息
select * from emp where idcard is null;
//5.查询有身份证号的员工信息
select * from emp where idcard is not null;
//6.查询年龄不等于88的员工信息
select * from emp where age!=88;
select * from emp where age&lt;&gt;88;
//7.查询年龄在15岁(包含)到20岁(包含)之间的员工信息
select * from emp between age&gt;=15&& age&lt;= 20;
select * from emp where age &gt;=15 and age &lt;=20;
select * from emp where age between 15 and 20;
//8.查询性别为女且年龄小于25岁的员工信息
select * from emp where gender=‘女’&& age&lt;25;
//9.查询年龄等于18或20或40的员工信息
select * from emp where age=18||age=20||age=40;
select * from emp where age in(18,20,40);
//10. 查询姓名为两个字的员工信息
select * from emp where name like ‘’;
//11.查询身份证号最后一位是x的员工信息
select * from emp where idcard like ‘%X’;
 

DQL- 聚合函数 null 值不参与count运算
//1.统计该企业员工数量
select count() from emp;
select count(idcard) from emp;
//2.统计该企业员工平均年龄
select avg(age) from emp;
//3.统计该企业员工最大年龄
select max(age) from emp;
//4.统计该企业员工最小年龄
select min(age) from emp;
//5.统计西安地区员工的年龄之和
select sum(age) from emp where workaddress=‘西安’;

DQL-分组查询
where与having的区别
(1)执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;
而having是分组之后对结果进行过滤。
(2)判断条件不同:where不能对聚合函数进行判断,而having可以。
注意:
(1)执行顺序:where&gt;聚合函数&gt; having.
(2)分组之后,查询字段一般为聚合函数和分组字段,查询其他字段无任何意义。

//1.根据性别分组,统计男性员工和女性员工的数量
select gender, count(
) from emp group by gender;
//2.根据性别分组,统计男性员工和女性员工的平均年龄
select gender,avg(age) from emp group by gender;
//3.查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress,count() address_count from emp
where age&lt;45 group by workaddress having count(
)&gt;=3;

DQL-排序查询
排序方式:asc:升序;desc:降序。
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

//1.根据年龄对公司员工进行升序排序
select * from emp order by age asc;
//2.根据入职时间,对员工进行降序排序
select * from emp order by enteydate desc;
//3.根据年龄对公司员工进行升序排序,年龄相同,再按照入职时间进行降序排序
select * from emp order by age,entrydate desc;

DQL-分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;
注意:
(1)起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
(2)分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit。
(3)如果查询的是第一页的数据,起始索引可以省略,直接简写为limit 10。

// 1.查询第一页员工数据,每页展示10条记录
select * from emp limit 0,10;
select * from emp limit 10;
//2.查询第二页员工数据,每页展示10条记录
select * from emp limit 10,10;

DQL案例:
//1.查询年龄为20,21,22,23岁的女性员工信息
select * from emp where gender=‘女’ and age in(20,21,22,23);
select * from emp where gender=‘女’ and age=20 or age=21 or age=22 or age=23;
//2.查询性别为男,并且年龄在20-40岁(含)以内的姓名为三个字的员工
select * from emp where gender=‘男’ and age&gt;=20&&age&lt;=40 and name like ‘
_’ ;
select * from emp where gender=‘男’ and (age between 20 and 40) and name like ‘___’ ;
//3.统计员工表中,年龄小于60岁的,男性员工和女性员工的人数
select gender,count(gender) from emp where age&lt;60 group by gender;
//4.查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。
select name,age,entrydate from emp where age&lt;=35 order by age asc,entrydate desc;
//5.查询性别为男,且年龄在20-40岁(含)以内的前五个员工信息,对查询结果按年龄升序排序,年龄相同按入职时间升序排序。
select * from emp where (gender=‘男’ and age&gt;=20&&age&lt;=40 ) order by age asc,entrydate asc limit 0,5;

DQL-执行顺序
from&gt; where&gt; group by&gt; having&gt; select&gt; order by&gt; limit
//1.查询年龄大于15的员工的姓名、年龄,并根据年龄进行升序排序
select name,age from emp where age&gt;15 order by age asc;
select e.name ename,e.age eage from emp e where e.age&gt;15 order by eage asc;


DCL数据控制语言
用来管理数据库用户、控制数据库的访问权限
1.查询用户
use mysql;
select * from user;
2.创建用户
create user‘用户名’@‘主机名’identified by ‘密码’;
3.修改用户密码
alter user ‘用户名’@‘主机名’identified with mysql_native_password by‘新密码’;
4.删除用户
drop user‘用户名’@‘主机名’;

注意:
(1)主机名可以使用%通配
(2)这类sql开发人员操作的比较少,主要是数据库管理员使用。

//1.创建用户itcast,只能够在当前主机localhost访问,密码;
create user ‘itcast’@‘localhost’ identified by ‘’;
//2.创建用户heima,可以在任意主机访问该数据库,密码
create user ‘heima’@‘%’ identified by ‘’;
//3.修改用户heima的访问密码为1234;
create user ‘heima’@‘%’ identified by ‘’;
//4.删除itcast@localhost用户

 

DCL-权限控制

权限 说明

all,all privileges 所有权限

select 查询数据

insert 插入数据

update 修改数据

delete 删除数据

alter 修改表

drop 删除表

create 创建数据库/表


讯享网

 

1.查询权限

show grants for ‘用户名’@‘主机名’;         

show grants for ‘heima’@‘%’;

2.授予权限

grant 权限列表 on 数据库名.表名 to‘用户名’@‘主机名’;

grant all on itcast.* to ‘heima’@‘%’;

3.撤销权限

revoke 权限列表 on 数据库名.表名 from‘用户名’@‘主机名’;

revoke all on itcast.* from ‘heima’@‘%’;

 

注意:

(1)多个权限之间,使用逗号分隔

(2)授权时,数据库名和表名可以使用*进行通配,代表所有

 

 

 

小讯
上一篇 2025-04-29 19:36
下一篇 2025-05-13 08:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/205473.html