数据库的常用sql操作

更新日期: 2019-03-13阅读: 1.9k标签: 数据库

一、技术起源

数据操作,不管是服务端前端移动端,都或多或少的会涉及到数据的存储、查询、修改。所以作为一名开发者,数据库操作也是开发必备的一项技能。

SQL全称是Structured Query Language,翻译后就是结构化查询语言,是一种数据库查询和设计语言,用于存取数据与及查询、更新和管理关系数据库系统

常见的数据库有MySQLSQLServerORACLEDB2等等。


二、数据库基础

数据库操作概览图:


数据库的基本操作步骤:

  • 1、创建数据库
  • 2、连接(打开)数据库
  • 3、创建表
  • 4、往表中加入数据
  • 5、更新数据、查询数据、删除数据
  • 6、断开(关闭)数据库

1、建表(CREATE TABLE)

CREATE TABLE emp 
( id int NOT NULL PRIMARY KEY, //添加主键
  name varchar(20),
  gender varchar(2),
  performance int,
  salary double
)

如果创建表后,忘记添加主键或者外键,可以使用ALERT添加。

ALERT TABLE emp ADD PRIMARY KEY(id); //添加主键
ALERT TABLE orders ADD FOREIGN KEY (e_id) REFERENCE emp(id); //添加外键

2、INSERT(插入)

向表中加入数据。

//向emp 表中插入一条数据,插入字符串时使用''
INSERT INTO emp VALUES(1, 'yijie', 'male', 85, 18000.0);

向表中插入数据的标准格式是:

insert into tableName(column1, column2...) values('value1', 'value2'...)

3、UPDATE(更新)

更新表中的数据。

update emp set salary=20000 where name='yijie';

4、DELETE (删除)

delete from emp where id=8;//删除表中的某条数据,where后面的为条件
delete * from emp;//删除表中的所有数据,清空表
drop table 表名称; //删除某张表

注意:在使用delete删除表中数据时,如果该表与其他表有关联关系,如:外键,得先删除关联表中的外键。

5、DISTINCT(去重)

一张表经过一段时间的操作,避免不了会出现数据重复的情况。重复的数据不仅没有意义,而且占用存储空间。这个时候distinct就悄然登场了。distinct用于根据条件去除表中的重复内容。

//查询emp中的name,返回唯一的名字
select distinct name from emp;

6、Select (查询)

查询是数据库操作中最常用的操作,也是最难的。select语句用于从表中查询数据,结果被存储在一个结果表中(称为结果集)。

SELECT 语法
SELECT 列名称 FROM 表名称; //查询表中的某列数据
SELECT * FROM 表名称; //查询整张表
还有更为复杂的条件查询。


三、基础函数

数据库还为我们提供了一些函数,方便我们进行数据库操作。这些基础函数基本都是列名为函数参数,返回某一列的计算结果。

1.AVG()平均值

avg()用于返回某列的平均值,NULL不包含在计算中。

select AVG(salary) as avg_salary form emp; //查询员工的平均薪水

2.COUNT()

COUNT函数用于返回匹配指定条件的行数。

select COUNT(*) from emp; //返回表的记录数

3.MAX()

MAX函数返回指定列的最大值,NULL字不包括在计算中。

4.MIN()

MIN函数返回指定列的最小值,NULL字不包括在计算中。

5.SUM()

SUM函数返回指定列的总数。

6.ROUND()

ROUND函数用于把数值字段舍入为指定的小数位数。

select ROUND(salary,1) as n_salary from emp; //将salary保留一位小数

select ROUND(column_name,decimals) from table_name;

参数描述
column_name要舍入的字段
decimals规定要返回的小数位数

7.FORMAT()

FORMAT用于对指定字段的显示进行格式化
SELECT FROMAT(column_name,format) FROM table_name;

参数描述
column_name要格式化的字段
format指定的格式

四、高级用法

还有一些SQL的高级用法,分页模糊匹配排序等等。

1.分页(LIMIT)

分页查询就是返回返回当前页码对应的页面的数据。
分页查询的基本公式:(page - 1) * pageSize + 当前页要显示的数据条数

select * from emp limit 4; //返回前4条数据

2.模糊匹配(LIKE)

模糊匹配是配合where条件使用的。

//%可以理解为定义通配符
select * from emp where name like 'a%';  //返回以a开头的所有姓名

3.IN

返回特定列在某个集合中的所有数据。

select * from emp where name in ('AA', 'BB'); //返回name为AA、BB的所有数据。

4.JOIN

联表运算符JOIN,用于将两个或者两个以上的表进行关联,并从这些表中查询数据。
常用的几种连接方式:

  • INNER JOIN: 内连接。
  • LETF JOIN:就算右表中没有匹配,也从左表中返回所有的行。
  • RIGHT JOIN:就算左表中没有匹配,也从右表中返回所有的行。
  • FULL JOIN:只要有一个表存在就返回。

5.UNION

UNION运算符用于合并两个或多个SELECT语句的结果集。

UNION内部的SELECT语句必须具有相同数量的列,列也必须具有相似的数据类型。同时,每条SELECT语句中列的顺序必须相同。

6.AUTO_INCREMENT(自增)

一般用于修饰主键,使其保持自增。

7.ORDER BY (排序)

使用order by对查询结果进行排序,默认是升序

  • ASC:升序(从小到大)
  • DESC:降序(从大到小)
select * from emp order by name;

8.GROUP BY

通常匹配合计函数使用,根据一个或者多个列队结果集进行分组。

9.HAVING

用于给分组设置条件。

10.DEFAULT

default约束用于向列中插入默认值。


写在最后

本文是对数据库中经常用到的一些写法与及函数的归纳总结,方便以后用到的时候能够快速查询到


链接: https://www.fly63.com/article/detial/2345

数据库的选择:数据库种类那么多,该如何选择?

技术真的是日新月异,Web 网站已经脱离之前的静态网站的体系,转而使用动态语言搭建的动态网站。这也衍生出一个问题:该如何存储数据了?数据库就应运而生,它的作用是提供存储数据的容器。方便 web 网站进行存储、查询、更新等。

B树和哈希索引的比较

了解B树和哈希数据结构有助于预测查询在这些使用不同索引数据结构的存储引擎上的执行情况,特别是对于MEMORY存储引擎,它是允许您选择B树或哈希作为索引的存储引擎。

使用 TypeScript 访问 MySQL 数据库

TypeScript 已经成为一个强大的 Web 应用程序开发环境,在与标准 JavaScript 保持一致的同时,提供了显著的改进。在本文中,我们将深入探讨使用 TypeScript 相关的细节

MyISAM和InnoDB的比较

MyISAM:不支持事务,而且也不支持外键,但是每次查询都是原子的,支持表级锁,即每次操作是对整个表加锁;InnoDb:支持ACID的事务,支持事务的四种隔离级别;

MongoDB的特性、使用原理

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 具有高性能、易部署、易使用,存储数据非常方便等特点

传统数据库不适合现代企业架构了?

它还是我们如今看到的更广泛的技术趋势背后的统一思想,这些技术包括机器学习、物联网、无处不在的 SaaS 以及云计算。这些趋势都在用不同的方法使软件变得更丰富和功能强大,并在企业间扩大其影响范围

IndexedDB:浏览器里的本地数据库

在现代浏览器的本地存储方案中,indexedDB 是一项重要的能力组成, 它是可以在浏览器端使用的本地数据库,可以存储大量数据,提供接口来查询,还可以建立索引,这些都是其他存储方案 Cookie 或者 LocalStorage 无法提供的能力

数据库自增ID用完了会怎样?

对DBA来说这应该是送分题吧。而我是突如其来的想法想测试下的。正常来说程序员是不会关心自增ID用完的情况的。以 Mysql 为例,它支持的最大的整型是unsigned bigint

浏览器数据库 indexedDB

indexedDB用于在浏览器端存储大量的结构化数据。对比于其他的浏览器存储技术(cookie,localStorage),indexedDB具有以下优点:另外,indexedDB还具备以下特点:

node如何连接数据库?

node连接数据库的方法:使用命令npm install mysql --save安装mysql的软件包,在项目文档中使用client.connect()即可连接数据库。下载MySQL :MySQL Downloads,并进行安装。安装完,会引导你对数据库进行配置,设置root密码以及创建普通用户以及密码

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!