MySQL数据库课后练习1

  • 一.第1题
  • 二.第2题
  • 三.第3题
  • 四.第4题
  • 五.第5题
  • 总结

一.第1题

案例:

1、创建数据库day01_test01_library

2、创建表格books

字段名 字段说明 数据类型 允许为空 唯一
b_id 书编号 int(11)
b_name 书名 varchar(50)
authors 作者 varchar(100)
price 价格 float
pubdate 出版日期 year
note 说明 varchar(100)
num 库存 int(11)

3、向books表中插入记录

1) 指定所有字段名称插入第一条记录

2)不指定字段名称插入第二记录

3)同时插入多条记录(剩下的所有记录)

b_id b_name authors price pubdate note num
1 Tal of AAA Dickes 23 1995 novel 11
2 EmmaT Jane lura 35 1993 joke 22
3 Story of Jane Jane Tim 40 2001 novel 0
4 Lovey Day George Byron 20 2005 novel 30
5 Old land Honore Blade 30 2010 law 0
6 The Battle Upton Sara 30 1999 medicine 40
7 Rose Hood Richard haggard 28 2008 cartoon 28

4、将小说类型(novel)的书的价格都增加5。

5、将名称为EmmaT的书的价格改为40。

6、删除库存为0的记录

//1.创建数据库day01_test01_library
create database day_01_test01_library;

运行后的结果为:

//2.创建表格books
create table books(bid int(11)  PRIMARY KEY not null,b_name varchar(50) not null,authors varchar(100) not null,price float  not null,pubdate year not null,note varchar(100),num int(11)  not null);desc books;

运行后的结果为:

//3.(1)指定所有字段名称插入第一条语句
insert into   books(bid,b_name,authors,price,pubdate,note,num) values  (1,'Tal of AAA','Dickes',23,'1995','novel',11);
select * from  books;

运行后的结果为:

//3.(2)不指定字段名称插入第二条记录
insert  into  books  values(2,'EmmaT','Jane lura',35,1993,'joke',22);
select * from books;

** 运行后的结果为:**

//3.(3)同时插入多条数据(剩下的所有数据)
insert into books values (3,'Story of Jane','Jane Tim',40,'2001','novel',0),(4,'Lovey Day','George Byron',20,'2005','novel',30),(5,'Old land','Honore Blade',30,'2010','law',0),(6,'The Battle','Upton Sara',30,'1999','medicine',40),(7,'Rose Hood','Richard haggard',28,'2008','cartoon',28);
select * from books;

运行后的结果为:

//4.将小说类型(novel)的书的价格都增加5
update books set  price=price+5 where note='novel';
select * from books;

//5.将名称为EmmaT的书的价格改为40
update books set   price=40 where b_name='EmmaT';
select * from books;

运行后的结果为:

//6、删除库存为0的记录
delete  from books where num=0;
select * from books;

运行后的结果为:


二.第2题

1、创建数据库day01_test02_market

2、创建表格customers

字段名 数据类型
c_num int(11)
c_name varchar(50)
c_contact varchar(50)
c_city varchar(50)
c_birth date

要求3:将c_contact字段移动到c_birth字段后面

要求4:将c_name字段数据类型改为 varchar(70)

要求5:将c_contact字段改名为c_phone

要求6:增加c_gender字段到c_name后面,数据类型为char(1)

要求7:将表名改为customers_info

要求8:删除字段c_city

//1、创建数据库day01_test02_marketcreate database day01_test02_market;

//2. 创建表格customers
create table customers(c_num int(11),c_name varchar(50),c_contact varchar(50),c_city  varchar(50),c_birth date
);desc customers;

运行后的结果为:

//要求3:将c_contact字段移动到c_birth后面
alter table customers  modify c_contact varchar(50) after c_birth;
desc customers;

运行后的结果为:

//要求4:将c_name字段数据类型改为varchar(70)
alter   table customers modify c_name varchar(70);
desc customers;

运行后的结果为:

//要求5:将c_contact 字段改名为c_phone
alter table customers change c_contact  c_phone  varchar(50);
desc  customers;

运行后的结果为:

// 要求6:增加c_gender字段到c_name后面,数据类型为char(1)
alter   table customers add  c_gender   char(1)  after c_name;

运行后的结果为:

//要求7:将表名改为customers_info
alter  table customers  rename  customers_info;

运行后的结果为:

//要求8:删除字段c_city
alter table  customers_info  drop  c_city;
desc customers_info;

运行后的结果为:


三.第3题

1、创建数据库day01_test03_company

2、创建表格offices

字段名 数据类型
officeCode int
city varchar(30)
address varchar(50)
country varchar(50)
postalCode varchar(25)

3、创建表格employees

字段名 数据类型
empNum int(11)
lastName varchar(50)
firstName varchar(50)
mobile varchar(25)
code int
jobTitle varchar(50)
birth date
Note varchar(255)
Sex varchar(5)

要求4:将表employees的mobile字段修改到code字段后面。

要求5:将表employees的birth字段改名为birthday;

要求6:修改sex字段,数据类型为char(1)。

要求7:删除字段note;

要求8:增加字段名favoriate_activity,数据类型为varchar(100);

要求9:将表employees的名称修改为 employees_info

//1.创建数据库day01_test03_company
create  database  day01_test03_company;//2.创建表格offices
create  table  offices(
officeCode   int,
city    varchar(30),
address  varchar(50),
country   varchar(50),
postalCode  varchar(25)
);
desc  offices;

运行后的结果为:

//3.创建表格employees
create  table  employees(empNum int(11),lastName  varchar(50),firstName varchar(50),mobile   varchar(25),code int,jobTitle  varchar(50),birth date,Note  varchar(255),Sex  varchar(5)
);
desc employees;

运行后的结果为:

//要求4:将表中employees的mobile字段修改到code字段后面
alter  table  employees  modify  mobile varchar(25)  after  code;
desc  employees;

运行后的结果为:

//要求5:将表中employees的birth字段修改为birthday
alter   table  employees  change  birth   birthday  date ;
desc  employees;

运行后的结果为:

//要求6:修改sex字段,数据类型为char(1)
alter table  employees modify  Sex  char(1);
desc employees;

运行后的结果为:

//要求7:删除字段note
alter table  employees  drop  note;
desc  employees;

运行后的结果为:

//要求8:增加字段名favoriate_activity,数据类型为varchar(100);
alter  table  employees add  favoriate_activity  varchar(100);
desc   employees;

//要求9:将表employees 的名称修改为employees_info
alter  table  employees rename  employees_info;

运行后的结果为:


四.第4题

1、创建数据库day01_test04db

2、创建表格employee,并添加记录

id name sex tel addr salary
10001 张一一 13456789000 广东韶关 1001.58
10002 刘小红 13454319000 广东江门 1201.21
10003 李四 0751-1234567 广东佛山 1004.11
10004 刘小强 0755-5555555 广东深圳 1501.23
10005 王艳 020-1232133 广东广州 1405.16

要求3:查询出薪资在1200~1300之间的员工信息。

要求4:查询出姓“刘”的员工的工号,姓名,家庭住址。

要求5:将“李四”的家庭住址改为“广东韶关”

要求6:查询出名字中带“小”的员工

//1.创建数据库day01_test04db
create database  day01_test04db;//2.创建表格employee,并添加记录
use   day01_test04db;
create table  employee(id  int(11),name varchar(25),sex  char(1),tel  varchar(25),addr  varchar(25),salary  double
)desc   employee;insert into    employee values   (10001,'张一一','男','13456789000','广东韶关',1001.58),(10002,'刘小红','女','13454319000','广东江门',1201.21),(10003,'李四','男','0751-1234567','广东佛山',1004.11),(10004,'刘小强','男','0755-5555555','广东深圳',1501.23),(10005,'王艳','女','020-1232133','广东广州',1405.16);select * from  employee;

运行后的结果为:

//3.要求3:查询薪资在1200到1300之间的员工信息
select  * from  employee  where  salary  between  1200 and 1300;

运行后的结果为:

//4.查询出姓“刘”的员工的工号,姓名,家庭地址
select   id,name,addr   from   employee  where name  like "刘%";

运行后的结果为:

//5.将“李四”的家庭住址修改为“广东韶关”
update employee  set addr='广东韶关'  where  id =10003;
select * from  employee;

//6.查询出名字中带"小"的员工
select  * from   employee where  name like '%小%';


五.第5题

1、创建数据库day01_test05db

2、创建表格pet

字段名 字段说明 数据类型
name 宠物名称 varchar(20)
owner 宠物主人 varchar(20)
species 种类 varchar(20)
sex 性别 char(1)
birth 出生日期 year
death 死亡日期 year

3、添加记录

name owner species sex birth death
Fluffy harold Cat f 2003 2010
Claws gwen Cat m 2004
Buffy Dog f 2009
Fang benny Dog m 2000
bowser diane Dog m 2003 2009
Chirpy Bird f 2008

4、 添加字段主人的生日owner_birth。

5、 将名称为Claws的猫的主人改为kevin

6、 将没有死的狗的主人改为duck

7、 查询没有主人的宠物的名字;

8、 查询已经死了的cat的姓名,主人,以及去世时间;

9、 删除已经死亡的狗

10、查询所有宠物信息

//1.创建数据库day01_test05db
create  database day01_test05db;//2.创建表格pet
create table  pet(name  varchar(20),owner varchar(20),species  varchar(20),sex  char(1),birth  year,death   year
);desc   pet;

运行后的结果为:

//3.添加数据
insert into pet  values('Fluffy','harold','Cat','f',2003,2010),('Claws','gwen','Cat','m',2004,null),('Buffy',null,'Dog','f',2009,null),('Fang','benny','Dog','m',2000,null),('bowser','diane','Dog','m',2003,2009),('Chirpy',null,'Bird','f',2008,null);select * from  pet;

运行后的结果为:

//4.添加字段主人的生日owner_birth
alter table  pet  add owner_birth  date;
desc  pet;

运行后的结果为:

//5.将名称为Claws的猫的主人改为kevinupdate    pet  set  owner='kevin' where  name='Claws';
select * from  pet;

运行后的结果为:

//6.将没有死的狗的主人改为duck
update   pet  set  owner='duck'  where species ='Dog' and  death is null;
select  * from  pet;

运行后的结果为:

//7.查询没有主人的宠物的姓名
select  name  from  pet where  owner is null;

运行后的结果为:

//8. 查询已经死了的cat的姓名,主人,以及去世时间;
select  name,owner,death from  pet where  death is not null and species ='Cat';

运行后的结果为:

//9.删除已经死亡的狗
delete   from pet  where  death  is not null and species='Dog';
select * from pet;

运行的结果为:

总结

本节主要对1.DDL(数据库定义语言)定义库,表结构等,包含create,drop,alter;2.DML(数据操作语言),增删改查数据,包括insert,delete,update,select语句进行练习。重点掌握这些sql语句的语法,对后面的数据库操作很重要。

MySQL数据库学习(二) MySQL数据库课后练习(1) DDL与DML练习相关推荐

  1. mysql选定数据库_mysql数据库学习――2,数据库的选定,创建,删除和变更_MySQL...

    bitsCN.com mysql数据库学习--2,数据库的选定,创建,删除和变更 数据库选定,数据库选定后依然可以使用其他数据库中的数据表,只要指定[数据库.数据表]即可 use db_namesel ...

  2. mysql now str,数据库学习之MySQL (十)—— 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE...

    MySQL学习专栏 正在持续更新中:) 文章目录 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE 下章预告 日期和时间函数 NOW ...

  3. 数据库学习之MySQL (十七)—— SQL99 主查询 与 子查询 子查询分类之WHERE的子查询

    文章目录 主查询 子查询 纲举目张--子查询的分类 WHERE语句后的 子查询 主查询 子查询 概念集中于SELECT语句 之前我们所学习的所有,都是SELECT作为独立的一句 是主干,是爸爸 后面跟 ...

  4. 数据库学习之MySQL (九)—— 数学函数 字符串函数 CONCAT TRIM PAD

    MySQL学习专栏 正在持续更新中:) 文章目录 复习一下 前面学到的函数 LENGTH CONCAT 数学函数 ABS CEIL FLOOR ROUND POW 常用字符串函数 SUBSTR REP ...

  5. 数据库学习之MySQL (三)——数据库小试牛刀 + 利用对象思维理解表行列

    文章目录 前言 ´・ᴗ・` 获得自己第一个数据库 执行代码 小试牛刀 简单语句的实验方法 表 的理解 总结 ´◡` 前言 ´・ᴗ・` 本文我们将通过运行sql代码 得到自己的第一个数据库 我们学习的重 ...

  6. 数据库学习之MySQL (十六)—— SQL99 外连接 左外连接 右外连接 全外连接 交叉连接

    文章目录 外连接 之 左外连接 与 右外连接 为啥要用外连接 全外连接 总结 内连接 外连接 交叉连接 外连接 之 左外连接 与 右外连接 我们先来看个之前的 女神男朋友的案例 传送:数据库学习之My ...

  7. MySQL学习(二)——MySQL多表

    MySQL学习(二)--MySQL多表 分页操作:使用limit(参数1,参数2)起始位置(参数1)=(第几页-1)*每页显示的条数(参数2)1.分类表 create table category(c ...

  8. 数据库学习之多种数据库横向对比

    数据库学习之多种数据库横向对比 前言 横向对比 区别分析 MySQL PostgreSQL Oracle SqlServer 其他 技术分析 获取数据库(database) 获取约束(schema) ...

  9. MySQL运维(二)MySQL分库分表概念及实战、读取分离详解

    MySQL运维(二)MySQL分库分表详解.读取分离详解 1.MySQL分库分表相关概念 1.1 分库分表概念 1.1.1 分库的原因 分库:就是一个数据库分成多个数据库,部署到不同机器. 如果业务量 ...

  10. Mysql学习(二)创建数据库和表

    MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的 ...

最新文章

  1. Google搜索的常用技巧
  2. 创建JUNIT测试类
  3. TLS与SSL之间关系——SSL已经被IEFT组织废弃,你可以简单认为TLS是SSL的加强版
  4. python安装教程win8-python 2.7在win8.1上安装的方法
  5. spark保存到mysql_Spark写入数据到MySQL
  6. 利用Cydia Substrate进行Android HOOK(2)
  7. 4、oracle数据库的查询基础
  8. 值不值 | 三分钟搞定jpa?值不值!
  9. MySQL5.5安装版安装教程
  10. 寻宝机器人电路板焊接_专业维修宿迁市史陶比尔STAUBLI机器人维修{苏州罗韦维修}...
  11. 带你深挖Java泛型类型擦除以及类型擦除带来的问题
  12. EmEditor Professional v14/15/16/17/18 最新版 注册码 2000组(终身授权)
  13. UI自动化测试实战--- app订单、web发货(9)
  14. 安装算量软件图纸复制操作
  15. 开发一个Android志愿填报系统(后台管理+前台app)毕业设计
  16. 计算机类专业教指委委员名单,教育部高等学校计算机类专业教学指导委员会举办《高校计算机系统能力培养教学研讨会》...
  17. ElGamal 算法思考
  18. 排障集锦:九九八十一难之第十八难!-----System has not been booted with systemd as init system (PID 1). Can‘t operat
  19. JVM学习 -- JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
  20. 基于VMD变分模态分解算法Python程序

热门文章

  1. ERROR: AddressSanitizer: odr-violation ord 错误
  2. MQ-2烟雾传感器的原理及使用教程
  3. 【论文】【CwMed】Byzantine-Robust Distributed Learning: Towards Optimal Statistical Rates
  4. Blach-Box and White-Box Testing
  5. 同是做开源,它赚了20亿,国产OS厂商还在为生存纠结
  6. 3.4.7、使用 systemd 管理配置 Docker
  7. (附源码)计算机毕业设计Java城市道路智能停车管理系统
  8. Ubuntu18.04.1安装Docker CE 18.09.5
  9. Android之代码混淆
  10. PyQt5学习笔记- PyQt5控件介绍