Day2 MySql函数以及单表查询详解数据库
2023-06-13 09:20:20 时间
--批量插入多条记录
insert into student(sname,age) values(ww,19),(zs,18),(tq,20);
--student表有数据,stu表复制student表数据
--复制表结构
create table stu select * from student where 1 = 0;
--复制表数据
insert into stu select * from student;
update(修改)
update tname set 字段=新值 [where 条件]
--ww的年龄+1 update student set age=age+1 where sname=ww;delete(删除)
delete from tname [where 条件]
delete from student where sid =5;delete和truncate的区别 delete不会重置自增,truncate会重置
2.delete删除是行级删除,一行一行删除,效率低;truncate效率高。
emp(员工)表
dept(部门)表
--查询所有数据(结果集) select * from emp; --查询部分字段 名称和工资 select ename,sal from emp; --查询工资 2000的员工信息(单一条件查询) select * from emp where sal 2000; --查询在20号部门且工资大于2000的员工信息(多个条件) select * from emp where deptno = 20 and sal 2000 --查询在20号部门或者工资大于2000的员工信息 select * from emp where deptno = 20 or sal 2000; --查询工资大于等于1000小于等于3000的员工信息(范围查询) select * from emp where sal = 1000 and sal = 3000; select * from emp where sal between 1000 and 3000; --查询员工编号为7788,7369,7521的员工信息(集合查询) select * from emp where empno = 7788 or empno = 7369 or empno=7521 select * from emp where empno in (7788,7369,7521); --查询所有的职位信息(去重) select DISTINCT job from emp; --别名(字段,表) [as] 别名 select empno 员工编号,ename 员工姓名 from emp; select ename,sal*1.05 as sal from emp; select * from emp e; --查询所有没有奖金comm为null的员工信息(null的判断) select * from emp where comm is not null; --查询所有S打头的员工信息(模糊查询) % 代表0到多个字符 _代表占一个字符 select * from emp where ename like S%; --查询所有N结尾的员工信息(模糊查询) select * from emp where ename like %N; --查询所有包含S的员工信息(模糊查询) select * from emp where ename like %A%; --查询所有第二个字符为L的员工信息 select * from emp where ename like __L%; --排序(order by 字段 [asc] | desc) --升序排序 select * from emp order by sal desc; --按照工资的降序排序,工资一样的按照empno的升序排序 select * from emp order by sal desc,empno ASC --限制结果查询(limit m,n) 分页查询 m代表起始索引,n代表记录的数目 --仅适用于mysql select * from emp limit 5,5;1.单行函数 a)数学函数
--数学函数 select ABS(10); --绝对值 select CEIL(-12.3); --向上取整 select FLOOR(12.5); --向下取整 select ROUND(12.5); --四舍五入 select ROUND(12.49,-1); select POW(3,3); --幂运算 select RAND(); --随机数[0,1)b)字符函数
--字符串函数 select LENGTH(ename) from emp; --获取字符串长度 select length(this is an apple); select LOWER(ename) from emp; --转换为小写 select UPPER(this is an apple); --转换大小写 select SUBSTR(aabbcc,1,2); --从1开始 select LPAD(smith,10,*); --左填充 开始字符串 总长度 padstr填充的字符 select RPAD(smith,10,*); --右填充 select TRIM( smi th); --去空格c)日期函数
--日期 select NOW(); select SYSDATE(); select CURRENT_DATE(); --当前日期 select CURRENT_TIME(); --当前时间 select YEAR(1998-09-09); select MONTH(1998-09-09); select DAY(1998-09-08); select DATE_ADD(1998-09-08,INTERVAL 2 YEAR);2.聚合函数
count、sum、avg、max、min
--员工数(统计记录数) select * from emp; select count(*) from emp; select count(1) from emp; --统计非空字段数目 select count(comm) from emp; --SUM select sum(sal) from emp; --AVG select avg(sal) from emp; --MAX select max(sal) from emp; --MIN select min(sal) from emp;3.分组函数 group by 分组字段
--分组函数 GROUP BY deptno --每个部门的平均工资 --group by根据条件字段的值返回相应的记录数;但是在select子句中,只能出现聚合函数或者分组的条件字段。 select deptno,avg(sal) from emp group by deptno; --各个职位员工数? job select job,count(*) from emp group by job;having 将分组之后的结果集再次进行检索
--平均工资大于2000的部门的部门编号和平均工资? --1.求出每个部门的平均工资 --2.平均工资 2000 select deptno,avg(sal) from emp group by deptno having avg(sal) 2000;where和having的区别
--查询工资大于1500的每个部门的部门编号和平均工资(先过滤再分组) select deptno,avg(sal) from emp where sal 1500 group by deptno; --查询平均工资大于1500的部门编号和平均工资 select deptno,avg(sal) from emp group by deptno having avg(sal) 2000;4.加密函数
MD5、SHA、PASSWORD
--加密函数 select MD5(root); select SHA(root); select PASSWORD(root);
--添加外键约束 alter table student add CONSTRAINT FK_CID FOREIGN KEY(cid) REFERENCES classroom(cid)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/6669.html
mysql相关文章
- Python连接MySQL数据库
- MySQL–启动和关闭MySQL服务详解数据库
- swoole结合php的pdo mysql模式出现MySQL server has gone away详解编程语言
- 处理MySQL事务嵌套处理:深入探索(mysql事务嵌套)
- MySQL数据库中使用Over函数进行计算分析(mysqlover函数)
- MySQL数据库查询性能优化实战(mysql大数据查询优化)
- 深入浅出:MySQL常用储存引擎(mysql常用储存引擎)
- 恢复MySQL被误删除的数据库(mysql误删数据库)
- 如何提升MySQL查询效率(提高mysql的查询速度)
- 技巧最新的MySQL获取技巧:快速提高数据库效率!(mysql获取)
- 操作掌握MySQL:最常用的操作简介(mysql常用)
- 教你如何用PHP获取MySQL数据库中的数据(php获取mysql数据)
- PHP配置指南:MySQL编码设置详解(php设置mysql编码)
- MySQL数据库如何删除一列(mysql数据库删除一列)
- PHP 存入 MySQL 数据库教程(php 存入mysql)
- 如何快速连接MySQL数据库(如何连接mysql数据库)
- MySQL中的IF函数详解(mysql中if详解)
- 用BS架构搭建MySQL数据库服务(bs架构使用mysql)
- MySQL 使用 Bacula 构建有效的备份解决方案 (bacula mysql)
- ASP动态连接MySQL数据库(asp 连mysql)
- 使用cmd命令调用MySQL数据库(cmd如何调用mysql)
- MySQL的分区删除操作详解(mysql中删除分区语法)
- 优化MySQL连接使用mysqlpconn提高数据库性能(mysql_pconn)
- MySQL与XML的完整解读(mysql xml详解)
- 账号吗(mysql下载需要用户)
- MySQL授权管理用户权限(mysql下授权用户权限)
- MySQL查询上一个月数据的方法(mysql 上一月)
- linux下perl操作mysql数据库(需要安装DBI)