MySQL数据库的学习笔记(持续更新) - 朱岩松博客

朱岩松博客

记录
点滴生活
首页>> 学习笔记 >>MySQL数据库的学习笔记(持续更新) - 朱岩松博客

前言:

最近学习了MySQL,便将所学的知识归档一下吧!希望对您有所帮助!


mysql.png

启动/停止 数据库命令:net start mysql / net stop mysql

登录数据库: mysql -u 用户名  -p

显示数据库列表:show databases;

显示库中的数据表:use mysql; show tables;

新建数据库: create database 库名 default charset utf8;

删除数据库: drop database 库名;

数据库常见单词表:

asc

升序

int

整型

auto_increment

自动增长

into

...内部

avg

平均

is not  null

不为空

between   and

两者之间范围

is null

是空

char

固定长度字符型

join

连接

check

检查约束

left

count

技术

like

模糊匹配

create  database

创建数据库

limit

限制范围

create  table

创建表

max

最大值

datetime

日期数据类型

min

最小值

default

缺省值

not null

非空

delete

删除

null

允许空

desc

降序

on

连接条件

distinct

去重复

order by

排序

double

双精度浮点数

primary key

主键PK

drop  database

删除数据库

references

引用

drop  table

删除表

right

exists

是否存在

select

查询

float

单精度浮点数

set

设置

foreign key

外键

sum

求和

from

来源

unique

唯一性约束

group by

分组

update

更新

having

分组过滤

values

in

指定清单内

varchar

可变长度字符型

insert

插入

where

条件筛选

单词表附件下载地址:点我下载

2021/10/11日 mysql作业答案分享:

作业1:部门-员工表

部门表【Dept

编号

字段名称

字段描述

数据类型

备注

1

did

部门ID

int

主键,自增

2

pdid

上级部门编号

int

3

dname

部门名称

varchar(20)

唯一

4

dtel

   部门电话

varchar(20)

唯一

5

dcreatetime

创建日期

datetime

员工表【Emp

编号

字段名称

字段描述

数据类型

备注

1

eid

编号

int

主键,自增

2

ename

员工姓名

varchar(20)

3

sex

员工性别

char(1)

'F'M''

4

salary

员工工资

float

5

hiredate

入职日期

datetime

6

firedate

离职日期

datetime

7

did

部门ID

int

外键

题目答案:(注:此答案仅适用于建表以及插入数据答案中的数据表使用)

(1)     查询部门id2的员工

手写代码:SELECT ename FROM emp where did=2;

(2)     查询员工信息并按入职时间降序排列

手写代码:SELECT * from emp ORDER BY hiredate desc;

(3)     查询薪水低于3000的员工

手写代码:SELECT ename from emp where salary<3000;

(4)     查询薪水在2000~4000之间的员工

手写代码:select ename from emp where salary BETWEEN 2000 and 4000;

(5)     查询第3条到第5条记录的员工信息
手写代码:select * from emp LIMIT 2,3;

(6)     查询出2006年(含)以后入职的员工

手写代码:SELECT ename from emp where hiredate>='2006-1-1'

(7)     查询每个部门的员工数

手写代码:

SELECT count(*)as 部门员工数 from emp where did=1;


SELECT count(*)as 部门员工数 from emp where did=2;

SELECT count(*)as 部门员工数 from emp where did=3;


(8)     按性别统计员工人数

手写代码:


SELECT count(*) as 部门员工数 from emp where sex='F';

SELECT count(*) as 部门员工数 from emp where sex='M';


(9)     查询各部门中最高工资、最低工资、平均工资

手写代码:SELECT max(salary) as 最高工资 ,min(salary) as 最低工资,avg(salary) as 平均工资 from emp group by did;


(10) 查询所有为员工按薪水降序,入职时间升序排列

手写代码:SELECT ename from emp order by salary asc, hiredate desc;

建表以及插入数据答案:


create database zys; --建数据库 zys为数据库名,可改

use zys; --使用数据库

create table dept( --新建数据表

did int PRIMARY key auto_increment,

pdid int,

dname varchar(20) UNIQUE,

dtel VARCHAR(20) unique,

dceatetime datetime

);

create table emp( --新建数据表

eid int PRIMARY key auto_increment,

ename varchar(20),

sex CHAR(1) check(sex='F' or sex='M'),

salary float,

hiredate datetime,

diredate datetime,

did int,

FOREIGN key (did) REFERENCES dept(did)

);

INSERT into dept value(1,1,'部门1','0710-110','2021-10-1');  --以下为插入数据库

INSERT into dept value(2,3,'部门2','0710-6900','2021-10-2');

INSERT into dept value(3,3,'部门3','0710-560','2021-10-6');

INSERT into emp value(1,'张三','F',2500,'2021-5-1','2021-10-1',1);

INSERT into emp value(2,'李二','M',4000,'2021-5-15','2021-10-1',3);

INSERT into emp value(3,'王四','F',6000,'2021-7-11','2021-10-1',2);

INSERT into emp value(4,'王七','F',4000,'2021-2-15','2021-10-1',1);

INSERT into emp value(5,'王六','F',2000,'2021-2-10','2021-10-1',2);

2021年10月14日作业

图书-订单-明细表,使用SQL语句完成下面任务:
图书表【Books】
编号 字段名称 字段描述 数据类型 备注
1 bid 图书编号 int 主键,自增
2 bname 书名 varchar(50)
3 bauthor 作者 varchar(20)
4 bpress 出版社 varchar(50)
5 purchaseprice 图书进价 float
6 salesprice 图书售价 float
7 amount 图书库存量 int

订单表【Orders】
编号 字段名称 字段描述 数据类型 备注
1 oid 订单编号 int 主键,自增
2 otime 下订单时间 datetime
3 uname 客户名 varchar(20)
4 uphone 客户电话 varchar(50)
5 uaddress 客户地址 varchar(100)
6 postalcode 邮编 varchar(6)

订单明细表【OrdersDetail】
编号 字段名称 字段描述 数据类型 备注
1 odid 订单明细编号 int 主键,自增
2 oid 订单编号 int 外键
3 bid 图书编号 int 外键
4 amount 购买数量 int
 

查询作者金庸的图书信息,只列出书名和出版社
手写代码:

查询“邮电出版社”出版的所有图书信息
手写代码:

查询图书库存量低于100的图书信息
手写代码:

查询售价在20~40之间的图书信息
手写代码:

查询售价在30以上且库存量不足200的图书信息
手写代码:

按出版社升序,售价降序显示所有图书信息
手写代码:

根据图书编号排序,查询图书表中第2-4条记录
手写代码:

查询每本图书的利润(利润=售价-进价)
手写代码:

查询客户许晴购买图书共花了多少钱
手写代码:


查询"许晴"的最近的一笔订单
手写代码:


答案:

create database zy1;
use zy1;

CREATE table books(
bid int PRIMARY key auto_increment,
bname VARCHAR(50),
bauthor varchar(20),
bpress varchar(50),
purchaseprice float,
salesprice float,
amount int
);

CREATE table orders(
oid int PRIMARY key auto_increment,
otime datetime,
uname varchar(20),
uphone varchar(50),
uaddress VARCHAR(100),
postalcode varchar(6)
);

create table ordersdetail(
odid int PRIMARY key auto_increment,
oid int,
FOREIGN key (oid) REFERENCES orders(oid),
bid int,
FOREIGN key (bid) REFERENCES books(bid),
amount int
);

INSERT into books(bid,bname,bauthor,bpress,purchaseprice,salesprice,amount)
value(1000,'梦里花落知多少','郭敬明','邮电出版社',24.80,37.90,200);

INSERT into books(bid,bname,bauthor,bpress,purchaseprice,salesprice,amount)
value(1001,'笑傲江湖','金庸','人民出版社',31.50,42.10,100);

INSERT into books(bid,bname,bauthor,bpress,purchaseprice,salesprice,amount)
value(1002,'倚天屠龙记','金庸','邮电出版社',40.00,48.00,80);

INSERT into books(bid,bname,bauthor,bpress,purchaseprice,salesprice,amount)
value(1003,'平凡的世界','路遥','人民出版社',45.90,53.80,115);

INSERT into orders(otime,uname,uphone,uaddress,postalcode)
value('2010-02-04','许晴','13456667888','襄樊建华路','440110');

INSERT into orders(otime,uname,uphone,uaddress,postalcode)
value('2010-05-01','张磊','13456666666','武汉紫阳路','410908');

INSERT into ordersdetail(oid,bid,amount)
VALUE(1,1000,1);

INSERT into ordersdetail(oid,bid,amount)
VALUE(2,1001,2);
-- 第一题:查询作者金庸的图书信息,只列出书名和出版社
SELECT bname,bpress from books where bauthor='金庸';

-- 第二题:查询“邮电出版社”出版的所有图书信息
SELECT * from books where bpress='邮电出版社';

-- 第三题:查询图书库存量低于100的图书信息
select * from books where amount<100;

-- 第四题:查询售价在20~40之间的图书信息
select * from books where salesprice BETWEEN 20 and 40;

-- 第五题:查询售价在30以上且库存量不足200的图书信息
SELECT * from books where salesprice>30 and amount<200;

-- 第六题:按出版社升序,售价降序显示所有图书信息
select * from books ORDER BY bpress asc,salesprice desc;

-- 第七题:根据图书编号排序,查询图书表中第2-4条记录
select * from books order by bid limit 1,3;

-- 第八题:查询每本图书的利润(利润=售价-进价)
select bname,salesprice-purchaseprice as 利润 from books;

-- 第九题:查询客户许晴购买图书共花了多少钱
SELECT 

-- 第十题:查询"许晴"的最近的一笔订单
SELECT * from orders where uname='许晴' ORDER BY otime desc LIMIT 1;


注:将会持续学习持续更新此帖。


×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在


版权所有,转载注意明处:朱岩松博客 » MySQL数据库的学习笔记(持续更新)
标签: MySQL

发表评论

路人甲
未显示?请点击刷新

网友评论(0)