MySQL超级详细的基础语法(一)


感谢各位大佬,耽误各位大佬时间点开此文章,既然进来了,那就看看吧。话不多说,开整!!!
MySQL是作为一名程序员,所必备的技能。在工作中无处不在,但是万变不离其宗,主要是还从增、删、改、查这四大部分进行开展。
我们在创建数据时候,需要基于一张表,但是表又要基于一个库的管理,一个库中可以管理许多的表。所以 建表之前需要建库

一、数据库

1.1 创建数据库

//基本语法
creat database[if not exists] [表名];
示例:
creat database school
creat database if not exists school

大家可以看到我写了两种方法,这两种都是创建一个库,第二条中我加了if not exists 这句语法,他表示的意思就是,如果本地中没有school这个库时候,就创建,如果有了就不创建。school为该库的名称,这样一来,我们就创建了这个库。
这是由有些同学提出了疑问,库建成了,我应该怎么去查看我的数据库呢,不急这就来!

1.2 查看数据库

show databases;

上述代码中,大家可得看清楚哦,databases,它是加s的,这样我们就可以把本地的数据库都查到。这时候有同学就说这下就快来建表吧!No No No,现在还不可以,我们在建表时候需要先去选中我们在哪个库下去建表。

1.3 使用数据库

use school

那么有同学就问了,如果我不想用这个库了,怎么删除呢,其实删除这个东东是很危险的,但是既然大家有需求,那就说一下,但是慎重使用!

1.4 删除数据库

drop database [if exists] school 

数据库删除后,数据库的表和内容都会不见,所以删库操作很危险的,尽量不使用!!!

二、表

数据的增、删、改、查就是基于表去完成的,表中有大学问!但是在建表之前我们需要陈述一下,建表时候的常用的数据类型都有哪些!

 int 型(整型)
 decimal(M/D)  (浮点型) M表示长度  D表示精度
 varchar(size)  (类似于String )
 text  (长文本,类似于String)
 timestamp (日期类型)(可以打印时分秒)

以上为常用的数据类型,其余的可以格局自己需求选择!

2.1 创建表

create table student(
	id int primary Key auto_increment,
	name varchar(20) comment '姓名',
	context text,
	amout decimal(10,3),
	pasttime timestamp
);

上述代码就是建表的方式,其中需要注意的有以下几点:

  1. primary Key auto_increment,字段为其添加主键,在以后代码编写中,他就可以自动增加
  2. comment值得是注解,可以不用写
  3. 每段个数据结构后都是 , 号隔开
  4. 最后一条数据后,不加任何符号
  5. 数据是写在()里边的,括号外头的 ; 表结尾

表建立之后,我们如果想要查看表的结构,或着在以后数据编辑时,忘记了当时表中的数据结构,可以使用下边指令查看表的结构!

2.2 查看表结构

//desc [表名]
desc student  

同样删除表和删除库的结构一直,但是不推荐!

2.3 删除表

drop table student

上述简单操作说完,接下来就是最难的部分了,表的增、删、改、查

三、增删改查操作篇

前半阶段,表的基本创建已经完成,没什么难度,接下来就是增删改查 ,首先我们先从增加开始

3.1 增加数据

首先我们重新建一张表

create table student(
	id int primary Key auto_increment,
	name varchar(10),
	age int,
	email varchar(20) 
);

在这里插入图片描述

3.1.1 单行增加+全列插入
insert into student values(1,'test1',11,'123@');
insert into student values(2,'test2',22,'567@');

在这里插入图片描述
这里我们需要注意,选对表名,并且values中的数据类型和数量,必须和表结构中的类型一致

3.1.2 多行增加+全列插入
insert into student (id , name ,age) values
 (3,'test3',33),
 (4,'test4',44);

这里我们同样也需要注意,当我们规定了给那些属性添加值,那么values中,是对应约束的值,没有约束的varchar() 默认为null ,数据默认为0
出现bug图片上传不上去了!!!

下面就是最难最难最难的部分了

3.2 查询数据

3.2.1全列查询
select * from [表名]

这样查询出现时表的全部属性,意味着数据量比较大,但是会影响到索引

3.2.2 指定列查询
select[变量,变量] from [表名]
select id , name ,age from student

指定列查找是指按照指定的变量来查询,不按照全表去查询

3.2.3 起别名

起别名查询,用于表示需要将返回结果集中显示,但是该结果,再次调用就会消失,只限当前就结果集,查看。为了让大家充分理解,这里使用另一个例子

select id ,name ,chinese+math+english score from student

上述代码中,使用了字段为表达式查询

3.2.4 去重(distinct)

去重,顾名思义就是,去掉重复的数据只保留一个

select englis distinct from student
3.2.4 排序

排序中使用到的关键字时order by
升序为asc
降序为desc

select * from student order by id;
select * from student order by id desc;

上述代码表达,查询全列根据表中的id进行排序,默认为升序

select name , chinese+math+english score from order by score;

上述代码表述,根据别名进行升序查找
注:null数据排序,视为比任何值都小

3.2.5 条件查询

条件查询涉及到很多的运算符这里我们列举出常见的运算符

  1. between…and 表示范围
  2. in
  3. is null 是空
  4. like 模糊匹配
  5. and 多个条件都必须满足
  6. or 任意一个条件满足
  7. not 条件为true 结果为false

基本查询:
查询英语成绩小于60分的

select name , english from sutdent where english < 60;

And 和 Or
查询语文成绩大于80分,且英语成绩大于80分的同学
查询语文成绩大于80分,或英语成绩大于80分的同学

select * from student where chinese > 80 and english > 80;
select * from student where chinese > 80 or english > 80;

范围查询和and查询基本类似! 这里就不演示了!
in
查询数学成绩时50 或 59 或 90 的同学数学成绩

select name ,math from student where math in(50,58,90);

like

select * from student where name like '孙%';
select * from student where name like '孙_';

这里要多说两句了,% 代表的是占位符,但是他能匹配多个。例如:孙小小、孙孙孙孙、孙权等都可以匹配到。然而 _ 只能匹配到一个字符的结果为孙权。
is null
查询数学成绩为空的学生成绩

select name,math from student where math is null;

3.3 修改

修改数据使用到的关键字为update。

update [表名] set [变量名]= [] [where] [order by] [limit] ... 

例如修改孙权同学的数学成绩为100

update student set math= 100 where name = '孙权';

上述条件可以根据题目的实际要求设置。

3.4 删除数据

delete from [表名] [where][order by][limit].....

例如:删除孙权同学的考试成绩

delete from student where name='孙权';

总结

综合上述,我们已经将基本的SQL用法加以解释说明,但是查询语句中的细节知识,以及更多的查询知识,我们将在下一篇再次进行拓展说明。虽然各类语法较多,但是语句万变不离其宗,主要就是改变查询条件。加以练习,就好啦!!!
欢迎各位大佬,指正批评!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值