MySQL数据库学习(二) MySQL数据库课后练习(1) DDL与DML练习
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练习相关推荐
- mysql选定数据库_mysql数据库学习――2,数据库的选定,创建,删除和变更_MySQL...
bitsCN.com mysql数据库学习--2,数据库的选定,创建,删除和变更 数据库选定,数据库选定后依然可以使用其他数据库中的数据表,只要指定[数据库.数据表]即可 use db_namesel ...
- mysql now str,数据库学习之MySQL (十)—— 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE...
MySQL学习专栏 正在持续更新中:) 文章目录 日期和时间函数 NOW STR_TO_DATE DATE_FORMAT 流程控制函数 IF IFNULL CASE 下章预告 日期和时间函数 NOW ...
- 数据库学习之MySQL (十七)—— SQL99 主查询 与 子查询 子查询分类之WHERE的子查询
文章目录 主查询 子查询 纲举目张--子查询的分类 WHERE语句后的 子查询 主查询 子查询 概念集中于SELECT语句 之前我们所学习的所有,都是SELECT作为独立的一句 是主干,是爸爸 后面跟 ...
- 数据库学习之MySQL (九)—— 数学函数 字符串函数 CONCAT TRIM PAD
MySQL学习专栏 正在持续更新中:) 文章目录 复习一下 前面学到的函数 LENGTH CONCAT 数学函数 ABS CEIL FLOOR ROUND POW 常用字符串函数 SUBSTR REP ...
- 数据库学习之MySQL (三)——数据库小试牛刀 + 利用对象思维理解表行列
文章目录 前言 ´・ᴗ・` 获得自己第一个数据库 执行代码 小试牛刀 简单语句的实验方法 表 的理解 总结 ´◡` 前言 ´・ᴗ・` 本文我们将通过运行sql代码 得到自己的第一个数据库 我们学习的重 ...
- 数据库学习之MySQL (十六)—— SQL99 外连接 左外连接 右外连接 全外连接 交叉连接
文章目录 外连接 之 左外连接 与 右外连接 为啥要用外连接 全外连接 总结 内连接 外连接 交叉连接 外连接 之 左外连接 与 右外连接 我们先来看个之前的 女神男朋友的案例 传送:数据库学习之My ...
- MySQL学习(二)——MySQL多表
MySQL学习(二)--MySQL多表 分页操作:使用limit(参数1,参数2)起始位置(参数1)=(第几页-1)*每页显示的条数(参数2)1.分类表 create table category(c ...
- 数据库学习之多种数据库横向对比
数据库学习之多种数据库横向对比 前言 横向对比 区别分析 MySQL PostgreSQL Oracle SqlServer 其他 技术分析 获取数据库(database) 获取约束(schema) ...
- MySQL运维(二)MySQL分库分表概念及实战、读取分离详解
MySQL运维(二)MySQL分库分表详解.读取分离详解 1.MySQL分库分表相关概念 1.1 分库分表概念 1.1.1 分库的原因 分库:就是一个数据库分成多个数据库,部署到不同机器. 如果业务量 ...
- Mysql学习(二)创建数据库和表
MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的 ...
最新文章
- Google搜索的常用技巧
- 创建JUNIT测试类
- TLS与SSL之间关系——SSL已经被IEFT组织废弃,你可以简单认为TLS是SSL的加强版
- python安装教程win8-python 2.7在win8.1上安装的方法
- spark保存到mysql_Spark写入数据到MySQL
- 利用Cydia Substrate进行Android HOOK(2)
- 4、oracle数据库的查询基础
- 值不值 | 三分钟搞定jpa?值不值!
- MySQL5.5安装版安装教程
- 寻宝机器人电路板焊接_专业维修宿迁市史陶比尔STAUBLI机器人维修{苏州罗韦维修}...
- 带你深挖Java泛型类型擦除以及类型擦除带来的问题
- EmEditor Professional v14/15/16/17/18 最新版 注册码 2000组(终身授权)
- UI自动化测试实战--- app订单、web发货(9)
- 安装算量软件图纸复制操作
- 开发一个Android志愿填报系统(后台管理+前台app)毕业设计
- 计算机类专业教指委委员名单,教育部高等学校计算机类专业教学指导委员会举办《高校计算机系统能力培养教学研讨会》...
- ElGamal 算法思考
- 排障集锦:九九八十一难之第十八难!-----System has not been booted with systemd as init system (PID 1). Can‘t operat
- JVM学习 -- JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
- 基于VMD变分模态分解算法Python程序
热门文章
- ERROR: AddressSanitizer: odr-violation ord 错误
- MQ-2烟雾传感器的原理及使用教程
- 【论文】【CwMed】Byzantine-Robust Distributed Learning: Towards Optimal Statistical Rates
- Blach-Box and White-Box Testing
- 同是做开源,它赚了20亿,国产OS厂商还在为生存纠结
- 3.4.7、使用 systemd 管理配置 Docker
- (附源码)计算机毕业设计Java城市道路智能停车管理系统
- Ubuntu18.04.1安装Docker CE 18.09.5
- Android之代码混淆
- PyQt5学习笔记- PyQt5控件介绍