- -- ======================DQL :基本语法==================;
- -- 1查询指定的字段 name entrydate 并返回
- select name , entrydate from tb_emp;
- -- 2 查询 所有字段 并返回
- select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;
- -- 2 查询 所有字段 并返回
- select * from tb_emp;
- -- 3 查询 所有员工的 name entrydate 并起别名(姓名 入职日期)
- select name as'姓名' , entrydate as'入职日期' from tb_emp;
- -- 缩写
- select name '姓 名' , entrydate '入职日期' from tb_emp;
-
- -- 查询已有的员工关联了那几种职位(不要重复)
- select distinct job from tb_emp
- -- ===============DQL:条件查询 ======================
- -- 1查询 姓名为 杨逍的 员工
- select * from tb_emp where name = '杨逍';
-
- -- 2查询 id 小于5的 员工消息
- select * from tb_emp where id<5;
-
- -- 3查询 没有分配职位的员工的信息
- select * from tb_emp where job is null;
-
- -- 4查询 有职位的 员工信息
- select * from tb_emp where job is not null ;
- -- 5查询 密码不等于 "123456" 的员工 信息
- select * from tb_emp where password != 123456;
- -- 一样
- select * from tb_emp where password <> 123456;
- -- 6 查询 入职日期 2000-01 -01 (包含)到 '2000-01-01'之间的员工信息
- select * from tb_emp where entrydate >= '2000-01-01' and entrydate<='2010-01-01';
- -- 缩写
- select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01';
-
- -- 7 查询 入职日期 2000-01 -01 (包含)到 '2000-01-01' 之间 且 性别是女的员工信息
- select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01' and gender=2;
- -- 一样
- select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01' && gender=2;
-
- -- 8 查询 职位是2 (讲师) 3 (学工主管) 4 (教研) 员工信息
- select * from tb_emp where job=2 or job=3 or job =4 ;
- -- 一样
- select * from tb_emp where job in (2,3,4) ;
- select * from tb_emp where job in (4) ;
-
- -- 9 查询 姓名 为两字的员工信息
- select * from tb_emp where name like '____';
- select * from tb_emp where name like '__';
-
- -- 10 查询 性名 '张' 的员工
- select * from tb_emp where name like '张%';
-
- -- =================DQL :分组查询 ======================
- -- 集合 函数
- -- 1 统计该企业的员工信息 --count
- -- A count 字段
- select count(id) from tb_emp;
- select count(name) from tb_emp;
- select count(job) from tb_emp;
-
- -- B count (常量)
- select count(0) from tb_emp;
-
- -- C count (count *)
- select count(*) from tb_emp;
-
- -- 2 统计该企业最早入职的员工 --min
- select min(entrydate) from tb_emp;
-
- -- 3 统计该企业的最迟入职的员工 -- max
- select max(entrydate)from tb_emp;
-
- -- 4 统计该企业的 id 平均 值 - avg
- select avg(id) from tb_emp;
- -- 5 统计该企业的 员工的ID 之和 - sum
- select sum(id) from tb_emp;
- -- ============DQL:分组 查询 ===============
-
- -- 1 根据性别分组 统计男性 和女性员工的数量
- select gender , count(*) from tb_emp group by gender;
- -- 2 先查询 入职日期 在 2015-01-10(包含 ) 以前的 员工 并对结果根据 职位分组 获取员工数量 大=大于等于2的职位
- select job , count(*) from tb_emp where entrydate <= '2015-01-10' group by job having count(*)>=2;
- -- ================排序查询=========
- -- 1 根据入职日期 对员工 进行升序排序 --asc
- select * from tb_emp order by entrydate asc;
- select * from tb_emp order by entrydate ;
- -- 2 根据 入职日期 对员工进行降序排序
- select * from tb_emp order by entrydate desc;
- -- 3 根据 入职日期 对公司员工进行 升序排序 入职时间相同的 再按照 更新时间 进行降序排序
- select * from tb_emp order by entrydate ,update_time desc ;
- -- =================分页查询 ===============;
- -- 1 从 起始索引0 开始查询员工数据 每页展示5 条记录
- select * from tb_emp limit 0,5;
-
- -- 2 查询第1页 员工数据 每页展示5条记录
- select * from tb_emp limit 0,5;
- -- 3 查询第2页 员工数据 每页展示5条记录
- select * from tb_emp limit 5,5;
- -- 4 查询第3页 员工数据 每页展示5条记录
- select * from tb_emp limit 10,5 ;
-
- -- 起始索引 =(页码 -1 * 每页展示的记录数 )
- -- 起始索引 =(页码 -1 * 5 )
- create table tb_emp
- (
- id int auto_increment comment '主键ID'
- primary key,
- username varchar(20) not null comment '用户名',
- password varchar(32) default '123456' null comment '密码',
- name varchar(10) not null comment '姓名',
- gender tinyint unsigned null comment '性别 1男 2女',
- image varchar(300) null comment '图形url',
- job tinyint unsigned null comment '职位 ,1班主任,2 讲师 ,3 学工主管 ,4 教研主管 ',
- entrydate date null comment '入职日期',
-
- dept_id int unsigned comment '归属部门',
- crete_time datetime not null comment '创建时间',
- update_time datetime not null comment '修改时间',
- constraint username
- unique (username)
- )
- comment '员工';
-
- -- 部门管理
- -- create database db_03;
- -- use db_03;
- create table tb_dpt(
-
- id int unsigned primary key auto_increment comment 'ID',
- name varchar(10) not null unique comment '部门名称',
- creation_time datetime not null comment '创建时间',
- update_time datetime not null comment '修改时间'
-
-
- )comment '部门表';
- alter table tb_emp -- (用户表)
- add constraint tb_emp_fk_dept_id -- 外连接名称
- foreign key (dept_id) references -- 外连接创建表
- tb_dpt (id); -- (部门表·)
- create table tb_user(
- id int unsigned primary key auto_increment comment 'Id',
- name varchar(20) not null comment '姓名',
- gender tinyint unsigned not null comment '性别 1:女 2:男',
- phone char(11)comment '手机号',
- degree varchar (15) comment '学历'
- ) comment '用户表';
- insert into tb_user values (1,'买买提',1,'18383905487','本科'), (2,'张小',1,'67124808247','大专'),
- (3,'李强',1,'18383905487','博士'), (4,'李方',2,'18383905487','初中') ;
- create table tb_user_card(
- id int unsigned primary key auto_increment comment 'id',
- ethnic_group varchar(10) not null comment '民族',
- birthday date not null comment '生日',
- idcard char(18) not null comment '身份证号',
- issued varchar(20) not null comment '签发机关',
- expire_begin date comment '有效期限-开始时',
- expire_end date comment '有效期限-结束',
- user_id int unsigned not null unique comment '用户ID',
- constraint fk_user_id foreign key (user_id) references tb_user(id)
- )comment '用户信息表';
-
- insert into tb_user_card values
- (1,'汉','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1',null,1),
- (2,'汉','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1','2023-12-31',2),
- (3,'汉','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1','2028-10-30',3),
- (4,'回','1998-08-14','453234199808147439','南京鼓励广场','2000-12-1',null,4)
- -- 多对多
- -- 学生表
- create table tb_student(
- id int auto_increment primary key comment '主键ID',
- name varchar(10)comment '姓名',
- no varchar(10)comment '学号'
- )comment '学生表';
- insert into tb_student(name, no) values ('person1','20001'),('person2','20002'),('person3','20003'),('person4','20004');
-
- create table tb_course(
- id int auto_increment primary key comment '主键id',
- name varchar(10) comment '课程名称'
-
- )comment '课程表' ;
- insert into tb_course(name) values ('java'),('php'),('mysql'),('go'),('c'),('linux');
-
-
- create table tb_student_course(
- id int unsigned auto_increment comment '主键' primary key ,
- student_id int not null comment '学生id',
- course_id int not null comment '课程id',
- constraint fk_courseid foreign key (course_id)references tb_course(id) ,
- constraint fk_studentid foreign key (student_id)references tb_student(id)
-
- )comment '学生和课程表';
-
- insert into tb_student_course (student_id, course_id)values (1,1),(1,2),(1,3),(2,2),(2,3),(3,3);
-
-