【Mysql】卓越项目准备-mysql数据库练习一

数据库练习一

学习完mysql语句,从创建数据库表到对数据的增删改查


目录

数据库练习一

 

DDL语句

一、创建库

二、创建表

三、修改表

DML语句

一、增

一、删

二、改

四、查



DDL语句

一、创建库

1、创建一个名称为db_system的数据库

#创建数据库
create database db_system;

二、创建表

2、在该数据库下创建两张表,具体要求如下

员工表 user
 字段 类型 约束 备注
 id 整形 主键,自增长 id
 NAME 字符型 非空 姓名
 gender  字符 非空 性别
 birthday 日期型   生日
entry_date 日期型 非空 入职时间
 job  字符型 非空 职位
#创建user表
CREATE TABLE user  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `gender` varchar(2) NOT NULL,
  `birthday` datetime(6),
  `entry_date` datetime(6) NOT NULL,
  `job` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
);

 【Mysql】卓越项目准备-mysql数据库练习一_第1张图片

 

员工绩效表 salary

 字段 类型 约束 备注  id 整形 主键,自增长 id  userId 字符型 非空,外键,关联的是user表的id字段 用户id,  baseSalary  小数 非空 基本工资 month 整数 非空 月份  allowances  小数 非空,默认为0 补贴

#创建salary表
CREATE TABLE salary(
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `userId` int(0) NOT NULL,
  `baseSalary` decimal(10, 2) NOT NULL,
  `month` int(0) NOT NULL,
  `allowances` decimal(0, 0) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  CONSTRAINT `fk_user_id` FOREIGN KEY (`userId`) REFERENCES `db_system`.`user` (`id`)
);

【Mysql】卓越项目准备-mysql数据库练习一_第2张图片

 

三、修改表

1、在上面员工表的基本上增加一个image列,类型是blod。
2、修改job列,使其长度为60。
3、删除gender列。
4、表名salary改为usersalary。
5、修改表的字符集为utf8;
6、列名name修改为username



# 1、在上面员工表的基本上增加一个image列,类型是blod。
ALTER TABLE user add image blob(255);
# 2、修改job列,使其长度为60。
ALTER TABLE user modify job VARCHAR(60);
# 3、删除gender列。
ALTER TABLE user drop column gender;
# 5、修改表的字符集为utf8;
ALTER TABLE user convert to character set utf8;
# 6、列名name修改为username
ALTER TABLE user change name  username VARCHAR(50);
# 4、表名salary改为usersalary。
rename table salary to usersalary;

操作完的表如下:

【Mysql】卓越项目准备-mysql数据库练习一_第3张图片

 


四、复制和删除表

1、将user表复制成user2表

create table user2 like user;

2、删除user2表

drop table user2;


DML语句

下面的操作在表结构如下两个图来操作的:

【Mysql】卓越项目准备-mysql数据库练习一_第4张图片

【Mysql】卓越项目准备-mysql数据库练习一_第5张图片

【Mysql】卓越项目准备-mysql数据库练习一_第6张图片

一、增

1、在user增加几条5名员工数据数据,数据任意编写

# 在user增加几条5名员工数据数据,数据任意编写
insert into  user(username,birthday,entry_date,job)
values('张总1','1992-01-02','2021-05-17','总经理'),
('张总2','1992-01-02','2021-05-17','总经理'),
('张总3','1992-01-02','2021-05-17','总经理'),
('张总4','1992-01-02','2021-05-17','总经理'),
('张总5','1992-01-02','2021-05-17','总经理')
;

【Mysql】卓越项目准备-mysql数据库练习一_第7张图片

2、在usersalary表中,根据user表的人员信息,给他们插入相应的工资数据,数据不做要求

insert into  usersalary(userId,baseSalary,month,allowances)
values(1,2000,5,2500),
(2,2000,5,2500),
(3,2000,5,2500),
(4,2000,5,2500),
(5,2000,5,2500)

【Mysql】卓越项目准备-mysql数据库练习一_第8张图片

一、删

操作的两张表如下:

【Mysql】卓越项目准备-mysql数据库练习一_第9张图片

【Mysql】卓越项目准备-mysql数据库练习一_第10张图片

1、删除id是1的数据(注意有两个表相关联,所以要做考虑如何删除数据)

因为是有关联的表,所以第一种,如果主表删除数据,从表从表的数据关联的数据也相应的删除,那么可以设置删除为,如图所示:

【Mysql】卓越项目准备-mysql数据库练习一_第11张图片

接下俩就可以用sql语句删除数据了:

delete  from user where id=1;

【Mysql】卓越项目准备-mysql数据库练习一_第12张图片

二、改

1、将Id是2的数据的人员的职位改成“”“总经理”

2、将usersalary的表的所有员工的基本工资改成3000元;总经理的工资改成4000元

#1、将Id是2的数据的人员的职位改成“”“总经理”
update user set job='总经理' where id=2;

#2、将usersalary的表的所有员工的基本工资改成3000元;总经理的工资改成4000元
update usersalary set baseSalary=3000;

四、查


-- 1、查询id是3的员工信息
select * from user where id=3;

【Mysql】卓越项目准备-mysql数据库练习一_第13张图片

-- 2、使用模糊查询,查询员工姓名是三个字的员工信息
select * from user where username like '%___';

【Mysql】卓越项目准备-mysql数据库练习一_第14张图片
-- 
-- 3、连接查询,对两张表进行自然连接查询
select * from user NATURAL join usersalary;
--【Mysql】卓越项目准备-mysql数据库练习一_第15张图片
-- 4、查询user表按职位分组进行查询
select job from user group by job;

【Mysql】卓越项目准备-mysql数据库练习一_第16张图片

-- 5、统计各个员工的总工资(工资=基本工资+绩效工资)

select baseSalary+allowances from usersalary ;

【Mysql】卓越项目准备-mysql数据库练习一_第17张图片


-- 1、查询id是3的员工信息
select * from user where id=3;

-- 2、使用模糊查询,查询员工姓名是三个字的员工信息
select * from user where username like '%___';
-- 
-- 3、连接查询,对两张表进行自然连接查询
select * from user NATURAL join usersalary;
-- 
-- 4、查询user表按职位分组进行查询
select job from user group by job;

-- 5、统计各个员工的总工资(工资=基本工资+绩效工资)

select baseSalary+allowances from usersalary ;

 

 

 

 

你可能感兴趣的:(mysql数据库,mysql)