数据库编程(基表,索引,sql更新操作)

数据库的结构

物理结构

数据库文件分为数据文件和日志文件,二者统称为物理文件或磁盘文件

数据文件:顾名思义就是存储数据的文件,这些文件用来存储数据库对象的定义和实例数据

日志文件:日志文件同样也就是存储日志,他的作用是用来恢复数据库的冗余数据。

逻辑结构:

数据库的创建

语法:

create table <databaseName>

on                                               指定数据库中的数据文件

(

        name  = <logicalFileName>,                数据库文件名

        filename = 'osFileName',                        数据文件的物理文件名

        size = <size>,                                                文件的初始大小(默认MB)

        maxsize = <maxSize>,                                       文件最大可扩展的容量

        filegrowth = <growthIncrement>                             每次扩展的大小

)        

log on                              指定数据库的日志文件,如果没有指定,系统将自动创建单个的日志文件

(

        name  = <logicalFileName>,                                跟上面一样

        filename = 'osFileName',

        size = <size>,

        maxsize = <maxSize>,

        filegrowth = <growthIncrement>

<databaseName> 数据库名字约束:

长度可以从1到30,第一个字符必须是字母,或下划线_,或字符@

在首字符后的字符可以是字母,数字,或者前面规则中提到的字符

名称中不能有空格(为了可读性,连接的字母单词首字母一般大写)

这里的数据库创建属于简单数据库创建,复杂数据库创建看书(数据库系统原理与设计第3版 214页)

基本表的定义

sql中的基本数据类型 (1B = 2^8)

  • 整形:int(4B),smallint(2B),tinyint(1B)
  • 浮点型:float,real(4B),decimal(p,n),numeric(p,n)
  • 字符型:char(n),varchar(n),text
  • 二进制型:binary(n),varbinary(n),image
  • 逻辑型bit,只能取0和1,不允许为空
  • 货币型:money(8B,4位小数),small money(4B,2位小数)
  • 时间型:datatime(4B,从 1753-01-01)smalldatetime(4B,从1900-01-01)

其中image为图片存储类型,text存放大文本数据

创建基本表

语法:

create table <tableName>

(

        <columnName> <datatype> [default<defaultValue>] [null | not null ] {unique | primary key},

        constraint <constraintName1> primary key (<columnName>),        主键

        foreign key (<columnName>) references <tableName> (<columnName>)            外键

default :设置缺失值,可选项

null :可以为空,可选项

unique :建立唯一约束

基本表的修改

增加列

alter table <tableName>

        add <columnName><dataType>

增加约束

alter table <tableName>

        add constraint <constraintName>

删除约束

alter table <tableName>

        drop constraint <constraintName>

修改数据列类型

alter table <tableName>

        alter column <columnName> <newDataType>

删除表

drop table <tableName>

索引

        如果数据是有序的,那么检索速度就会加快,对基础表的排序一般有2种方案,一是对数据的记录进行物理上的排序,这边很难做到,二是不改变物理排序,通过建立索引来实现数据的记录的重新排序,称为逻辑排序

       建立索引后,系统存取数据会自动选择合适的索引作为存储路径,索引的建立可以从不同角度加快查询的速度,但是如果索引建立的较多,会对数据库的维护带来较大的开销。

索引的建立

create [unique] [clustered | nonclustered]  index <indexName> on <tableName>  |

(<columnName>, [ASC | DESC ]) 【on <filegroupName】

  • unique:建立唯一索引
  • clustered | nonclustered :建立聚集索引或非聚集索引 (默认为非聚集索引)
  • ASC|DESC : 升序还是降序 (默认是升序)
  • on <filegroupName> 建立在那个逻辑设备(组)上,默认是主逻辑设备

 索引的删除

drop index <indexName> on <tableName>

sql 数据更新语言

语法:

insert into <tableName> [<columnName1>,<columnName2>,<columnName3>,...]

        values(<values1>,<values2>,<values3>,....)

  • 在插入语句中可以不指定列名,但是值的顺序必须与建表的顺序相同

插入多个元组(书上223页)

删除元组:

delete from <tableName>  [where <predicate>] 

<predicate>:条件

修改数据

语法:

        updata <tableName> 

        set <columnNam1>.=<expr1> , <columnNam2>.=<expr2> , .....

        [from <tableName>]

        [where <predicate>] 

书上实例(224页)

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值