一、简介

1、什么数据库

        数据仓库用来存储数据访问必须用SQL语句访问

2、数据库类型

        1、关系数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等 可以用SQL语句方便的在一个表以及多个之间做非常复杂数据查询事务支持良好,使得对于安全性能很高的数据访问要求得以实现

        2、非关系数据库redis,MongoDb性能高,不需要经过SQL层的解析

3、常见数据库类型

        Oracle 大型数据库收费

        Mysql 小型数据库开源

        SQL Server 微软数据库

        DB2 IBM公司产品,大型数据库收费

二、数据库增删改查操作

        前置:安装mysql教程点击此处

1、增

语法

含义

模板

CREATE DATABASE

创建数据库

CREATE DATABASE dbname;

CREATE TABLE

创建新表

CREATE TABLE table_name

(

column_name1 data_type(size),

column_name2 data_type(size),

column_name3 data_type(size),

….

);

INSERT INTO

向数据库中插入新数据

两种编写形式

1、第一种形式无需指定插入数据的列名,只需提供被插入的值即可

INSERT INTO table_name VALUES (value1,value2,value3,…

2、第二种形式需要指定列名及被插入的值

INSERT INTO table_name (column1,column2,column3,…) VALUES (value1,value2,value3,…);

2、删

语法

含义

模板

实例

备注

DELETE

从数据库中删除数据

DELETE FROM table_name

WHERE some_column=some_value;

DELETE FROM Websites

WHERE name=’Facebook‘ AND country=’USA’;

WHERE 子句规定哪条记录或者哪些记录需要删除。如果省略了 WHERE 子句,所有的记录都将被删除

drop

从数据库中删除数据

drop table 表名;

把表和表中数据直接删除

truncate

从数据库中删除数据

truncate table 表名;

truncate 直接把表删除 会按照之前的表在创建一个新的

        删除速度 drop>truncate>delete

3、改

语法

含义

模板

备注

UPDATE

更新数据库中的数据

UPDATE table_name

SET column1=value1,column2=value2,…

WHERE some_column=some_value;

执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。

在 MySQL 中可以通过设置 sql_safe_updates 这个自带参数解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错

set sql_safe_updates=1; 表示开启参数

4、查

1、select语句

语法

含义

模板

备注

DISTINCT

用于返回唯一不同的值

SELECT DISTINCT column_name,column_name

FROM table_name;

WHERE

(②、③)

用于提取那些满足指定条件记录

SELECT column_name,column_name

FROM table_name

WHERE column_name operator value;

1、文字单引号数字不用引号

2、后面不能跟聚合函数

AND & OR

如果第一个条件第二个条件都成立,则 AND 运算符显示一条记录

如果第一个条件第二个条件中只要有一个成立,则 OR 运算符显示一条记录

1、SELECT * FROM Websites

WHERE country=’CN’

AND alexa > 50;

2、SELECT * FROM Websites

WHERE country=’USA’

OR country=’CN’;

ORDER BY

(④、⑤)

关键字用于结果集按照一个列或者多个列进行排序

SELECT column_name,column_name

FROM table_name

ORDER BY column_name,column_name ASC|DESC;

关键字默认按照升序记录进行排序。如果需要按照降序对记录进行排序,可以使用 DESC 关键字

like&not like

(⑥)

用于在 WHERE 子句中搜索列中指定模式

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern;

in

在 WHERE 子句中规定多个

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,…);

转换

1、select * from Websites where name in (‘Google’,’菜鸟教程‘);

2、select * from Websites where name=’Google’ or name=’菜鸟教程‘;

between&

not between

选取介于两个之间的数据范围内的值

SELECT column_name(s)

FROM table_name

WHERE column_name BETWEEN value1 AND value2;

带有 IN 的 BETWEEN 操作符实例

SELECT * FROM Websites

WHERE (alexa BETWEEN 1 AND 20)

AND country NOT IN (‘USA’, ‘IND’);

5、多表连接

语法

含义

模板

备注

INNER JOIN&JOIN

关键字表中存在至少一个匹配返回

1、SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name=table2.column_name;

2、SELECT column_name(s)

FROM table1

JOIN table2

ON table1.column_name=table2.column_name;

LEFT JOIN

关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL

左为主 把左边的表中的不符合规则的数据显示出来

SELECT column_name(s)

FROM table1

LEFT JOIN table2

ON table1.column_name=table2.column_name;

RIGHT JOIN

关键从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL

连接 右为主 把右边的表中的不符合规则的数据显示出来

SELECT column_name(s)

FROM table1

RIGHT JOIN table2

ON table1.column_name=table2.column_name;

6、函数

语法

含义

模板

备注

AVG()

返回平均值

SELECT AVG(column_name) FROM table_name

聚合函数

COUNT()

COUNT(column_name)

函数返回指定列的值的数目(NULL 不计入)

COUNT(*)

返回表中的记录数

COUNT(DISTINCT column_name)

返回指定列的不同值的数目

同左

聚合函数

MAX()

返回最大值

SELECT MAX(column_name) FROM table_name;

聚合函数

MIN()

返回最小值

SELECT MIN(column_name) FROM table_name;

聚合函数

SUM()

返回总和

SELECT SUM(column_name) FROM table_name;

聚合函数

GROUP BY

用于结合聚合函数,根据一个或多个列对结果集进行分组

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

HAVING

(⑦)

筛选分组后的各组数据,解决WHERE 关键字无法与聚合函数一起使用

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value;

②、WHERE 子句中的运算符

运算符

描述

示例

=

等于

<&gt;

等于注释在 SQL 的一些版本中,该操作符可被写成 !=

&gt;

大于

<

小于

&gt;=

大于等于

<=

小于等于

③、WHERE 子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当 0 时转化为 false,1 转化为 true

        例如

                SELECT studentNO FROM student WHERE 0

        则会返回一个空集,因为每一行记录 WHERE 都返回 false

                SELECT studentNO FROM student WHERE 1

        返回 student 表所有行中 studentNO 列的值。因为每一行记录 WHERE 都返回 true

④、ORDER BY 多列顺序

        先按照第一个column name排序,在按照第二个column name排序

        1)、先将country值这一列排序,同为CN的排前面,同属USA的排后面;

        2)、然后在同属CN的这些多行数据中,再根据alexa值的大小排列

        3)、ORDER BY 排列时,不写明ASC DESC的时候默认是ASC。

⑤、ORDER BY 多列的升降序

        order by A,B 这个时候都是默认升序排列

        order by A desc,B 这个时候 A 降序,B 升序排列

        order by A ,B desc 这个时候 A 升序,B 降序排列

        即 desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

⑥、

%a

以a结尾的数据

a%

以a开头的数据

%a%

含有a的数据

_a_

三位且中间字母是a的

_a

两位且结尾字母是a的

a_

两位且开头字母是a的

⑦、分组查询筛选条件

数据源

位置

关键

分组筛选

原始表

group by子句的前面

where

分组筛选

分组后的结果集

group by子句的后面

having

原文地址:https://blog.csdn.net/qq_53631388/article/details/134743178

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44394.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注