最近因为要找实习,想做一些后端开发方面的东西,结果发现数据库是考察重点,然而正好这块还没学过,所以趁着还有时间,赶紧把数据库这块先补一补,熟悉一下。但是干啃课本又有点无聊,所以就直接开始学MySQL了,这样一边用一边学也有意思一些!下面就是最近跟着课程学习SQL语言的时候做的案例练习以及学习笔记~
create table emp(
id int comment '编号',
workno varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
workaddress varchar(50) comment '工作地址',
entrydate date comment '入职时间'
) comment '员工表';
insert into emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
values (1, '1', '柳岩', '女', 20, '123456789012345678', '北京', '2000-01-01'),
(2, '2', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01'),
(3, '3', '韦一笑', '男', 38, '123456789012345671', '上海', '2000-08-01'),
(4, '4', '赵敏', '女', 18, '123456789012345672', '北京', '2009-12-01'),
(5, '5', '小昭', '女', 16, '123456789012345673', '上海', '2007-07-01'),
(6, '6', '杨逍', '男', 28, '123456789012345674', '北京', '2006-01-01'),
(7, '7', '范瑶', '男', 40, '123456789012345675', '北京', '2005-05-01'),
(8, '8', '黛绮丝', '女', 38, '123456789012345676', '天津', '2015-05-01'),
(9, '9', '范凉凉', '女', 45, '123456789012345677', '北京', '2010-04-01'),
(10, '10', '陈友谅', '男', 53, '123456789012345679', '上海', '2011-01-01'),
(11, '11', '张士诚', '男', 55, '123456789012345608', '江苏', '2015-05-01'),
(12, '12', '常遇春', '男', 32, '123456789012345618', '北京', '2004-02-01'),
(13, '13', '张三丰', '男', 88, '123456789012345628', '江苏', '2020-11-01'),
(14, '14', '灭绝', '女', 65, '123456789012345638', '西安', '2019-05-01'),
(15, '15', '胡青牛', '男', 70, '123456789012345648', '西安', '2018-04-01'),
(16, '16', '周芷若', '女', 18, null, '北京', '2023-06-01');
desc emp;
select name, workno, age from emp;
select id, workno, name, gender, age, idcard, workaddress, entrydate from emp;
select * from emp;
select workaddress from emp;
select workaddress as '工作地址' from emp;
select workaddress '工作地址' from emp;
select distinct workaddress '工作地址' from emp;
select * from emp where age = 88;
select * from emp where age < 20;
select * from emp where age <= 20;
select * from emp where idcard is null;
select * from emp where idcard is not null;
select * from emp where age != 88;
select * from emp where age <> 88;
select * from emp where age >= 15 and age <= 20;
select * from emp where age >= 15 && age <= 20;
select * from emp where age between 15 and 20;
select * from emp where gender = '女' and age < 25;
select * from emp where age = 18 or age = 20 or age = 40;
select * from emp where age in(18, 20, 40);
select * from emp where name like '__';
select * from emp where idcard like '%X';
select count(*) from emp;
select count(idcard) from emp;
select avg(age) from emp;
select max(age) from emp;
select min(age) from emp;
select * from emp where workaddress = '西安';
select sum(age) from emp where workaddress = '西安';
select count(*) from emp group by gender;
select gender, count(*) from emp group by gender;
select gender, avg(age) from emp group by gender;
select workaddress, count(*) address_count from emp where age < 45 group by workaddress having count(*) >= 3;
select * from emp order by age asc ;
select * from emp order by age desc ;
select * from emp order by age ;
select * from emp order by entrydate desc ;
select * from emp order by age asc , entrydate desc ;
select * from emp order by age asc , entrydate ;
select * from emp limit 0, 10;
select * from emp limit 10;
select * from emp limit 10, 10;
select * from emp where gender = '女' and age in(20,21,22,23);
select * from emp where gender = '男' and age between 20 and 40 and name like '___';
select * from emp where gender = '男' and (age between 20 and 40) and name like '___';
select count(*) from emp where age < 60;
select gender, count(*) from emp where age < 60 group by gender;
select name, age from emp where age <= 35 order by age asc, entrydate desc ;
select * from emp where gender = '男' and age between 20 and 40 order by age asc , entrydate asc limit 5;
select e.name, e.age from emp e where e.age > 15 order by age asc;
create user 'itcast'@'localhost' identified by '123456';
create user 'heima'@'%' identified by '123456';
alter user 'heima'@'%' identified with mysql_native_password by '1234';
drop user 'itcast'@'localhost';
show grants for 'heima'@'%';
grant all on itcase.* to 'heima'@'%';
revoke all on itcase.* from 'heima'@'%';
给的案例是完整的,SQL命令都贴出来了,笔记是以注释的形式写在里面的,欢迎一起学习的小伙伴儿相互交流~