热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQL数据库开发知识总结:基础篇

SQL数据库开发知识总结:基础篇Postedon1.数据库概述(1)用自定义文件格式保存数据的劣势。(2)DBMS(DataBaseManagementSystem,数据库管理系统)和数据库,平时谈到数据库可能有两种含义:MSSQLServer,Oracle等某种DBMS;存放一堆数据库的一个分类

SQL数据库开发知识总结:基础篇Posted on 1.数据库概述 (1) 用自定义文件格式保存数据的劣势。 (2) DBMS(DataBase Management System,数据库管理系统)和数据库,平时谈到数据库可能有两种含义:MSSQL Server,Oracle等某种DBMS;存放一堆数据库的一个分类

SQL数据库开发知识总结:基础篇 Posted on

1.数据库概述

(1) 用自定义文件格式保存数据的劣势。

(2) DBMS(DataBase Management System,数据库管理系统)和数据库,平时谈到”数据库”可能有两种含义:MSSQL Server,Oracle等某种DBMS;存放一堆数据库的一个分类(CateLog)。

(3) 不同品牌的DBMS有自己不同的特点:MYSQL,MSSQLServer,DB2,Oracle,Access,Sybase等。对于开发人员来讲,大同小异。

(4) 除了Access,SQLServerCE等文件型数据库之外,大部分数据库都需要数据库服务器才能运行。学习,开发时是连接本机的数据库,上线运行时是数据库运行在单独的服务器。

  • 数据库中的概念
  • (1) CataLog(类)(又叫数据库DataBase,表空间TableSpace),不同类的数据因该放到不同的数据库中。

    1) 便于对各个CataLog进行个性化管理

    2) 避免命名冲突

    3) 安全性更高

    (2) Table(表);不同类型的资料放到不同的”格子”中,将这种区域叫做”表”,不同的表根据放的数据不同进行空间的优化,找起来也方便。

    (3) 列(Column),字段(Field)。

  • 主键(Primarykey)
  • (1) 主键就是数据行的唯一标示,不会重复的列才能当主键,一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都会设定主键。

    (2) 主键有两种选用策略;业务主键和逻辑主键。业务主键是使用有业务意义的字段做主键,比如身份证号,银行账号等。逻辑主键是使用没有任何业务意义的字段做主键,因为很难保证业务主键不会重复(身份证号重复),不会变化(账号升位),因此推荐用逻辑主键。

    (3) 逻辑主键:完全给程序看的,业务员不会看的数据。

  • SQL Server管理
  • (1) SQL Server的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行了。

    (2) 常用字段类型:bit(可选值0,1),datetime,int,varchar,nvarchar(可能含有中文用nvarchar)。

    (3) varchar(),nvarchar().char(n)的区别:char(n)不足长度n的部分用空格填充。Var: variable:可变的。

  • SQL语句入门
  • (1) SQL语句是和DBMS”交谈”专用的语句,不同DBMS都认SQL语法。

    (2) SQL语句中字符串用单引号。

    (3) SQL语句是大小写不敏感的,不敏感指的是SQL关键字,字符串值还是大小写敏感。

    (4) 创建表,删除表不仅可以手工完成,还可以执行SQL语句来完成,在自动化部署,数据导入中用的很多。

    创建表: create table T_Person 删除表:drop table T_Person

    (

    ID int not null,

    Name nvarchar(50),

    Age int null

    )

    (5) 执行简单的Insert语句: insert into T_Person(ID,Name,Age) values(1,’Jim’,39)

    (6) *(熟悉):SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类,create table,drop table,alter table等属于DDL,select,insert,Update,delete等属于DML。

  • 主键选择
  • (1) SQL Server中两种常用的主键数据类型:int(或bigint)+标识列(又称自动增长字段);uniqueidentifier(又称Guid)。

    (2) 用标识列实现字段自增可以避免并发等问题,不用开发人员控制自动增长,用标识列的字段在insert的时候不用指定主键的值,香港空间,将字段的”是标识列”设置为”是”,一个表只能有一个标识列。

    (3) Guid算法是一种可以产生唯一标示的高效算法,它使用网卡MAC地址,纳秒级时间,芯片ID码算出来的,这样保证每次生成的GUID永远不会重复,无论 是同一个计算机上还是不同的计算机,SQL Server中生成GUID的函数newid(),.NET中生成GUID的方法:Guid.NewGuid(),返回值是GUID类型。

    例如:SQL Server:select newID()

    C#代码中 :Guid id=Guid.NewGuid();

    (4) (*)int自增字段的优点:占用空间少,无需开发人员干预,易读。缺点:效率低,数据导入导出的时候很痛苦。

    (5) (*)Guid的优点:效率高,数据导入导出方便,缺点:占用空间大,不易读。

  • 数据插入
  • (1) insert语句可以省略表名后的列名,但是不推荐。Insert into Person2 values(‘lucy’,’38’)

    (2) 如果插入的行中有些字段的值不确定,那么insert的时候不指定那些列即可。

    (3) 给字段可以设置默认值,如果Guid类型主键的默认值设定为newid()就会自动生成,很少这样干: insert into person3(ID,Name,Age) values(newid(),’tom’,30)

  • 数据更新
  • (1) 更新一个列:update T_Person set Age=30

    (2) 更新多个列:update T_Person set Age=30,Name=’Tom’

    (3) 更新一部分数据:update T_Person set Age=30 where Name=’Tom’,用where语句表示只更新Name是’Tom’的行,注意SQL中等于判断用单个=,而不是==。

    (4) where中还可以使用复杂的逻辑判断:

    update T_Person set Age=30 where Name=’Tom’ or Age<25. or相当于C#中的||(或者)。

    (5) where中可以使用的其他逻辑运算符是:or,and,not,<,>,>=,<=,!=(或<>)等。

  • 数据删除
  • (1) 删除表中的全部数据:delete from T_Person。

    (2) delete只是删除数据,表还在,和drop table不同。

    (3) delete也可以带where子句来删除一部分数据:delete from T_Person where FAge>30。

  • 数据检索
  • (1) 简单的数据检索:select * from T_Employee。

    (2) 只检索需要的列:select FName from T_Employee。

    (3) 列别名:select FNumber as 编号,FName as 姓名 from T_Employee。

    (4) 还可以检索不与任何表关联的数据:select 1+1,select newId(),select getDate()。

  • 数据汇总
  • (1) SQL聚合函数:max(最大值),min(最小值),avg(平均值),sum(和),count(数量)。

  • 数据排序
  • (1) order by子句位于select语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排序,ASC)还是降序(从大到小排序,DESC)。

    (2) 按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序

    select * from T_Employee order by FAge Desc,FSalary Desc

    (3) order by子句要放到where子句之后:

    select * from T_Employee where FAge>23 order by FAge Desc,FSalary Desc

  • 通配符过滤(模糊匹配)
  • (1) 通配符过滤使用Like。

    (2) 单字符匹配的通配符为半角下划线”_”,它匹配单个出现的字符,以任意字符开头,剩余部分为”erry”:

    select * from T_Employee where FName like ‘_erry’

    (3) 多字符匹配的通配符为半角百分号”%”,它匹配任意次数(零或者多个)出现的任意字符,”K%”匹配以K开头,任意长度的字符串。检索姓名中包含”n”的员工的信息:

    select * from T_Employee where FName like ‘%n%’

  • 空值处理

  • 推荐阅读
    • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
    • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
      本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
    • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
    • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
    • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
    • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
    • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
      本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
    • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
    • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
    • Centos7.6安装Gitlab教程及注意事项
      本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
    • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
      VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
    • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
    • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
    • [译]技术公司十年经验的职场生涯回顾
      本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
    • 计算机存储系统的层次结构及其优势
      本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
    author-avatar
    手机用户2502886695
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有