Mysqlmysql数据库练习一从创建数据库表到对数据的增删改查

Posted a box of Sweets

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysqlmysql数据库练习一从创建数据库表到对数据的增删改查相关的知识,希望对你有一定的参考价值。

数据库练习一

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


 

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`)
);

 

 

员工绩效表 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`)
);

 

三、修改表

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;

操作完的表如下:

 


四、复制和删除表

1、将user表复制成user2表

create table user2 like user;

2、删除user2表

drop table user2;

 

四、课外知识补充-修改字符集

一、修改字符集

1、修改数据库字符集

alter database db_system charset utf8mb4;

2、修改表字符集

alter table user charset=utf8mb4;

3、修改表字符集和校验规则

alter table user charset=utf8mb4 collate=utf8mb4_general_ci;

4、修改表字段的字符集和校验规则

alter table user modify name varchar(50) character set utf8 collate utf8_general_ci;


DML语句

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

一、增

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','总经理')
;

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)

一、删

操作的两张表如下:

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

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

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

delete  from user where id=1;

二、改

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;

-- 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 ;


-- 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 ;

 

 

 

 

以上是关于Mysqlmysql数据库练习一从创建数据库表到对数据的增删改查的主要内容,如果未能解决你的问题,请参考以下文章

如何创建从 hive 表到关系数据库的数据管道

通过 SSIS 创建和复制访问表到 SQL? SQL 2008

MySQLMySQL知识总结

activiti 工作流 启动时如何取消自动建表到mysql数据库中

MySQLMySQL的索引

PowerDesigner 导出数据库表到word文档