`
mili_qm
  • 浏览: 6474 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

数据库回顾总结

阅读更多
数据库
1.SQL:结构化查询语言
  MYSQL:是基于客户机和服务机的数据库;

2.MYSQL工具:
mysql命令行使用程序;
MySQL Administrator
MySQL QueryBrowser

3.使用MySQL:
show databases显示所有可用的数据库;
用USE选择一个数据库;
show tables显示数据库里的所有的表;
show columns from table_name显示表里面的列;

4.SQL是不区分大小写的;

5.distinct关键字只返回不同的值,必须直接放在列名前面且不能部分使用;
  select distinct city_name from city;

6.limit限制返回的结果的行数;
Select * from city
Limit 5,4;
表示返回从第五行开始四行数据;

7.order by排序:
Order by子句中使用的列可以是非显示的列;
给多个列排列时,按照列名的顺序,按照第一个列名排序,然后在相同的列名数据中按照第二个列名排序;
默认为升序,降序DESC,升序ASC;
使用order by 和limit的组合,可以找出列中最高或者最低的值,先排序,再输出几行数据,所以先order by,再 limit;
使用order by 和where的组合,应该让order by位于where之后,对挑选出来的数据进行排序才符合常理。

8.SQL过滤和应用软件过滤
虽然数据可以在SQL和客户机进行过滤,但在客户机过滤明显浪费流量,增加了应用软件的复杂性,增加了响应时间,所以数据过滤应尽可能在SQL完成;

9.在使用where子句时,对于字符串要用单引号括起来,数值列则不用;
Where price between 5 and 8;
Where name is null;
Null是一个具有特殊类型的值,在过滤时要特意指出来;

10.任何时候使用and和or的条件组合子句时,都要用括号括出正确的计算顺序,虽然默认是and先再or;

11.In where 子句功能与or相似,但它的效率比or高;
Where price in(5,7)==where price =5 or price =7;
用圆括号括出想要的值;
IN的最大优点是可以包含其他select语句。

12.使用通配符进行过滤
LIKE操作符与通配符‘%’(可以匹配多个字符)和‘_’(只能匹配单个字符)
Where name like  ‘jet%’;(搜索词是区分大小写的)
通配符的搜索花费时间比较长,刻意替代时不要过度使用。
通配符不能用来匹配null值。

13.正则表达式:(用来匹配文本的特殊的字符集合)
用正则表达式模板也是网站检查用户输入数据格式常用方式;
Regexp 匹配不区分大小写,regexp binary 区分大小写;
Where name regexp ‘an’;(返回所有包含an的值);
Where name regexp ‘a|b|c’;(返回所有包含a或者b或者c的值);
Where name regexp’[123] Tom’(返回123其中某个与TOM的值,匹配123其中之一)
Where name regexp’[^123] Tom’(除123之外的值)
Regexp[1-9][a-z]匹配从1到9或者a到z的值;
Regexp’.’匹配任意字符;
Regexp’\\.’匹配’.’字符,特殊字符要用\\标出来。\\f换页\\n换行\\\匹配反斜杠本身……
匹配自定义的字符类!!!预定义的字符集
[:digit:]匹配任意字符。
[]表示集合;
{n}指定数目的匹配;
?匹配前一个字符出现0次或者1次;
+匹配前一个字符至少出现1次;
*匹配前一个字符出现任意次;
^在集合中表否定,否则表示字符串的开头;
$表示字符串的结尾;
不需要注意通配词的位置,正则表达式可能内部调用了模板,所以性能会比较低;
正则式匹配是个很多样化的使用

14.我们需要直接从数据库中检索出转换,计算或者格式化过的数据,而不是检索出数据,然后再在客户机应用程序中重新格式化;在数据库服务器上完成这些操作比在客户机中完成要快得多,因为DBMS就是设计来快速有效地完成这种处理的;

15.创建新的字段
多数DBMS使用+或者||实现拼接,MySQL使用Concat()函数来实现,将多个串连接起来形成一个较长的串,各个串之间用逗号分隔。
Select concat(name,’(‘,ID,’)’)
RTrim()和LTrim()函数去除右边或者左边的空格;
使用别名:A AS B
对于数值类的列合并直接在用加减乘除;

15.日期和时间处理函数
Where Date(date)=’2015-10-19’;
Where Time(time)=’12:03:10’;
最好用这两个函数来判断日期或者时间;

16.AVG()求平均值的函数
如果有where子句则只是求where子句挑选出来的值的平均值;
忽略NULL值;

17.count()计数函数
Count(*)计算表中所有行的数目;
Count(列名)计算该列的行数,忽略NULL值;

18.分组数据,group by (分组)和having(过滤分组)
先group by分组再对分组后的数据使用聚集函数,所以group by子句中不能出现聚集函数;
Group by 在where后面出现,where过滤出行,先选择出数据再进行分组,再用having过滤分组;
NULL值作为一个分组出现;
Group by 子句中出现的列必须是检索列或有效的表达式;
分组后要记得排序,group by应该和order by一起用,先分组后排序,order by应该在group by之后。

19.子查询的两种用法:
1)利用子查询进行过滤;
2)子查询的结果作为列;

20.通过在表的定义中指定主键和外键,可以维护引用完整性,即假如在产品表中设供应商表的主键为外键,那么产品表中供应商那一列的值必须在供应商表中出现。

21.在联结两个表时,实际上是将第一个表的每一行和第二个表的每一行都进行配对,即得到两个表的笛卡儿积,然后在用where子句把符合条件的数据过滤出来。

22.表可以用AS取别名,但是表别名只在查询执行中使用,与列别名不一样,表别名不返回到客户机中。

23.三种联结方式:
1)等值联结/内联结:常用的联结类型,先得出笛卡儿积,然后选择满足条件的行;
(where A.a=B.a)(from A inner join B on A.a=B.a)
2)自然联结:要求两个表有相同的列,而在返回的结果中会去掉重复的列;(natural join)
SELECT *
FROM authors NATURAL JOIN publishers
3)外联结:结果中返回所有的行,尽管有些行不满足条件;
(from A outer join B on A.a=B.a)
左外联结,让左边的表保留所有行,右外联结让右边的表保留所有行
(from A left outer join B on A.a=B.a ||from A right outer join B on A.a=B.a)

24.UNION union 组合查询,起到类似where的效果
将多个选择语句的结果合并成一个集合,所以每个选择语句必须是相同的检索列;
Union默认删除重复行,有需要可以用 union all 显示所有行;
Union 在两个select语句中间,order by子句只出现一次,在最后,对所有的结果进行排序;

25.MySQL的内部引擎,用来管理和处理数据:
InnoDB:是一个可靠的事务处理引擎,但不支持全文本搜索;
MEMORY:功能上等同于MyISAM,但数据存储在内存中,速度快,但使用与临时表;
MyISAM:不支持事务处理,但是支持全文本搜索;

26.对于表的修改,一般是用来定义外键
Alter table orderitems
Add constraint fk_orderitems_orders
Foreign key (order_num) references orders(order_num);

Drop column删除列

27.视图
视图是一个虚拟的表,是对SQL语句的封装。
Create view name as...(查询语句)
然后用这个视图来代替复杂的查询语句;
虽然对视图的操作跟对表的操作基本没有差别,可以用来嵌套联结之类的,
但是视图不是真实存在的,对视图的调用其实是对视图下定义的SQL的调用,所以当多个视图嵌套之类使用时会使性能下降;
Show create view name;用来显示定义视图的SQL语句;

分享到:
评论

相关推荐

    数据库复习总结.zip

    - "数据库3 SQL总结.docx"可能包含了SQL语言的详细总结,包括基本语法、高级查询技巧和优化策略。 - ".md"文件可能是Markdown格式的学习笔记,简洁易读,覆盖了数据库理论和实践内容。 - ".pdf"文件通常包含更...

    2021年空间数据库实习总结.docx

    空间数据库实习总结 空间数据库是GIS(地理信息系统)的核心组成部分,用于存储、管理和处理地理空间数据。在2021年的实习中,我们通过ArcCatalog和ArcGIS软件平台深入实践了空间数据库的建立和管理。这两个工具是...

    使用Java实现数据库编程笔记.txt

    **总结** 本文详细介绍了如何使用Java进行数据库编程的相关知识,包括数据库设计的基本原则、三大范式及其对性能的影响、MySQL的安装与基本操作,以及SQL语言的使用方法。这些内容对于学习和掌握数据库编程至关重要...

    多年的数据库设计经验总结

    同时,回顾过去的项目经验,总结其中的教训,可以帮助避免重蹈覆辙。 #### 二、设计数据库表的指南性技巧 - 在设计表结构时,应确保每张表只包含相关的数据,避免冗余。合理的字段设计可以减少数据重复,提高数据...

    2008主流数据库产品回顾与展望.doc

    数据库产品回顾与展望 本资源总结了 2008 年数据库产品的发展和展望,对 Oracle、IBM 和微软等主要商用数据库厂商的产品发布和发展进行了分析和评价。 知识点 1:数据库市场份额 * 2007 年,Oracle 以 48.6% 的...

    《数据库原理及应用》复习资料(全)

    数据库重点知识提纲则是一个总结性的工具,它列出了课程的关键点,方便学生快速回顾和复习。 总的来说,《数据库原理及应用》的复习资料是深入理解和掌握数据库技术的重要资源。通过学习这些内容,学生不仅能熟练...

    数据库技术发展历程回顾.pdf

    在回顾数据库技术的发展历程时,我们首先需要了解什么是数据库管理系统(DBMS)。DBMS是一种用于创建、维护、控制和检索数据库中数据的软件。它为用户提供了各种功能,比如定义数据结构、查询数据、修改数据、数据备份...

    数据库参考答案.zip

    通过复习这些文件,学生可以全面回顾数据库课程的关键内容,熟悉考试的题型和解题技巧,从而提高应试能力。同时,"数据库复习.txt"可能包含了对上述知识点的总结和重点提示,是复习的重要辅助材料。而“数据库参考...

    数据库基础知识,数据库系统

    通过对计算机数据管理发展历程的回顾,我们可以深刻理解数据库系统的重要性及其在解决实际问题中的作用。随着技术的不断进步,未来数据库技术将会更加完善和智能化,更好地服务于各行各业的应用需求。

    《数据库系统概论》复习总结.docx

    《数据库系统概论》是计算机领域中的一门重要课程,本文将对《数据库系统概论》进行总结和回顾,从概念模型、ER 图、数据库系统结构、数据库管理系统的概念、逻辑数据模型等方面进行讲解。 一、概念模型 概念模型...

    【第一讲连接数据库】-01F-总结与拓展练习.rar

    在本资源"【第一讲连接数据库】-01F-总结与拓展练习.rar"中,主要涵盖的是关于数据库连接的基础知识及其应用的总结与拓展。这个压缩包包含了一个名为"01F-总结与拓展练习.swf"的文件,很可能是一个Flash动画或交互式...

    数据库系统概念第六版英文精编版课后习题答案(总结大全版)

    这份"数据库系统概念第六版英文精编版课后习题答案(总结大全版)"是学习过程中不可或缺的参考资料,它涵盖了所有习题的详尽解答,帮助读者巩固理解和深化对数据库原理及应用的理解。 首先,让我们回顾一下数据库...

    Oracle_数据库基础教程数据库知识学习

    - **1.2.2 Oracle数据库发展史**:回顾Oracle数据库自1979年发布以来的主要版本和关键发展历程。 - **1.2.3 Oracle数据库特点**:总结Oracle数据库的独特优势,如高可用性、高性能、安全性等。 - **1.2.4 Oracle...

    数据库实训周报(一)1

    周日的总结会则用于回顾过去一周的工作,调整计划,以适应项目的变化和新发现的需求。 在接下来的一周,团队的主要任务将是数据库表的设计,系统架构的规划,以及软件用例的细化。数据库表的设计需要考虑数据的一致...

    精编《数据库系统概论》王珊第五版第7章数据库设计1资料.ppt

    - **小结**:对设计过程进行回顾和总结,评估设计效果并进行必要的优化。 数据库设计是一个系统性和实践性极强的过程,需要理论知识与实践经验相结合。在设计时,设计师必须全面考虑数据的生命周期,从需求分析到...

    hibernate中所有数据库方言

    在探讨Hibernate中所有数据库方言之前,我们先简要回顾一下Hibernate框架本身。Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用与各种关系型数据库进行交互。它提供了强大的功能,如对象持久化、查询...

    vc++6.0数据库课程设计

    最后,在【总结】中,通常会回顾项目开发过程,评估系统性能,指出可能存在的问题以及改进方案,总结经验教训,为后续类似项目提供参考。 这个课程设计全面涵盖了数据库应用系统的基本开发流程,包括需求分析、设计...

    数据库课程设计@数据库课程设计

    在项目的总结阶段,团队成员回顾了整个项目开发过程,讨论了所遇到的挑战和解决方案,以及在团队协作中获得的经验和教训。同时,参考文献部分列出了项目设计和开发过程中所参考的书籍、文章和网络资源,为项目的理论...

    赵振平:基于传统数据库的大型系统构建

    总结来说,赵振平老师在其巡讲中将会结合自身的实战经验和专业认知,为听众提供关于传统数据库发展的历史回顾、传统数据库的实质、大型系统构建方法以及Oracle和MySQL数据库的时代意义等多方面的知识。这些知识点...

    软考中级数据库系统工程师备考资料——xmind思维导图(配合第四版教程)

    大家好,我是CodeMak1r。上一篇博客距今已经有20天了,最近在备考5月的软考中级《数据库系统工程师》。...内容精确到了历年考点,以及各个知识点的联系,很适合备考数据库的同学学习和回顾知识点,希望大家能够喜欢~

Global site tag (gtag.js) - Google Analytics