MYSQL-基础查询

 库和表的创建

-- 创建数据库
 CREATE DATABASE IF NOT EXISTS NBA CHARSET utf8


-- 创建球员信息表
-- 编号 名字 生日 身高 体重 位置 
CREATE TABLE footballer(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'主键-编号',
NAME VARCHAR(12) NOT NULL COMMENT'名字',
birthday VARCHAR(10)  COMMENT'生日',
height DECIMAL(4,1)  COMMENT'身高',
weight DECIMAL(4,1) COMMENT'体重',
place VARCHAR(2) COMMENT'位置'
)

-- 删除球员信息表
-- Drop table if exists footballer

-- INSERT:插入新数据
INSERT INTO footballer( id , NAME,birthday,height,weight,place)VALUES
(1,'德怀恩-书德','1982-1-17',193,96,NULL),
(2,'勒布朗-詹姆斯','1984-12-30',203,113,'前锋'),
(3,'科比-布莱恩特','1978-8-23',198,99,'后卫'),
(4,'德克-诸维斯基','1978-6-19',213,111,NULL),
(5,'克里斯-保罗','1985-5-6',182,79,'后卫'),
(6,'托尼-帕克','1982-5-17',187,83,'后卫'),
(7,'凯文-加内特','1981-7-14',212,113,NULL),
(8,'保罗-皮尔斯','1977-10-13',200,106,'前锋'),
(9,'迈克尔-乔丹','1963-2-17',198,98,'前锋'),
(10,'德怀特-蛋华德','1985-12-8',210,120,'中锋'),
(11,'姚明','1980-9-12',229,140,'中锋'),
(12,'沙奎尔-奥尼尔','1972-3-6',215,147,'中锋');


-- 创建球队信息表
-- 球队编号 球队名称 所在地
CREATE TABLE football_team(
team_number INT PRIMARY KEY AUTO_INCREMENT COMMENT'主键-球队编号',
team_name VARCHAR(6) NOT NULL COMMENT'球队名称',
location VARCHAR(6) NOT NULL COMMENT'所在地'
)

-- 删除球员信息表
-- Drop table if exists football_team

-- INSERT:插入新数据
INSERT INTO football_team( team_number, team_name,location)VALUES
(1,'湖人','洛杉矶'),
(2,'火箭','休斯顿'),
(3,'凯尔特人','波士顿'),
(4,'骑士','克利夫兰'),
(5,'马刺','圣安东尼奥'),
(6,'魔术','奥兰多');

单行函数

        字符函数

-- 单行函数

-- length():获取参数值的字节个数
SELECT LENGTH(NAME) FROM footballer

-- char_length()获取参数值的字符个数
SELECT CHAR_LENGTH(NAME) FROM footballer

-- concat(str1,str2,.....):拼接字符串
SELECT CONCAT(NAME , ':',place) AS NAME FROM footballer WHERE place IS NOT NULL

-- upper()/lower():将字符串变成大写/小写

-- substring(str,pos,length):截取字符串 位置从1开始
SELECT SUBSTRING(NAME,1,2) FROM footballer

-- instr(str,指定字符):返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR(place,'前') FROM footballer WHERE place IS NOT NULL

         逻辑处理

-- case when 条件 then 结果1 else 结果2 end; 可以有多个when
select height,place,
case 
when height>210 then 'A'
when height>200 then 'B'
else 'C' end as height
from footballer;

-- if函数:if else的 效果 if(条件,结果1,结果2)
select height,place,
if(height>210,'优秀','正常')
from footballer;

-- ifnull(被检测值,默认值)函数检测是否为null,如果为null,则返回指定的值,否则返回原本的值
select ifnull(place,'没有') from footballer

        日期函数

-- now():返回当前系统日期+时间
SELECT NOW() FROM footballer;

-- curdate():返回当前系统日期,不包含时间
SELECT CURDATE() FROM footballer

-- curtime():返回当前时间,不包含日期
SELECT CURTIME() FROM footballer

-- 可以获取指定的部分,年、月、日、小时、分钟、秒
-- YEAR(日期列),MONTH(日期列),DAY(日期列) ,HOUR(日期列) ,MINUTE(日期列) ,SECOND(日期列)
SELECT NOW(),YEAR(NOW()) ,MONTH(NOW()),DAY(CURDATE()) FROM footballer
SELECT NOW(),HOUR(NOW()) ,MINUTE(NOW()),SECOND(NOW()) FROM footballer

-- str_to_date(字符串格式日期,格式):将日期格式的字符转换成指定格式的日期
SELECT STR_TO_DATE('2003-5-1','%Y-%m-%d') ;
SELECT 
  STR_TO_DATE('1998-3-2', '%Y-%c-%d') ; 
  #返回1998-03-02
  
-- date_format(日期列,格式):将日期转换成字符串
SELECT DATE_FORMAT(birthday,'%Y-%m') FROM footballer

-- datediff(big,small):返回两个日期相差的天数
SELECT DATEDIFF(NOW(),birthday) FROM footballer;


分组函数

分组函数
功能:用作统计使用,又称为聚合函数或统计函数或组函数
分类:sum 求和、avg 平均值、max 最大值、min 最小值、count 计数
(非空)
1.sum,avg一般用于处理数值型max,min,count可以处理任何类型
2.以上分组函数都忽略null值
3.count函数的一般使用count(*)用作统计行数
4.和分组函数一同查询的字段要求是group by后的字段

-- 分组函数 sum(height)

-- 平均值
SELECT 	AVG(height) FROM footballer 

-- 求和
SELECT SUM(height) FROM footballer

-- 最大值
SELECT MAX(height)FROM footballer

-- 最小值
SELECT MIN(height) FROM footballer

-- 计数
SELECT 	COUNT(*) FROM footballer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值