当前位置:   article > 正文

【Mysql 基础练习】一套式的mysql数据库练习———从创建数据库表到对数据的增删改查_常见mysql创建表练习

常见mysql创建表练习

学习完mysql语句,可以做一下综合练习巩固一下

这个练习主要练习点从创建数据库表到对数据的增删改查

目录

学习完mysql语句,可以做一下综合练习巩固一下

这个练习主要练习点从创建数据库表到对数据的增删改查

----【DDL语句】-----------------------------------------------------------------------------

一、创建库

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

二、创建表

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

三、修改表

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

四、复制和删除表

1、将user表复制成user2表

2、删除user2表

五、课外知识补充-修改字符集(数据库5.6版本下测试有效,其他版本自行测试)

【DML语句】

背景说明:下面的操作在表结构如下两个图来操作的:

一、增

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

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

​编辑

二、删

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

三、改

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

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

四、查

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

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

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

-- 6、查询员工的姓名和每个员工的工资,并按工资降序排序。

-- 7、查询工资在5000以上的员工相关信息

五、系统函数:



----【DDL语句】-----------------------------------------------------------------------------

一、创建库

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

  1. #创建数据库
  2. create database db_system;

二、创建表

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

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

 

员工绩效表 salary

员工绩效表 salary
字段类型约束备注
id整形主键,自增长id
 userId字符型非空外键,关联的是user表的id字段 用户id
baseSalary小数非空基本工资
month整数非空月份
 allowances小数非空,默认为0补贴
  1. #创建salary表
  2. CREATE TABLE salary(
  3. `id` int(0) NOT NULL AUTO_INCREMENT, -- 非空自增约束
  4. `userId` int(0) NOT NULL,
  5. `baseSalary` decimal(10, 2) NOT NULL,
  6. `month` int(0) NOT NULL,
  7. `allowances` decimal(0, 0) NOT NULL DEFAULT 0,
  8. PRIMARY KEY (`id`), -- 添加主键
  9. CONSTRAINT `fk_user_id` FOREIGN KEY (`userId`) REFERENCES `db_system`.`user` (`id`) -- 添加外键
  10. );

三、修改表

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

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

操作完的表如下:


四、复制和删除表

1、将user表复制成user2表

写法一:分两个步骤)

create table user2 like user;

insert into user2 select * from user;

写法2:合成一个步骤

create table user2  select * from user;

2、删除user2表

drop table user2;

五、课外知识补充-修改字符集(数据库5.6版本下测试有效,其他版本自行测试)

  1. use db_system; -- 切换数据库
  2. select VERSION(); -- 查看数据库版本
  3. ----------------查看字符集-------------------------
  4. --------库 》 表 》列-----------------
  5. 1.查看MYSQL数据库服务器和数据库字符集
  6. show variables like '%character%';
  7. 2.查看表中所有列的字符集
  8. 语法:show full columns from 表名;
  9. 例:查看db_system 中的 user的所有字段字符集
  10. show full columns from `user`;
  11. ---------------设置字符集--------------------
  12. 设置字符集(大致分成三种方式):
  13. 一是在创建表的时候设置字符集,
  14. 二是表建成之后修改字符集
  15. 三是在在mysql安装目录下找到my.ini文件下添加默认字符集(这个方法不在这里介绍,感兴趣的同学去百度一下)
  16. 1.创建时指定字符集
  17. 创建库的时候指定字符集:
  18. 语法:create database 库名 default character set=字符集;
  19. 例:create database 库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
  20. 创建表的时候指定字符集:
  21. 语法:create table 表名(属性)default character set = 字符集;
  22. 例:CREATE TABLE mytable(
  23. id varchar(40) NOT NULL default '',
  24. userId varchar(40) NOT NULL default ''
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  26. 2.修改字符集
  27. 修改库的字符集
  28. --------库 》 表 》列-----------------
  29. 语法:alter database 库名 default character set 字符集;
  30. 例:修改 db_system 中的默认字符集
  31. alter database db_system default character set utf8;
  32. 修改表的字符集
  33. 语法:alter table 表名 convert to character set 字符集;
  34. 例:修改 db_system 中的 user 表的 字符集
  35. alter table `user` convert to character set latin1;
  36. 修改字段的字符集
  37. 语法:alter table 表名 modify 字段名 字段属性 character set 字符集;
  38. 例:修改 db_system 中的 user 表的 name这个字符段的 字符集
  39. alter table `user` modify `name` varchar(50) character set utf8;


-----【DML语句】--------------------------------------------------------------

背景说明:下面的操作在表结构如下两个图来操作的:

一、增

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

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

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

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

二、删

操作的两张表如下:

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

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

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

delete  from user where id=1;

三、改

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

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

  1. #1、将Id是2的数据的人员的职位改成“”“总经理”
  2. update user set job='总经理' where id=2;
  3. #2、将usersalary的表的所有员工的基本工资改成3000元;总经理的工资改成4000
  4. 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. -- 1、查询id是3的员工信息
  2. select * from user where id=3;
  3. -- 2、使用模糊查询,查询员工姓名是三个字的员工信息
  4. select * from user where username like '___';
  5. --
  6. -- 3、连接查询,对两张表进行自然连接查询
  7. select * from user NATURAL join usersalary;
  8. --
  9. -- 4、查询user表按职位分组进行查询
  10. select job from user group by job;
  11. -- 5、统计各个员工的总工资(工资=基本工资+绩效工资)
  12. select baseSalary+allowances from usersalary ;

-- 6、查询员工的姓名和每个员工的工资,并按工资降序排序。

  1. select username,baseSalary+allowances
  2. from usersalary,user
  3. where usersalary.userId=user.id;

-- 7、查询工资在5000以上的员工相关信息

  1. select username,baseSalary+allowances salary
  2. from usersalary,user
  3. where usersalary.userId=user.id and salary>5000;

五、系统函数:

1、查询系统版本:select @@version;

六、MYSQL的一些注意事项

注意1:left join 语句中,左表的过滤要用给where,right join 中右表的过滤用on 才是精确的

注意2:全连接( Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现)

结束!感谢大家的阅读,大家有好的题目或者建议也可以在评论区留言

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/554553
推荐阅读
相关标签
  

闽ICP备14008679号