SQL语句入门

举报
Python爱好者 发表于 2020/12/29 23:24:36 2020/12/29
2.5k+ 0 0
【摘要】 Hi,这次推文我们重点讲一下SQL,怎么会想起来讲SQL呢?那是因为小编最近目睹了太多的面试车祸现场,好多同学都因为SQL基础不好而被刷了,所以今天小编重点介绍一下SQL语句。 首先要知道SQL语句分为三种,DDL,DML和DCL 。下面我们先来看看这三个词的意思。 DDL is Data Definition Language statements. Some...

Hi,这次推文我们重点讲一下SQL,怎么会想起来讲SQL呢?那是因为小编最近目睹了太多的面试车祸现场2_05.png2_05.png2_05.png2_05.png,好多同学都因为SQL基础不好而被刷了,所以今天小编重点介绍一下SQL语句。

首先要知道SQL语句分为三种,DDL,DML和DCL 。下面我们先来看看这三个词的意思。

DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言。

包括创建修改和删除(create,alert,drop)。

DML is Data Manipulation Language statements. Some examples:数据操作语言,SQL中处理数据等操作统称为数据操纵语言。

包括查询,添加,更新删除等(select,insert,update,delete)。

DCL is Data Control Language statements. Some examples:数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

一般用的就是事务的回滚和提交(rollback,commit)。

今天我们主要只讲DDL和DML。

首先我们来讲,如何创建数据库:

create database  student(数据库名)

简单的一句话:create database 数据库名 即可!

与之相对应的删除数据库,只需把create改成drop即可

drop database student

接下来我们来创建一个表,我们SQL针对的对象是表,所以,现在我们就来创建一个表:

create table students(SID varchar(20),Sname varchar(20),Gender varchar(20),Tel varchar(255),PRIMARY KEY(SID))

创建一个students表,里面有SID,Sname,Gender,Tel元组,并且将SID设置为主键,在这里解释一下主键:大家可以认为主键是一个表的唯一标识,它对应的数据每个都是唯一的,不能重复的

利用可视化工具,查看刚刚创建表的结果:

640?wx_fmt=png

如果想删除此表:使用drop语句即可:

    drop table students

如果想为表添加一个新的列(column),可以使用alert语句:

Alter table students add column Address VARCHAR(255)

运行结果:

640?wx_fmt=png

添加了一个叫Address的列

Alert语句:

Alert table 表名 add column 你要加的列  列的数据类型

同样的,想为表添加主键,也可以用alert语句:

Alert table 表名 add primary key (主键名)

删除主键:

Alert table 表名 drop primary key (主键名)

下面,我们针对刚刚创建的students表写几句SQL语句

首先我们在增加一个列

Alter table students add column Age int

现在我们的表是空的,那我们现在向表里插入一些数据:

那就需要用到insert语句了:

INSERT INTO students VALUES('1102','John','male','15120001313','shanghai',22)

插入第一条信息:

640?wx_fmt=png

下面我们多插入一些信息:

insert语句还有一种写法,如下:

INSERT INTO students(SID,Sname,Gender,Age) VALUES('1201','Tony','male',23)

这样就是制定列去插入信息。

640?wx_fmt=png

,没有插入的信息就会显示空值。

那我们再来插入几条信息:

INSERT INTO students VALUES('1101','Dolphin','male','15120001222','shanghai',20)

INSERT INTO students VALUES('1122','Amy','female','15120035390','Sichuan',26)

INSERT INTO students VALUES('1142','Zark','male','','Beijing',20)

最后的表结果:

640?wx_fmt=png

现在我们了解了一个情况:Tony现在新办了个手机号,有号码了,所以我们要更新students表中的一条记录,采用update语句:

添加Tony的手机号码:

UPDATE students set Tel='15121003567' where Sname='Tony'

查看结果:

640?wx_fmt=png

说明更新成功了。

update语句基本模板:

update 表名 set 你想要改的记录 where 你改的前提条件

下面我们得知了一个消息,Zark这个人他不是学生,他是从隔壁公司偷偷混进我们学校的:所以我们要删除叫Zark这个人的记录,不能让他再来我们学校混了,此时我们就用到了delete语句:

DELETE FROM students WHERE Sname='Zark'

查看记录:

640?wx_fmt=png

Zark被删除了。 

现在我们看到了delete语句,我们来总结一下模板:

delete from 表名 where 你要删除的条件

有一天,有个老师来上课了,他想知道班里所有同学的信息怎么办?

此时我们可以采用最简单select语句,查询所有(*代表所有记录,通配符):

SELECT * FROM students

输出:

640?wx_fmt=png

很简单,Select * from 表名   这就是查询一个表的所有记录

现在老师毛病犯了,他想知道所有同学的平均年龄是多少,这可怎么办?

不必担心!SQL为我们准备了平均函数avg,我们只需用平均函数即可:

SELECT AVG(Age) AS averageAge FROM students

输出:

640?wx_fmt=png

这样就能查到平均年龄了,

与此相类似的还有求和函数sum(),最大函数max(),最小函数min()

只需要将你要求的列传入括号里就行了~

由于我们刚刚创建的表学号并没有按照从大到小 按顺序排列,所以老师很生气,感觉看着很不舒服,他想让学号按照顺序排列:

所以我们只需要采用order by排序函数即可:

select * from students order by SID desc

输出:

640?wx_fmt=png

现在这个老师毛病又犯了,他想看着学号从小到大升序排列,这怎么办呢?

很简单,我们只需要将 desc去掉即可!!! 

因为order by默认就是升序的

好了,老师现在又发话了,他说想知道班里名字带有y的学生,想要看他们的家住哪里。这下怎么办呢?

(小编发现这个老师是个智障)

此时我们不在用“=”做匹配了,而是用like进行匹配:

SELECT Sname,Address FROM students WHERE Sname LIKE "%a%"

输出:

640?wx_fmt=png

关于简单的单表SQL就给大家讲到这里了,还有一些其他的多表查询,涉及到左右连接的小编下次给大家慢慢讲!这期就到这里吧~

大家晚安~

听说有气质的人都会扫这个二维码!

                               640?wx_fmt=png

文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/tongtongjing1765/article/details/100581660

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。