MySQl的基本操作

本文详细介绍了MySQL数据库的创建、查看、修改和删除操作,包括字符集和校对规则的设置。同时,讲解了表的创建、修改、删除以及数据的增删改查,涉及内连接、外连接和分组查询等多表操作。内容覆盖了数据库管理和SQL基础操作,是学习MySQL数据库操作的实用指南。
摘要由CSDN通过智能技术生成
前言

MySQL是一种关联数据库管理系统 由于其体积小、速度快的特点

数据库CURD

他和前面的oracel的使用方法差不多,这里就不过多叙述,大概记录一下

创建数据库

创建一个名称为mydb1的数据库。(默认为latin1)
create database mydb1;
创建一个使用utf-8字符集的mydb2数据库。
create database mydb2 character set utf8;
创建一个使用utf-8字符集,并带校对规则的mydb3数据库。会对存入的数据进行检查。
create database mydb3 character set utf8 collate utf8_general_ci;

查看数据库

显示所有数据库
show databases;
显示创建数据库的语句信息
show create database mydb2;
“ ` ”(ESC键 下面的按键),表示反引号,默认情况下,反引号括起来的字符串,区分大小写
show create database mydb1;

修改数据库

alter database mydb1 character set utf8;

删除数据库

删除数据库mydb3
drop database mydb3;

表的CURD

use mydb2
create table t1 (id int, name varchar(20))

查看当前使用的是哪个库:
status 或者 select database() from dual;

查看当前选择的数据库中的表:
show tables;
查看表结构:
desc tablename;

在这里插入图片描述

修改和删除表

更改表名: rename table employee to worker;
增加一个字段:alter table employee add column height double; (column关键字在Oracle中,添加则语法错误)
修改一个字段:alter table employee modify column height float;
删除一个字段:alter table employee drop column height;
修改表的字符集:alter table employee character set gbk;

删除表

删除employee表
drop table employee; (MySQL中不能使用purge,添加会出现语法错误)

表数据的CURD

表的创建和列的插入
create table employee(
id int,
name varchar(20),
sex int,
birthday date,
salary double,
entry_date date,
resume text
);
insert into employee values(1,'张三',1,'1983-04-27',15000,'2012-06-24','一个大牛');
insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(2,'李四',1,'1984-02-22',10000,'2012-07-24','一个中牛');
insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(3,'王五',0,'1985-08-28',7000,'2012-08-24','一个小虾');

update数据
将所有员工薪水都增加500元。
select id, name as "名字", salary "月薪", salary*12 年薪  from employee where id >=2;
update employee set salary=salary+500;
将王五的员工薪水修改为10000元,resume改为也是一个中牛
update employee set salary=10000, resume='也是一个中牛' where name='王五';

删除数据

删除表中姓名为王五的记录。
delete from employee where name='王五';		【注意from不能省略】
删除表中所有记录。
delete from employee; 
使用truncate删除表中记录。
truncate employee;--无条件 效率高
**注 但是truncate不能回滚,所以一般不使用
分组数据
为学生表,增加一个班级列,练习分组查询。		
alter table student add column class_id int;		
注意语法:Oracle中不能有“column”关键字,MySQL中有没有“column”都可以执行。
更新表:
update student set class_id=1 where id<=5;
update student set class_id=2 where id>5;
(update student set class_id=2 where id between 6 and 10;)
查出各个班的总分,最高分。
select class_id, sum(chinese+english+math) "总成绩", max(chinese+english+math) "最高分" from student group by class_id;
求各个班级 英语的平均分:
select classid, avg(english) from student group by class_id

**注:和oracel一样,分组数据后面要和前面一样,不然会出现错误
对于组函数的应用与Oracle类似,可以应用于Having中,但不能用于where子句中.

多表查询

交叉连接

叉积又称笛卡尔积,下面有笛卡尔积的介绍

select e.*,p.* from emp e cross join dept d; 

https://blog.csdn.net/dongdong7_77/article/details/110739478

满外连接

任意一边有值就会显示

select e.*, d.*from emp e full outer join dept d on e.deptno=d.deptno;
内连接

满足连接条件的数据(两边都有才显示)对应等值连接

select e.*, d.*from emp e  inner join dept d on e.deptno=d.deptno;
左外连接和右外连接
//对应语句的左右,左外就是显示左边表的全部,右边就是显示右边表的全部
select e.*, d.*from emp e  left  outer join dept d on e.deptno=d.deptno;
select e.*, d.*from emp e  right  outer join dept d on e.deptno=d.deptno;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值