SQL的基于Qt的编程实践---2--表

一、表与表数据操作 表(关系):

用于存放数据库中的数据,表中数据的操作包括:插入、修改、删除、查询

1、数据类型

1)整数型    

bigint: 大整数,长度8个字节。   
int: 整数,长度4个字节。   
smallint: 短整数,长度为4个字节。   
tinyint: 微短整数,1个字节。

2)精确数值型:

数据由整数和小数构成从功能上说,两者完全等价。

decimal,numeric 

3)浮点型:近似值型,(整数和小数构成),但可能会损失一些精度。 

float:存储长度8个字节 

real:4个字节存储 

4)货币型  

money :8个字节    

smallmoney:  4个字节

5)位型:0或1

6)字符型:用于存放字符串。(ASCII码表)    

char(n): 定长字符类型,n 表示固定长度,用户可以自定。   

varchar(n): 变长字符类型,n表示字符串可达到的最大长度。

7)unicode字符型:存储非英语语种的字符。   

nchar(n): 固定长度uniciode字符型。n 表示固定长度。    

nvarchar(n):变长unicode字符类型,n表示字符串可达到的最大长度。

8)文本型:当存储大量的字符数据时。  

text:存储大量的ASCII码字符数据。   

ntext:存储大量的unicode码字符数据。 

9)日期型:存储日期和时间。   

datetime,smalldatetime 

10)图像数据类型    image,  微软推荐varbinary(MAX)代替image。

2、表结构设计    

表结构设计包括:表名、表所包含的列名、列的数据类型、长度、主键是否可为空、约束条件、默认值设置等。

1)

为存储学生信息,现数据库中需要一张学生表:(学号  姓名  性别  出生时间  专业  总学分  备注)

3、创建表的语法  

 

 create table 表名      
(  
      <列的定义>            
     列名  数据类型 约束或默认值,             
     列名  数据类型  约束或默认值,          
        ….            
    <计算列的定义>          
        表的约束          
)



    create table kc
   ( 
       课程号 char(20) not null primary key,
       课程名 nchar(20) not null,
       学时  tinyint not null,
       学分  tinyint not null,
        授课教师名 nchar(20)
  )
2、创建带计算列的表  

create table pjcj 
 (   
           课程号  char(10) not null primary key,
           总成绩   real not null,
          人数  int not null,
          平均成绩  as  总成绩/ 人数  persisted
)
计算列是指:其值可以由计算机列所在表中的其他属性列通过计算二得到。表示方法: 计算列名 as  ….
 两个问题
1、上例中的计算列 平均成绩好像
没有说明数据类型呢?    计算列不用声明数据类型,其   数据类型由计算后的数据类型   决定! 
 2、persisted的申明有什么作用?   计算列只是个虚拟列,系统不会将其及其数据进行存储,若希望系统对计算列数据进行长期存储,就用persisted申明! 

  4、创建表的实例 



1).创建表

   use  xs
   create table xsb
    ( 学号  char(6) not null primary key,
      姓名 nchar(8)  not null,
      性别  nchar not null,
      出生时间 datetime not null,
      专业 nchar(20) not null,
      总学分 tinyint not null,
      备注  nvarchar(1000) not null
    )      

2)、修改表结构的语法

2、修改表结构的语法
     alter table 表名
       alter column 列名      //修改已有列的属性
    [ 新的数据类型| not null/null | add/drop persisted]
      
      add   列名                //添加列
    [列的定义 或 计算列的定义
    一次可添加多条列,多条列之间用逗号隔开]

     drop  coulmn 列名    //删除已有的列
    [一次可删除多个列,多条列之间用逗号隔开]

3)实例

1、在XS表中增加一新列“奖学金等级”。

 alter table xs          
 add   奖学金等级  tinyint not null
2、在XS表中增加多新列“奖学金等级1”,“奖学金等级2”。

 alter table xs          
 add   奖学金等级1  tinyint not null,
 add   奖学金等级2  tinyint not null

//各列之间用逗号隔开

3、在XS表中删除“奖学金等级”一列。

   alter table  xs            
   drop column  奖学金等级  tinyint null

 4、修改XS表中已有列的属性:将“姓名”的长度由原来的8改为10;将”出生时间“列的数据类型由原来的datetime改为smalldatetime。

 alter table xs
      alter  column 姓名 char(10)
    alter table xs
      alter column  出生时间   smalldatetime
//一个 alter table 只能包含一个子命令。      alter column一次只能修改一个列的属性。

5、删除表XS         

drop table  xs



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值