数据库基础-MySql8.0(第二篇)--DML和DQL
发布日期:2021-05-06 03:20:48 浏览次数:24 分类:原创文章

本文共 4050 字,大约阅读时间需要 13 分钟。

MySql基础篇

数据操纵语言DML

/*插入数据 方式1: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n); 方式2: INSERT INTO 表名 set 列名1=值1,..列名n=值n; 方式3: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n),(值1,值2…..,值n); 方式4:INSERT INTO 表名(列1,列2……,列n) 查询语句(查询的列数与插入列数匹配)*/INSERT INTO student(NAME,sex,birthday,grade,score,phone,address,reg_time)	    VALUE('tom','男','2000-1-2',1,98,'15929101866','xian',NOW())INSERT INTO student SET NAME='张三',sex='男',birthday='2020-1-3',grade=2,score=97,phone='15959421585',address='陕西',reg_time=NOW()INSERT INTO student(NAME,sex,birthday,grade,score,phone,address,reg_time)	    VALUES('李四','男','2000-1-2',3,98,'15929101899','咸阳',NOW()),	          ('王五','女','2000-1-4',3,98,'15929101888','咸阳',NOW()),	          ('李六','男','2000-1-5',3,98,'15929101877','咸阳',NOW())-- 表名后不描述,表示向表中所有的列插入数据  值得数量应与列的数量相匹配	          INSERT INTO stu(num,NAME,sex,birthday,grade,score,phone,address,reg_time)	    SELECT * FROM student	    -- 修改表数据   UPDATE student SET NAME = '李四',sex='男'-- 添加条件   UPDATE student SET NAME = '赵六',sex='女' WHERE num =2233   -- 删除语句   DELETE FROM student WHERE num = 2237   -- 清空表数据   TRUNCATE TABLE student ALTER TABLE student MODIFY num INT AUTO_INCREMENT

DQL数据查询语句

-- select 查询结果 from 表 where 条件 [分组][分组条件] 排序/*  关键字查询  函数查询       单行函数       字符       数字       日期       分组函数   条件查询*/-- 查询结果是常量   SELECT 100   -- 表达式   SELECT 10+10   SELECT grade+1 FROM student   -- 函数   SELECT VERSION() #查询版本   SELECT NOW() #查询时间   -- 查询整张表数据   SELECT * FROM student   -- 查询特定列   SELECT num,NAME,sex FROM student   -- 去除重复数据(多行数据所有列相同)只针对查询出来的结果去重   SELECT DISTINCT sex FROM student   -- 算术运算符+(简单的加法运算,没有字符拼接功能) - * /   SELECT grade+score FROM student-- 所有人班级+1   SELECT grade+1 FROM student -- 单行函数(对每行进行处理)-- LENGTH(列名) 返回字符字节数量长度   SELECT LENGTH(NAME) FROM student -- 字符函数-- CHAR_LENGTH(NAME) 以字符为单位   SELECT CHAR_LENGTH(NAME) FROM student -- 拼接 CONCAT (tr1,str2)   SELECT CONCAT ('aa','bb','cc')   SELECT CONCAT (NAME,'是',sex) FROM student   -- 转大写   SELECT UPPER(NAME) FROM student   SELECT UPPER('abc')    -- 转小写   SELECT UPPER('ABC')     -- 字符串截取  SUBSTRING(列名,开始位置,截取长度)   SELECT SUBSTRING(NAME,1,1) FROM student   -- 指定字符串首次出现位置查找 INSTR(列名,str)    SELECT INSTR(NAME,'o') FROM student    -- 去前后空格 TRIM(列名)   SELECT TRIM(NAME) FROM student-- 去前后指定字符 TRIM(str from 列名)   SELECT TRIM('o' FROM NAME) FROM student   -- 填充字符到指定长度 LPAD(列名,补充到指定长度,填充内容)   SELECT LPAD(NAME,6,'z') FROM student    -- 将列中替换成指定的字符 REPLACE(列名 ,旧字符串,新字符串)   SELECT REPLACE(NAME , 'a','z') FROM student   -- 逻辑处理-- case when 条件 then 成立的结果 else 不成立的额结果 END from tableSELECT 	CASE WHEN score>=90 THEN 'A' ELSE 'B' END FROM student		SELECT         NAME,	(CASE WHEN score>=90 THEN 'A' 	     WHEN score>=80 AND score<90 THEN 'B'	     WHEN score>=70 AND score<80 THEN 'C'	     ELSE 'D' 	END ) score  # 定义查询出结果的别名	FROM student			-- IFNULL(判断为空的列,如果为空的默认值) 别名SELECT IFNULL(phone,'未登记手机号') Moblie FROM studentSELECT IFNULL(phone,NAME) Moblie FROM student-- IF(条件,满足结果,不满足结果)SELECT IF(score>=90,'优秀','良好')score FROM student-- 数学函数-- round四舍五入SELECT ROUND(5.9)-- ceil 向上取整SELECT CEIL(5.4)-- floor 向下取整SELECT FLOOR(5.9)-- 保留指定小数位数,不进位SELECT TRUNCATE(5.5363,2)-- mod取余SELECT MOD(10,3)-- rand 获取0-1 之间的随机数SELECT RAND()-- 日期处理函数SELECT NOW() #返回当前系统的时间+日期SELECT CURDATE() #返回当前系统的日期SELECT CURTIME() #返回当前系统的时间-- 日期格式化-- 只获取年份SELECT YEAR(reg_time ) FROM student-- 只获取月份SELECT MONTH(reg_time ) FROM student-- 将字符串格式转换为数据库中的日期格式SELECT STR_TO_DATE('1999-5-23','%Y-%m-%d')-- 日期格式转指定格式的字符串SELECT DATE_FORMAT(reg_time,'%Y年%m月%d日')m FROM studentSELECT COUNT(*),DATE_FORMAT(reg_time,'%Y年%m月%d日')m FROM student GROUP BY m-- 计算两个日期的时间差SELECT DATEDIFF(reg_time,NOW()) FROM student-- 组函数,聚合函数,统计函数/*分类:sum求和,avg平均值,max最大值,min最小值,count计数1.sum,avg一般用于处理数值型;  max,min,count可以处理任何类型2.已上分组函数都忽略null值3.可以和distinct搭配实现去重的运算4.count函数的一般使用count(*)用做统计行数*/-- 求总和SELECT SUM(score) FROM student SELECT SUM(DISTINCT score) FROM student -- 求平均SELECT AVG(score) FROM student-- 最大值SELECT MAX(score) FROM student--  最小值SELECT MIN(score) FROM student-- 统计数量SELECT COUNT(*) FROM studentSELECT COUNT(DISTINCT score) FROM student
上一篇:数据库基础-MySql8.0(第三篇)--条件查询
下一篇:数据库基础-MySql8.0(第一篇)--DDL语句

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月15日 15时13分28秒