MySQL基础~总结一下几种常见的SQL语句(DDL、DML、DQL)

前言

数据库的整体架构是在DBMS上有很多的分库,每个库里又有很多表。
每个分库可以放一个系列的数据,比如库1放京东的数据,库2放淘宝的数据,每个库的表通过记录的形式一条一条的储存数据,比如库1的第一张表存放了京东的用户信息,第二张表存放了商品信息,第三张表存放了购买记录等等类似
在这里插入图片描述

DDL操作数据库

创建库

直接创建:
create database 数据库名称;

判断是否存在然后创建:
create database if not exists 数据库名称;

创建数据库并指定字符集(编码表)
create database 数据库名 character set 字符集;

查看库


查看所有的数据库
show databases;

查看某个数据库的定义信息
show create database 数据库名;

查看正在使用的数据库
select database();

删除库

直接删除
drop database 数据库名称;

使用/切换库

use 数据库名称;

修改数据库字符集格式(比如将UTF8MB4 改为 gbk)
alter database 数据库名称 default character set 字符集;

DDL操作表

数据库中的表(table)非常类似于excel中的表,在操作表的前提是我们已经使用了一个库,对于表的各种操作都是在这个库的基础上进行的。

常用的字段类型:
这几个常用类型足以应对很多的使用场景了

类型描述
INT整型
DOUBLE浮点型
CHAR字符型
VARCHAR字符串型
DATA日期类型:yyyy-MM-dd

创建表


创建一张普通表
create table 表名(字段1,字段类型1,字段2,字段类型2...);
如创建一张学生表,包含的信息有姓名、ID、年龄、生日、性别
create table student(id int,name varchar(10),age int,birthday date,sex char(1));


创建一张表,结构类似于另一张表
create table 新表名 like 旧表名

查看表


查看表结构
desc 表的名称;


查看建表语句
show create table student;

删除表


直接删除表
drop table 表名称;


判断表是否存在并删除
drop table if exists 表名称;

修改表


添加字段
alter table 表名称 add 字段 字段类型;


修改字段
alter table 表名称 modify 字段 字段类型;


修改字段名
alter table 表名 change 旧字段名称 新字段名称 字段类型;


删除字段
alter table student drop 字段名;


修改表的名称
rename table 表旧名称 to 表的新名称


修改表的字符集
alter table 表名称 character set 字符集;


DML语句操作表数据

向表中插入数据

方式一:
insert into 表名(字段1,字段2,字段3...)values(1,2,3...)
方式二:
insert into(1,2,3....)//这个值必须和表中字段一一对应

蠕虫复制

将某个表中的数据取出,并快速的添加到另一个表中。

复制全部数据:

insert into2 select*from1 //将表1的所有数据复制到表2中

复制部分数据:
将表1中的字段A,B数据复制到表2的字段1,和2中

insert into2(字段1,字段2..select 字段A,字段B..from1

没有复制的字段会显示为NULL,再次复制会重复添加,不会因为有了这个数据就不添加了,这就是蠕虫复制,可快速添加大量数据
在这里插入图片描述

更新表中的数据


不带条件的修改,将某个字段中所有的数据改为某个值
如将表1中的性别全部修改为女
update1 set sex='女';

带条件的修改,将某个字段中符合条件的数据改为某个值
如将表1中id=2的某某某的性别改为男
update1 set sex='男' where id=2;

带条件的修改,一次修改多个列
如将表1中id=3的记录中id改为5,性别改成男,地址改为北京市
update1 set id=5,sex='男',address='北京市' where id=2;

删除表记录/数据

DELETE FROM语句


不带条件的删除 相当于清空整张表,但是表还正在 
因为DQL语句的操作对象只是表数据 ,不是表本身
delete from1;

带条件的删除
如删除表1中id=1的记录
delete from1 where id=1;

TRUNCATE TABLE语句

不带条件的删除 
truncate table1;

TRUNCATEDELETE删除的区别:

  • DELETE是将表中的记录一条一条的清除,受影响的行数符合预期
  • TRUNCATE是直接将整张表摧毁,然后再建立一个新的表,新表结构和原来的表一模一样,受影响行数为0

DQL查询数据

简单查询


查询表中所有数据:
方法1.使用*表示所有列
select * from1;

方法2.列出所有列
select 字段1,字段2,字段3,..字段n from1;

查询指定列:
select 字段1,字段2.. from1;

别名查询
使用as关键字,可省略
select 字段1 as 别名 from1;


查询某一列并保证没有重复值:
从表1中开始查询,根据字段1和字段2来去除重复值。
select distinct 字段1,字段2.. from1;

查询结果参与运算
select 字段1+字段2 from1;
举例,从学生表中查询数学+英语成绩:
select math+english as 总成绩 from student;
//查询所有数据并添加总成绩一列
select *,math+english as总成绩 from student;
//查询所有人年龄+10岁后的结果
select name as 姓名,age+10 as 年龄 from student;

条件查询

条件查询时可以将条件进行组合,放在where后


普通查询:
对于字段值的筛选:
大于>
小于<
小于等于<=
大于等于>=
等于=
<>!=不等于
查询表1中字段1大于10的数据
select* from1 where 字段1>10;
查询游戏中评分少于12的英雄
select*from hero where max_score<12
等等类似的sql条件查询

逻辑运算查询
and 多个条件同时满足
or 多个条件其中一个满足
not 不满足
举例:
select *from1 where 字段1满足条件 and 字段2满足条件;
select*from1 字段1满足条件 or 字段2满足条件;
select*from1 字段1满足条件1 or 条件2 or 条件3...;

in关键字查询
select 字段 from 表名 where 字段 in (数据1,数据2,数据3..)

范围运算查询
between1 and2 表示从值1到值2范围,包括两个端点值。
如查询表1中id在36之间的记录:
select*from1 where id between 3 and 6;

模糊查询(likeselect *from1 where 字段 like '某条件%';

比如查询姓孙的人:
select*from1 where name like '孙%'; //%表示不知道几个占位符 可能查询出孙某,或者孙某某
select*from1 where name like '%孙%';//孙前可能有信息,孙后也有信息 可以查询出 公孙某某,或者孙某某某
select*from1 where name like '孙_';//-表示明确只有一个占位符 只能查询出 孙某 
select *from1 where name like ' 孙__'//可以查询出 孙某某  放在前面的使用方式也一样
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值