首页 > 代码库 > 数据库基础

数据库基础

Demo:创建了一个工人信息表,它包括工人编号、姓名、性别、出生日期、职位、工资和备注信息。SQL语句的程序清单如下:、

(本人使用的数据库软件是Sql server 2005)

创建数据库:

create database Test;

创建表:

CREATE TABLE worker (

number  char(8)  not null,

wname  char(8)  NOT NULL,--此处不能用name

sex  char(2)  NULL,

birthday  datetime  null,        //

job_title  varchar(10)  null,

salary  money  null,

memo  ntext  null );

以下是一些简单操作:‘

表的增删改查

插入: insert into 表名 (属性列名1,属性列名2..)values(常量1,常量2..)(属性列数==常量数)

insert into worker values(‘201222‘,‘小明‘,‘男‘,2011-11-02,‘教师‘,4000,null,17); 

修改: update 表名 set  列名=表达式,列名=表达式...where 约束条件; 
update worker set birthday=2011-09-01  where number=‘201222‘;
(在此解释下,在插入时,时间值与我们要求的不一致,在更改时也没有达到我们的要求,可能是与软件种类有关,不过插入和修改语句都是正确的。)
删除:delete from 表名 where 约束条件;
 delete from worker where number=‘201222‘;
查询: select  [all|distinct]属性列1,属性列2.. from 表名 (视图)where 条件表达式 group by <属性列> having 条件表达式 order by [asc|desc]
 
 相关解释: all  查询时,存在重复,显示重复;
                  select all * from worker;
                 distict 查询时,存在重复,去除冗余
                group by 将结果按<属性列>的值进行分组,该属性列的相等的值 为一个组。
                having 后也加约束条件 与where的差别是:where 用于整个表或者视图,having 用于属性列.
                order by 对查询结果按照一个或者多个属性列的升序(asc)或者降序(desc)排列,默认是升序。
                 (这篇文章只说明一些简单查询,下篇文章会对查询做详细说明,例如连接查询,嵌套查询)
               select * from worker;
            select number from worker;
视图的创建:create view Wor as select * from worker;
视图的增删改查:(和表一样)
select * from Wor;
delete from Wor where wname=‘小明‘;
insert into  Wor values(‘190292‘,‘小红‘,‘女‘,1990-11-09,‘软件工程师‘,10000,null,24);
update Wor set number=‘201400‘ where wname=‘小红‘;
 
表的修改:(如果读者细心可以发现,我在定义表时,只有七列,而在数据录入时,却要录入八个数据)
 
增加属性列:alter table 表名 add 属性列名 数据类型 约束条件 
 alter table worker add age int;
修改属性列:alter table 表名 alter column 属性列 新数据类型 
alter table worker alter column salary float;
 
删除表:drop table 表名;
drop table worker;
 
完整性约束:(表创建完成后约束)
添加约束:
 alter table 表名 add constraint 列名(此处可以随意起名)primary key(列名)|列名 check(列名 约束条件);
alter table worker add constraint number primary key(number);
alter table worker add constraint age check (age between 0 and 200);
alter table worker add constraint sex check (sex in (‘男‘,‘女‘));
删除约束:
alter table worker drop constraint number;
alter table worker drop constraint sex;
表内约束:
 
create table Worker1(
Wnumber char(10) not null
constraint Wnumber primary key(Wnumber),
Wname char(10) not null,
Wsex char(2)
 constraint Wsex check(Wsex in (‘男‘,‘女‘)),
Wbirth datetime null,
Wjob char(10) null,
Wage int
constraint Wage check(Wage between 0 and 200 ));
   
 
第一次写,写下来发现好多都没有写呢,而且很凌乱,请各位多多指教。