建设银行成都 招聘网站,腾讯公众微信号,商丘市网站建设推广,ps 做ui比较好的网站有哪些MySQL基础
介绍 mysql -uroot -p -h127.0.0.1 -P3306项目设计 具备数据库一定的设计能力和操作数据的能力。
数据库设计DDL
定义 操作
显示所有数据库
show databases;创建数据库
create database db02;数据库名唯一#xff0c;不能重复。 查询是否创建成功
加入一些…MySQL基础
介绍 mysql -uroot -p -h127.0.0.1 -P3306项目设计 具备数据库一定的设计能力和操作数据的能力。
数据库设计DDL
定义 操作
显示所有数据库
show databases;创建数据库
create database db02;数据库名唯一不能重复。 查询是否创建成功
加入一些判断语句
create database if not exists db02;存在不会报错也会不再创建如果不存就会创建 连接数据库
use db01;删除数据库
drop database db03;这里可以加入条件判断
drop database if exists db03;小结 图形化DDL 这边直接使用idea也可以图形化操作
表结构设计
操作
创建
-- 创建表结构
create table tb_user(id int comment ID, 唯一标识,username varchar(20) comment 用户名,name varchar(10) comment 姓名,age int comment 年龄,gender char(1) comment 性别
) comment 用户表pscomment 为备注的意思 也可以通过idea手动添加 约束 定义表结构的时候需要一些约束
-- 创建表结构
create table tb_user(id int primary key auto_increment comment ID, 唯一标识,username varchar(20) unique not null comment 用户名,name varchar(10) not null comment 姓名,age int comment 年龄,gender char(1) default 男 comment 性别
) comment 用户表; 实现
案例
图形化操作 新建列
create table tb_emp (id int unsigned primary key auto_increment comment ID,username varchar(20) not null unique comment 用户名,password varchar(32) default 123456 comment 密码,name varchar(10) not null comment 姓名,gender tinyint unsigned not null comment 性别, 说明: 1 男, 2 女,image varchar(300) comment 图像,job tinyint unsigned comment 职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管,entrydate date comment 入职时间,create_time datetime not null comment 创建时间,update_time datetime not null comment 修改时间
) comment 员工表;
表操作DLL 操作
查表结构和表名
-- 查询表
show tables;-- 查看指定表结构
desc tb_emp;-- 查询创建表结构
show create table tb_emp;查看表
查询表结构
查看表的建表语句
修改表结构 -- DDL: 修改表结构
-- 修改为表添加qq 字段 varchar(11)
alter table tb_emp add qq varchar(11) comment QQ字段;alter table tb_emp modify qq varchar(13) comment QQ字段;alter table tb_emp change qq qq_num varchar(13) comment QQ字段;-- 修改删除tb_emp 的qq_num字段
alter table tb_emp drop column qq_num;-- 修改将tb_emp表名修改为emp
rename table tb_emp to emp;可以用图形化工具进行操作
删除表 drop table if exists tb_test;插入测试数据
-- 插入数据
-- 因为设计表时create_time, update_time两个字段不能为NULL所以也做为要插入的字段
insert into tb_emp(username, name, gender, create_time, update_time)
values (wuji, 张无忌, 1, now(), now());
insert into tb_emp(id, username, password, name, gender, image, job, entrydate, create_time, update_time)
values (null, zhirou, 123, 周芷若, 2, 1.jpg, 1, 2010-01-01, now(), now());
insert into tb_emp(username, name, gender, create_time, update_time)
values (weifuwang, 韦一笑, 1, now(), now()),(fengzi, 张三疯, 1, now(), now()); DMLUPDATE更新数据 update tb_emp set name张三,update_timenow() where id1;-- 修改全部的数据update_timenow()为当前时间
update tb_emp set entrydate2010-01-01,update_timenow();DMLDELETE -- 语法
-- delete from 表名 [where 条件] ;-- 删除tb_emp表中id为1的员工
delete from tb_emp where id1;-- 删除tb_emp表中所有员工
delete from tb_emp; 小结 查询DQL
定义 语法 插入测试数据
-- 创建数据
create database db02;-- 添加测数据
-- 员工管理(带约束)
create table tb_emp (id int unsigned primary key auto_increment comment ID,username varchar(20) not null unique comment 用户名,password varchar(32) default 123456 comment 密码,name varchar(10) not null comment 姓名,gender tinyint unsigned not null comment 性别, 说明: 1 男, 2 女,image varchar(300) comment 图像,job tinyint unsigned comment 职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管,entrydate date comment 入职时间,create_time datetime not null comment 创建时间,update_time datetime not null comment 修改时间
) comment 员工表;-- 准备测试数据
INSERT INTO tb_emp (id, username, password, name, gender, image, job, entrydate, create_time, update_time) VALUES(1, jinyong, 123456, 金庸, 1, 1.jpg, 4, 2000-01-01, 2022-10-27 16:35:33, 2022-10-27 16:35:35),(2, zhangwuji, 123456, 张无忌, 1, 2.jpg, 2, 2015-01-01, 2022-10-27 16:35:33, 2022-10-27 16:35:37),(3, yangxiao, 123456, 杨逍, 1, 3.jpg, 2, 2008-05-01, 2022-10-27 16:35:33, 2022-10-27 16:35:39),(4, weiyixiao, 123456, 韦一笑, 1, 4.jpg, 2, 2007-01-01, 2022-10-27 16:35:33, 2022-10-27 16:35:41),(5, changyuchun, 123456, 常遇春, 1, 5.jpg, 2, 2012-12-05, 2022-10-27 16:35:33, 2022-10-27 16:35:43),(6, xiaozhao, 123456, 小昭, 2, 6.jpg, 3, 2013-09-05, 2022-10-27 16:35:33, 2022-10-27 16:35:45),(7, jixiaofu, 123456, 纪晓芙, 2, 7.jpg, 1, 2005-08-01, 2022-10-27 16:35:33, 2022-10-27 16:35:47),(8, zhouzhiruo, 123456, 周芷若, 2, 8.jpg, 1, 2014-11-09, 2022-10-27 16:35:33, 2022-10-27 16:35:49),(9, dingminjun, 123456, 丁敏君, 2, 9.jpg, 1, 2011-03-11, 2022-10-27 16:35:33, 2022-10-27 16:35:51),(10, zhaomin, 123456, 赵敏, 2, 10.jpg, 1, 2013-09-05, 2022-10-27 16:35:33, 2022-10-27 16:35:53),(11, luzhangke, 123456, 鹿杖客, 1, 11.jpg, 2, 2007-02-01, 2022-10-27 16:35:33, 2022-10-27 16:35:55),(12, hebiweng, 123456, 鹤笔翁, 1, 12.jpg, 2, 2008-08-18, 2022-10-27 16:35:33, 2022-10-27 16:35:57),(13, fangdongbai, 123456, 方东白, 1, 13.jpg, 1, 2012-11-01, 2022-10-27 16:35:33, 2022-10-27 16:35:59),(14, zhangsanfeng, 123456, 张三丰, 1, 14.jpg, 2, 2002-08-01, 2022-10-27 16:35:33, 2022-10-27 16:36:01),(15, yulianzhou, 123456, 俞莲舟, 1, 15.jpg, 2, 2011-05-01, 2022-10-27 16:35:33, 2022-10-27 16:36:03),(16, songyuanqiao, 123456, 宋远桥, 1, 16.jpg, 2, 2010-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:05),(17, chenyouliang, 12345678, 陈友谅, 1, 17.jpg, null, 2015-03-21, 2022-10-27 16:35:33, 2022-10-27 16:36:07),(18, zhang1, 123456, 张一, 1, 2.jpg, 2, 2015-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:09),(19, zhang2, 123456, 张二, 1, 2.jpg, 2, 2012-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:11),(20, zhang3, 123456, 张三, 1, 2.jpg, 2, 2018-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:13),(21, zhang4, 123456, 张四, 1, 2.jpg, 2, 2015-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:15),(22, zhang5, 123456, 张五, 1, 2.jpg, 2, 2016-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:17),(23, zhang6, 123456, 张六, 1, 2.jpg, 2, 2012-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:19),(24, zhang7, 123456, 张七, 1, 2.jpg, 2, 2006-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:21),(25, zhang8, 123456, 张八, 1, 2.jpg, 2, 2002-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:23),(26, zhang9, 123456, 张九, 1, 2.jpg, 2, 2011-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:25),(27, zhang10, 123456, 张十, 1, 2.jpg, 2, 2004-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:27),(28, zhang11, 123456, 张十一, 1, 2.jpg, 2, 2007-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:29),(29, zhang12, 123456, 张十二, 1, 2.jpg, 2, 2020-01-01, 2022-10-27 16:35:33, 2022-10-27 16:36:31);
基本查询语法 -- DQL 查询
-- 1.查询指定字段 name,entrydate 并返回
select name,entrydate from tb_emp;-- 2查询返回所有字段
-- 不推荐不直观性能低
select * from tb_emp;-- 推荐
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;-- 3查询所有员工的name,entrydate,并起别名姓名、入职日期
select name as 姓 名,entrydate as 入职 日期 from tb_emp;
select name 姓名,entrydate 入职日期 from tb_emp;-- 4查询已有的员工关联了那几种职位不要重复
select job from tb_emp;
select distinct job from tb_emp; 条件查询 -- 条件查询
-- 案例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;-- 案例6查询 入职日期 在 2000-01-01 (包含) 到 2010-01-01(包含) 之间的员工信息
select * from tb_emp where entrydate between 2000-01-01 and 2010-01-01;
select * from tb_emp where entrydate 2000-01-01 and entrydate 2010-01-01;-- 案例7查询 入职时间 在 2000-01-01 (包含) 到 2010-01-01(包含) 之间 且 性别为女 的员工信息
select *
from tb_emp where entrydate between 2000-01-01 and 2010-01-01 and gender 2;-- 案例8查询 职位是 2 (讲师), 3 (学工主管), 4 (教研主管) 的员工信息
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp where job 2 || job 3 || job 4 ;
select *
from tb_emp where job in(2,3,4);
-- 案例9查询 姓名 为两个字的员工信息
select *
from tb_emp where name like __;-- 案例10查询 姓 张 的员工信息
select *
from tb_emp where name like 张%; 分组查询 -- 分组查询常见的聚合函数-- 案例1统计该企业员工数量聚合函数
select count(username) from tb_emp;
select count(id) from tb_emp;
select count(job) from tb_emp;-- count 参量
select count(a) from tb_emp;-- count(*) --推荐使用count(*)
select count(*) from tb_emp;-- 案例2统计该企业最早入职的员工
select min(entrydate) from tb_emp;-- 案例3统计该企业最迟入职的员工
select max(entrydate) from tb_emp;-- 案例4统计该企业员工 ID 的平均值
select avg(id) from tb_emp;-- 案例5统计该企业员工的 ID 之和
select sum(id) from tb_emp; 分组查询小结 分页查询 排序查询 -- 排序查询
-- 案例1根据入职时间, 对员工进行升序排序
select * from tb_emp order by entrydate ASC;-- 案例2根据入职时间对员工进行降序排序
select * from tb_emp order by entrydate DESC;-- 案例3根据入职时间对公司的员工进行升序排序入职时间相同再按照更新时间进行降序排序
select * from tb_emp order by entrydate ASC , update_time DESC; 综合案例
案例一 select * from tb_emp where name like 张% and gender 1 and entrydate between 2000-01-01 and 2015-12-31 order by update_time desc limit 0,10;ctrlaltL 可以将一句变短
案例二 -- 完成员工性别统计
-- if(条件表达式, true取值, false取值)
select if(gender 1, 男性员工 ,女性员工) AS 性别,count(*) from tb_emp group by gender;-- AS可以省略
select if(gender 1, 男性员工 ,女性员工) 性别,count(*) 数量 from tb_emp group by gender;select case jobwhen 1 then 班主任when 2 then 讲师when 3 then 学工主管when 4 then 教研主管else 未分配职位 end, count(*)
from tb_emp
group by job; 参考文章
https://www.bilibili.com/video/BV1m84y1w7Tb