数据库--学习记录2

1.可视化工具操作数据库

1.1 pycharm进入数据库

数据库--学习记录2_第1张图片

1.2 连接数据库

数据库--学习记录2_第2张图片 数据库--学习记录2_第3张图片

1.3 创建数据库

数据库--学习记录2_第4张图片 1.4 创建数据表

数据库--学习记录2_第5张图片

 1.5 添加字段

数据库--学习记录2_第6张图片 数据库--学习记录2_第7张图片

1.6 添加记录 

数据库--学习记录2_第8张图片 1.7 执行sql语句

数据库--学习记录2_第9张图片

2. 函数 

2.1 字符串处理函数

# --字符串拼接
select concat("a", "b", "c");
# --转小写
select lower('HELLO');
# --转大写
select upper('hello');
# --左填充
select lpad("hello",10,"-");
#-- 右填充
select rpad('hello',10,"-");
# --去除两端空格
select trim("    hello    ");
# --字符切片,从第二个字符开始切3个字符
select substring("hello world",2,3);

2.2 数值处理函数

select ceil(1.3); -- 向上取整 => 2
select floor(1.6); -- 向下取整 =>1
select mod(10,3); -- 获取10/3模 =>1
select rand(); -- 获取0-1之间的随机小数
select round(3.1415926,4) -- 对3.1415926四舍五入,保留4位小数 =>3.1416

2.3 时间处理函数

-- 获取当前日期 =>当前日期,2024-01-29
select '当前日期',curdate();
-- 获取当前时间 => 当前时间,21:13:55
select '当前时间',curtime();
-- 获取当前日期和时间 => 当前日期和时间,2024-01-29 21:14:45
select '当前日期和时间',now();
-- 获取指定时间的年月日,时分秒
select '年',year('2024-01-29 21:14:45');
select '月',month('2024-01-29 21:14:45');
select '日',day('2024-01-29 21:14:45');
select '时',hour('2024-01-29 21:14:45');
select '分',minute('2024-01-29 21:14:45');
select '秒',second('2024-01-29 21:14:45');
-- 时间差计算,interval单位:year,month,day,hour,minute,second,microsecond
select date_add(now(),interval 1 year); -- 当前时间往后一年的时间=>2025-01-29 21:22:13
select date_add(now(),interval 1 month); -- 当前时间往后一个月的时间=>2024-02-29 21:22:52
select datediff("2025-01-29 21:22:13",now()); -- 相差的时间天数 => 366
select timediff("2025-01-29 22:22:13","2025-01-28 21:22:13"); -- 相差的小时数=>25:00:00

2.4 流程控制语句

2.4.1 单分支:

show tables;
drop table emp;
-- 创建员工表
create table emp(
    id int primary key auto_increment,
    name varchar(16) not null,
    gender enum("male","female") not null,
    age int not null,
    salary float(10,2),
    dep varchar(32),
    notes varchar(64)
);
-- 插入内容
insert into emp(name,gender,age,salary,dep) values
("关羽","male",20,8000,"技术部"),
("张飞","male",18,7000,"技术部"),
("刘备","male",28,9000,"技术部"),
("赵云","male",15,10000,"技术部"),
("曹操","male",28,12000,"研发部"),
("荀彧","male",21,9000,"研发部"),
("许攸","male",20,8000,"研发部"),
("夏侯惇","male",20,7000,"研发部"),
("孙权","male",10,6000,"人事部"),
("周瑜","male",20,10000,"人事部"),
("小乔","female",20,8000,"人事部"),
("大乔","female",22,8500,"人事部");
-- 查询emp表的内容
select * from emp;

-- 流程控制函数
-- 单分支,查询所有员工的名字和性别,并将性别显示为小哥哥,小姐姐
-- if(条件.条件满足,条件不满足)
-- ifnull(),判断是否为空
select name,if(gender="male","小哥哥","小姐姐" ) as '性别' from emp;
select name, ifnull(notes,"未知") from emp;

结果图: 

数据库--学习记录2_第10张图片数据库--学习记录2_第11张图片

2.4.2 多分支

-- 多分支
-- case...when...then...
-- 查询所有员工,以及他们的工资
-- 工资大于等于10000的->核心员工
-- 工资大于等于8000的->普通员工
-- 工资小于8000的->新员工
select
    name,salary,
    case when salary>=10000 then "核心员工"
         when salary>=8000 then "普通员工"
    else "新员工"
    end as "员工级别"
from emp;

-- 技术部:高级技术顾问
-- 人事部:HR
-- 其他:销售经理
select name,dep,
       case dep when "技术部" then "高级技术顾问"
                when "人事部" then "HR"
        else "销售经理"
        end as "职位"
       from emp;

 数据库--学习记录2_第12张图片

数据库--学习记录2_第13张图片 

你可能感兴趣的:(学习)