MySQL

MySQL_作业1

一.基础题

  1. 数据库
    数据库是一个将数据按照一定的数据结构进行组织储存,储存和管理的仓库.

  2. 数据是什么?
    对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。数据是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。(电脑里面的所有东西都可以称为数据,eg.一段文字,一条记录,一张图片,一段音频等)

  3. 以下属于数据的是(ABCD)
    A.一段视频:聚数云海.mp4
    B.一张照片:
    C. 张无忌的期末成绩单:M202017769 ,100,96,94,93
    D. 大写字母:D

  4. 什么是关系型数据?
    以二维表的形式存放,有行有列,每一行的数据类型相同,每一列代表的意义相同。

  5. 什么是非关系型数据?
    数据以k-v键值对方式存在,多条数据之间没有相关性;

  6. 以下是什么类型的数据?(关系型数据)
    在这里插入图片描述

  7. 以下是什么类型的数据?(关系型数据)
    在这里插入图片描述

  8. 以下是什么类型的数据?(非关系型数据)
    data1={id, name, age, sex}
    data2={address, age, class}
    data3={subject, age, id, brand}

  9. 什么是关系型数据库?
    关系型数据库指的就是将数据按照一定的关系模组来进行组织的数据库管理系统。 关系型数据库将数据以行和列这种二维表的形式进行存储,而整个数据库其实就是多个二维表组成的一个数据组织,这种数据库主要有:oracle、MySQL、SQL Serve.
    (用来存放关系型数据的数据库为关系型数据库)

  10. 什么是非关系型数据库?
    非关系型数据库-NOSQL(Not Only SQL)就是将数据按照K-V键值对的形式进行存储,数据与数据之间的关联性不强,约束条件较少(甚至没有)的数据管理系统。当前市场主要的非关系型数据库主要有:mangodb、redis。

  11. 什么是SQL?
    Structured Query Language简称SQL,结构化查询语言,这种语言是一种数据库查询和程序设计语言,主要用于存取数据以及查询、更新和管理关系型数据库.

  12. SQL语句分为哪些?
    (1)数据定义语言DDL(Data Definition Language)-主要是针对数据库对象(包括数据库、数据表、索引、视图等)进行创建、修改与删除操作
    (2) 数据查询语言DQL(Data Query Language)-用于数据库中检索数据,进行各种数据查询,也是日常工作中使用最多的语句
    (3) 数据操纵语言DML(Data Manipulation Language)-对于数据表中数据的增加、删除与修改操作
    (4)数据控制语言DCL(Data Control Language)-用于用户账号的操作,比如创建用户、修改权限等
    (5) 事务控制语言TCL(Transaction Control Language)-用于事务的开启、提交、回滚。主要目的是维护数据的一致性.

二.操作题

  1. 编写一条create table语句,用来创建一个包含表1-A中所列各项的表Addressbook,并为regist_no(注册编码)列设置主键约束。
    在这里插入图片描述
create table Addressbook(
	Regist_no int primary key,
	Name varchar(128) not null,
	Address varchar(256) not null,
	Tel_no char(10),
	Mail_address char(20
);
  1. 假设在创建练习1中的addressbook表时忘记添加如下一列postal_code(邮政编码)了,请把此列添加到Addressbook表中。
    列名:postal_code
    数据类型:定长字符串类型(长度为8)
    约束:不能为null
alter table Addressbook add postal_code char(8) not null;
  1. 查看表Addressbook的结构
desc Addressbook;
  1. 将表addressbook中姓名的数据类型定义修改为可变长字符串类型(长度为256)
alter table  Addressbook modify name varchar(256);
  1. 将表addressbook中姓名字段名修改为XingMing
alter tablle Adressbook change Name XingMing varchar(256);
  1. 编写SQL语句来删除Addressbook表
drop table Addressbook;

三. 操作题

  1. (1) 创建一个表:旅游路线图(TRAVEL_ROUTE)
    字段包括:线路ID(ROUTE_ID),VARCHAR(3)
    线路名(TRAVEL_ROUTE_NAME),VARCHAR(50)
    出发地(DEPART),VARCHAR(50)
    目的地(DESTINATION),VARCHAR(50)
    类型(ROUTE_TYPE)【省内,国内,国际】,VARCHAR(30)
    出发时间(DEPARTURE),VARCHAR(10)
    价位(PRICE),FLOAT(7,2)
create table TRAVEL_ROUTE(
	ROUTE_ID varchar(3),
	TRAVEL_ROUTE_NAME varchar(50),
	DEPART varchar(50),
	DESTINATION varchar(50),
	ROUTE_TYPE varchar(50),
	ROUTE_TYPE varchar(30),
	DEPARTURE varchar(10),
	PRICE float(7.2)
);

(2) 将出发时间改为CHAR(10)类型

alter table TRAVEL_ROUTE modify DEPARTURE char(10);

(3) 将价位改为字符串形式(VARCHAR(27))

alter table TRAVEL_ROUTE change PRICE varchar(27);
  1. 创建一个数据库,并在其中创建一个数据表,包含字段(id、姓名、性别、年龄、班级、入学日期、备注)。
create table student(
	id int,
	姓名 varchar(20),
	性别 varchar(2),
	年龄 int,
	班级 int,
	入学日期 date,
	备注 varchar(256)
);
  1. 以下哪些命令是DDL语句( A,B)
    A. CREATE DATABASE命令
    B. ALTER TABLE命令
    C. SELECT 命令
    D. INSERT命令

  2. 创建一个产品表,并插入如下数据
    在这里插入图片描述

create table 产品表(
	商品编码 varchar(20),
	商品名称 varchar(20),
	商品种类 varchar(20),
	销售单价 int,
	进货单价 int,
	登记日期 date
);
insert into 产品表 values
(0001,"T恤衫","衣服",1000,500,"2009-09-20"),
(0002,"打孔器","办公用品",500,320,"2009-09-11"),
(0003,"运动T恤","衣服",400,2800,null);

select * from 产品表;
  1. 以上面的 Product 表为基础,再创建另外一张包含利润列的新表ProductMargin (商品利润)。
    – 商品利润表
    创建ProductMargin表,并插入下图所示数据
    在这里插入图片描述
alter table `产品表` change 商品编码 product_id varchar(20);-- 修改字段名
alter table `产品表` change 商品名称 product_name varchar(20);
alter table `产品表` change 销售单价 sale_price int;
alter table `产品表` change 进货单价 purchase_price int;
alter table  `产品表` drop 登记日期;-- 删除不需要的字段
alter table `产品表` rename ProductMargin;-- 修改表名
  1. 对题目5中的 ProductMargin 表的数据进行如下更改。
    将运动 T 恤的销售单价从 4000 日元下调至 3000 日元。
update ProductMargin set sale_price = 3000 where product_name = "运动T恤";
  1. (1) 创建下图所示的表格,并完成后续操作在这里插入图片描述
create table t_department(
	did int(11) primary key,
	dname varchar(100),
	description varchar(200),
	manager_id int(11);
	
create table t_job(
	job_id int(11) primary key,
	job_name varchar(100),
	description varchar(200)
);

create table t_employee(
	eid int(11) primary key,
	ename varchar(100),
	gender char(1),
	card_id char(18) unique,
	tel char(11),
	job_id int(11),
	mid int(11),
	birthday date,
	hiredate date,
	address varchar(100),
	dept_id int(11),
constraint fk_emp_dept foreign key (dept_id) references t_department(did),
constraint fk_emp_job foreign key (job_id) references t_job(job_id)	
);

create table t_salary(
	eid int(11),
	basic_salary decimal(10,2),
	performance_salary decimal(10,2),
	commission_pct decimal(10,2),
	deduct_wages decimal(10,2),
constraint fk_sal_emp foreign key (eid) references t_employee(eid)
);

(2) 完成以下操作:
①在部门表(t_department)中添加两条数据:
‘研发部’,’技术支持’
‘咨询部’,’产品咨询服务’

insert into (did,d_name,description) values
(1,'研发部','技术支持'),
(2,'咨询部', '产品咨询服务');

②在岗位表(t_job)中添加四条数据:
1,’JavaSE 工程师’,’Java 开发’
2,’Web 工程师’,’Web 开发’
3,’JavaEE 框架工程师’,’框架开发’
4,’产品顾问’,’产品咨询

insert into t_job values
(1,'JavaSE 工程师','Java 开发'),
(2,'Web 工程师','Web 开发'),
(3,'JavaEE 框架工程师','框架开发'),
(4,'产品顾问','产品咨询');

③在员工表(t_employee)中添加六条数据:

insert into t_employee values
(1,'孙红雷','男',123456789012345678,12345678901,1,NULL,'1990-01-01','2015-01-01','东北',1),
(2,'张亮','男',123456789012345677,12345678902,2,NULL,'1990-01-02','2015-01-02','北京',1),
(3,'鹿晗','男',123456789012345676,12345678903,3,NULL,'1990-01-03','2015-01-03','北京',1),
(4,'邓超','男',123456789012345675,12345678904,2,NULL,'1990-01-04','2015-01-04','北京',1),
(5,'孙俪','女',123456789012345674,12345678905,3,NULL,'1990-01-05','2015-01-05','北京',1),
(6,'Angelababy','女',123456789012345673,12345678906,4,NULL,'1990-01-06','2015-01-06','香港',2);

④在薪资表(t_salary)中添加六条数据:

insert into t_salary values
(1,12000.00,6000.00
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值