Mysqlmysql数据库练习一从创建数据库表到对数据的增删改查
Posted a box of Sweets
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysqlmysql数据库练习一从创建数据库表到对数据的增删改查相关的知识,希望对你有一定的参考价值。
数据库练习一
学习完mysql语句,从创建数据库表到对数据的增删改查
DDL语句
一、创建库
1、创建一个名称为db_system的数据库
#创建数据库
create database db_system;
二、创建表
2、在该数据库下创建两张表,具体要求如下
字段 | 类型 | 约束 | 备注 |
---|---|---|---|
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数据库练习一从创建数据库表到对数据的增删改查的主要内容,如果未能解决你的问题,请参考以下文章
通过 SSIS 创建和复制访问表到 SQL? SQL 2008