數據庫基本操作(一)Demo:創建了一個工人信息表,它包括工人編號、姓名、性別、出生日期、職位、工資和備注信息。SQL語句的程序清單如下:、
(本人使用的數據庫軟件是Sql server 2005)
創建數據庫:
create database Test;
創建表:
CREATETABLEworker(
numberchar(8)notnull,
wnamechar(8)NOTNULL,--此處不能用name
sexchar(2)NULL,
birthdaydatetimenull, //
job_titlevarchar(10)null,
salarymoneynull,
memontextnull);
以下是一些簡單操作:'
表的增刪改查
插入: 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條件表達式 orderby[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 表名 addconstraint 列名(此處可以隨意起名)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 nullconstraint 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 )); 第一次寫,寫下來發現好多都沒有寫呢,而且很凌亂,請各位多多指教。