MySQL常见函数使用

一:使用dual表

1 返回值::大于或等于数值n的最小整数

SELECT CEIL(11.6) FROM DUAL;

 

 

 

 

 

2 返回值::小于或等于数值n的最小整数

SELECT FLOOR(7.3) FROM DUAL;

 

 

 

3 mod(m,n)函数:将四舍五入,保留小数点后m位

SELECT MOD(7,5) FROM DUAL;

 

 

4 round(n,m)函数:将n四舍五入,保留小数点后m位

SELECT ROUND(324.234) FROM DUAL;

 

 

5 整个字符串小写

SELECT LOWER('CHINA') FROM DUAL;

 

6  replace(char,str1,str2)函数:字符串中所有str1换成str2

SELECT REPLACE('scott','s','Boy') FROM DUAL;

 

 

7  substr(char,m,n)函数:取出从m字符开始的n个字符的子串

SELECT SUBSTR('BILLYU',2,2) FROM DUAL;

 

 

8 substring(char,m,n)函数:取出从m字符开始的n个字符的子串

SELECT SUBSTRING('qwert',2,2) FROM DUAL;

 

 

length(char)函数:求字符串的长度

SELECT LENGTH('ACD') FROM DUAL;

 

 

 

10 连接字符

SELECT CONCAT('Hello','--', 'world');

 

11 查看当前时间

SELECT NOW() FROM DUAL;

 

 

12 本月最后一天;

SELECT LAST_DAY(NOW()) FROM DUAL;

 

13 // 计算相差天数 TO_DAYS 把一个日期转为数字

SELECT TO_DAYS(NOW()) - TO_DAYS('20120512');

 

14 // 计算相差天数

SELECT DATEDIFF(NOW(),'20120512');

 

二  创建guanliyuan 表 并进行操作

CREATE TABLE guanliyuan(

id INT(30) NOT NULL AUTO_INCREMENT,

username VARCHAR(30) DEFAULT NULL,

sex VARCHAR(30) DEFAULT NULL,

grade INT(10),

dept VARCHAR(30) DEFAULT NULL,

PRIMARY KEY(id))

ENGINE = INNODB AUTO_INCREMENT =15 DEFAULT CHARSET =gb2312;

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('root','男',80,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('12','男',90,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('123','男',10,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('root','男',80,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('1234','男',90,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('qq','男',35,'CS');

 

 

 

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('root','男',80,'BS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('12','男',90,'BS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('123','男',10,'BS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('root','男',80,'BS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('1234','男',90,'BS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('qq','男',35,'BS');

 

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('root','女',80,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('12','女',90,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('123','女',10,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('root','女',80,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('1234','女',90,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('qq','女',35,'CS');

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('root','男',76,'CS'),('12','男',76,'CS');

 

SELECT * FROM guanliyuan WHERE id = 1;

DESC guanliyuan;

INSERT INTO guanliyuan(username,sex,grade,dept) VALUES('qer','女',25,'CS'),('bs','女',93,'CS');

SELECT id, username,sex FROM guanliyuan WHERE dept IN('CS','BC');

 

SELECT * FROM guanliyuan ORDER BY dept,grade DESC,id;

SELECT * FROM guanliyuan ORDER BY grade DESC,dept;

 

 

SELECT MAX(grade) FROM guanliyuan;

SELECT username,grade FROM guanliyuan WHERE grade = 90 ;

SELECT username ,grade,sex ,dept FROM guanliyuan WHERE grade = (SELECT MAX(grade) FROM guanliyuan);

SELECT * FROM guanliyuan WHERE grade =90;

SELECT COUNT(*) FROM guanliyuan; // 查看部门总人数

SELECT dept ,MAX(grade) FROM guanliyuan GROUP BY dept; // 查看部门中最搞分数

SELECT dept ,COUNT(id) FROM guanliyuan GROUP BY dept; // 查看每个部门的人数

SELECT * FROM guanliyuan WHERE username ='root' AND grade = 90;

 

SELECT * FROM guanliyuan;

SELECT * FROM guanliyuan WHERE grade = 90;

 

 

SELECT dept,sex ,COUNT(*) FROM guanliyuan GROUP BY dept,sex; // 查看两个组中的男女人数

SELECT dept ,sex,AVG(grade) FROM guanliyuan GROUP BY dept,sex; // 查看两个组中的男女平均分

 

SELECT dept,AVG(grade) FROM guanliyuan GROUP BY dept HAVING AVG(grade) >=64.2; //

 

 

CREATE INDEX susername ON guanliyuan(grade);

ALTER TABLE guanliyuan DROP INDEX susername;

 

SELECT username ,dept FROM guanliyuan WHERE grade <= 60

SELECT DISTINCT username ,dept FROM guanliyuan WHERE grade <= 60 ORDER BY dept;

 

// 复制表:

CREATE TABLE guanliyuan1 SELECT * FROM guanliyuan;

CREATE TABLE guanliyuan2(

id INT(30) NOT NULL AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(30) DEFAULT NULL);

INSERT INTO guanliyuan2(id,username) SELECT id,username FROM guanliyuan;

SELECT * FROM guanliyuan2;

 

SELECT * FROM guanliyuan1;

 

CREATE VIEW s_g(username,sex,gavg) AS SELECT dept ,sex,AVG(grade) FROM guanliyuan GROUP BY dept,sex;

// 创建视图表,数据来源于 guanliyuan表中的按照组分类,求平均值

SELECT * FROM s_g;

CREATE VIEW sbs(id,username,sex,grade,dept) AS SELECT * FROM guanliyuan WHERE dept = 'BS';

SELECT * FROM sbs;

INSERT INTO sbs(username,sex,grade,dept) VALUES('阿斯顿','女',25,'BS');

SELECT * FROM guanliyuan;

COMMIT;

 

 

15  // 将表的username字段以ro开头的改为adminot

UPDATE guanliyuan SET username = CONCAT('admin',SUBSTRING(username,3,2)) WHERE SUBSTRING(username,1,2) = 'ro';

16 / // 将表的username字段以admin开头的改为ro

UPDATE guanliyuan SET username = REPLACE(SUBSTRING(username,1,5),'admin','ro') WHERE SUBSTRING(username,1,5) = 'admin';

 

17  显示username的长度(不重复显示)

SELECT DISTINCT LENGTH(username) FROM guanliyuan;

 

18 显示username长度为2 的名字

SELECT username FROM guanliyuan WHERE LENGTH(username) = 2;

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值