SQL学习重点概述

SQL总结

 

第一章:数据库Database

 

到目前为止,主要学习的数据库是MySQL 的简单SQL操作,同时是时间库中的关系型数据库(RDBMS

 

数据库的优点是:减少数据的冗余

                                     保证数据的有效性

                                     数据的一致性

                                     数据的共享

                                     维护的完整性

                                     数据的安全性

 

主要的数据模型有:层状模型

                                       网状模型

                                       关系型模型

                                       对象模型

 

现在广泛运用的是关系型数据库,它已经能解决我们的大多数的问题,往后发展会越来越多的运用对象模型。

 

SQL的语句有:

                            DDL 数据定义语言        创建定义,删除定义等

                            DML 数据操作语言       增、删、改

                            DQL 数据查询语言

                            DCL 数据控制语言         grantrevak

 

DDL—数据定义语句

 

Create 创建   database 数据库

Create database 名字;  ————创建数据库

 

Table

Create table 名字;       ————创建表

 

Drop 删除

Create table/database 表名/数据库;         ————删除表/数据库

 

一般定义表用 t_xxx   一般定义主键用 pk_xxx    一般定义列用 f_xxxc_xxx

一般外键用 fk_xxx

 

注意:数据库中只有字符串,SQL可以使用引擎,innodb只有这个引擎才支持外键。

Frm数据包文件。

 

 

第二章:数据库数据类型

 

整数型

TINYINT   1字节      短小整数型

SMALLINT  2字节  小整数值

MEDIUMINT  3字节  小整数型

INT  4字节  整数值

BIGINT  8字节  大整数值

 

浮点型

FLOAT  4字节  单精度

DOUBLE  8字节  双精度

DECIMAL(M.D)  17字节  大浮点数

NUMERIC  --同上(DECIMAL

 

字符串型

CHARN    N   0-255     字符型    定长

VARCHAR(N)    N   0-65535   字符型    变长

变长节约磁盘空间,查询时定长给好。

 

日期

YEAR   1字节   YYYY                       1901-2155

DATE   3字节   YYYY-MM-DD          1000-01-01 9999-12-31

TIMESAMP  4字节   YYYY-MM-DD

                                               HH:MM:SS                 1970-01-01 00:00:01-2038

DATETIME   8字节   YYYY-MM-DD                    1000-01-01 9999-12-31

                                               HH:MM:SS                 00:00:00-23:59:59

 

以上为常用数据类型,除了以上的数据类型以外还有二进制型、逻辑性。

 

 

简单的数据定义操作:

Create 创建   database 数据库

Create database 名字;  ————创建数据库

 

Table

Create table 名字;       ————创建表

 

Drop 删除

Create table/database 表名/数据库;         ————删除表/数据库

 

增加列                                                                              修改列

Alter table 表名                                                              alter table 表名

Add 列名类型;                                                          change 原列名现列名类型;

 

删除列

Alter table 表名

         Drop column 原名;

 

索引

创建 Create index 索引名 on 表名(列一,列二,);

删除 alter table 表名 drop index 索引名;

 

约束

Primary key 主键(一张表中有且只有一个隐含非空,隐含一个主键索引)

Unique 唯一(一张表中有多个,但是包含一个空)

Default 默认

No null 非空

Foreign key 外键

Auto_increment 自动增长

 

外键

普通列→外键列

Alter table 当前表名

         Add constraint 新外键名 foreign key 当前指向列 references 指向表(指向表主键);

 

主键

主键列自动创建一个约束。

 

数据完整性

1.       实体完整性,保证这一行的有效

2.       域完整性,一列数据有效

3.       引用完整性,引用编号有效

4.       用户自定义完整性,保证自定义规则

 

 

 

第三章:DML数据操作语言

 

Insert 添加   update 修改    delete 删除

 

Insert into 表名(列名) values(值);————添加列的数据

 

Select * from 表名;      ————查询表

 

表的复制

Insert into 新表名 select * from 旧表名;  ————保存前表存在

 

Create into 新表名 select * from 旧表名;  ————复制列名,数据类型,非空,默认约束

 

。。。。。where 1=2;————不带数据复制

 

更改

Update 更改

Update 表名 set 列名=新值,列名2=新值2

         …..条件;                                                                         ————修改表里列的值

 

删除

Delete (表中的数据)

Delete from 表名;————删除表中的数据

 

清空表

Truncate table 表名;

 

投影

Select * from 表名;    ————只用于DQL

投影时可以取别名,更加简化,国际化。

 

去掉重复数据

Select distinct _from_

 

Limit (限制,用于分页)

Select_from_timit 开始序号,返回的行数;

 

选择

Where 条件;————查询时的条件

多条件: and   or

Between 执行范围测试  

Between 上限and 下限;

 

innot。。。  列举

 

模糊查询

Like 像什么什么

通配符:

%’表示0个或多个字符

_’任何一个字符

 

Select _from where _like 模式;

 

空值数据

。。。where 。。。is null

 

排序:

默认的顺序为自然顺序从小到大,也可以从大到小

顺序 asc(一般不用写出,系统默认)               倒叙 desc

 

Select * from order by desc

 

批量插入

Insert into _

         Select * from _

Create into _

         Select * from _

 

第四章:聚合函数

Count 列数量    sum列的合    avg 列的平均值    max最大   min最小

 

Select Count(计算模式)from 表名;————计算所有列如有NULL忽略,如果要NULL值可以用ALL

 

Select sum(计算模式)from 表名;

          Avg

Sum avg 都是数值列

 

Select max(计算模式)from 表名;

          Min

 

数据分组

凡是select子句里的聚合函数,并且有非聚合函数的列,就需要进行分组

Group by

 

Select A 聚合函数() from 表名

         Where 条件

                   Group by A

 

Having 相当于 where

Select A 函数() from 表名

         Group by A

                   Having 函数()关系式值;

 

Where 列值进行比较

Having 必须有聚合结果进行匹配选择

 

 

SQL执行顺序

1.       from

2.       where

3.       group by

4.       select

5.       having

6.       order by

 

 

 

第五章:子查询和组合函数

Select  columnA (子查询) as  column  from  表名;

 

子查询中有相关和非相关

相关:一个查询语句,不能单独运行,而且一般有多少行记录就返回多少次记录

非相关:得到一个结果,单独运行,并且一般只执行一次

 

运算符:in   not in   all   any   eists

All:结果逐一比较,必须满足时表达式的值才为真

Any:结果进行逐一比较,其中一条满足则表达式值为真

Exists:判断子查询是否存在数据,如果存在表达式为真,如果不存在表达式为否

 

Exists()跟在where后面()里面写条件,通常为非相关子查询,如果没结果相当于false反之执行。

 

用子查询写多重查询,首先写要显示的那个条件语句,之后关键字相关联,有关建子的地方选择子查询 where后面多个结果使用 in

 

组合查询

Select 1,列2 1          

Union

Select 3,列4 2

 

多个select 结果组合在一起显示,组合和显示的列名就是第一个查询的名,组合必须有同样的数目的结果列,列数不同不能组合,列的类型也要相同或相似

 

联接

Join   数据来自多张表,多个表联接在一起实现查询结果

笛卡尔乘积:数据自由组合

Select A,列B from 1 join 2

On 1,列=2,列;

 

分类

内联接: inner join     inner可以省略      内联仅显示相关联的信息

外联接

自联接:来自同一张表,自己和自己作联接

 

自联接:内联和外联的一个特例,主外建在一张表里面。

 

外联接

左联接    右联接   全联(mysql不支持)

左外联:left onter join on

右外联:right outer join on

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值