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;
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
));
第一次写,写下来发现好多都没有写呢,而且很凌乱,请各位多多指教。
数据库基础,古老的榕树,5-wow.com