java - 图书管理系统之数据库(sql server 2008)篇

这里的数据库就使用 SQL server 2008。

需求分析中有介绍到,数据库的物理结构。。在使用中要用到六张表(reader,readertype,users,book,booktype,borrowbook),首先创建一个数据库(db_bookborrow),然后再在数据库中 将这六张表建出来(具体怎么建表‘自己用的图形界面’这里不做介绍,下面有语句创建方法)。每一张表的详细内容见需求分析,这里要注意的是 readetype和booktype 的主键设置为自增长型。

建完表好需要熟悉一下 查询增添修改 SQL 语句,程序中将会用到。下面是程序中可能用到的一些 SQL 语句。

1.创建和删除数据库的方法(使用图形化界面创建数据库、使用语句创建数据库)[使用语句创建数据库可以避免数据库版本不同带来的麻烦,另外添加数据更为方便。]

--创建数据库

create database db_bookborrow;

--删除数据库

drop database db_bookborrow;

2.创建和删除数据表的方法(使用图形化界面创建、使用语句创建)

创建数据表的格式(红色表示关键字,不能改动;蓝色表示可根据不同情况改为不同内容;中括号里的内容表示可选。)


create table 表名 (

字段名字段类型 [ primary key],

字段名字段类型,

.......

);

--创建数据表

create table reader

(

       readeridchar(8) primary key,

       type int,

       namechar(20),

       age int,

       sexchar(4) ,

       phonechar(11),

       deptvarchar(20),

       regdate date             

);

create table readertype

(

       id int,

       typenamevarchar(20),

       maxborrownumint,

       limit int

);

--删除数据表

drop table reader;

【注意当前所操作的数据库!】

3.主键和自增长的概念及作用,两者的写法。

主键是某一条(行)记录的唯一索引,根据主键可以唯一地确定某条记录。

自增长可以自动为主键提供不重复的值。需要两个参数:初始值和步长。【注意:只能对int类型的主键设置为自增长!】

--主键(primary key)和自增长(identity)

create table users

(

       id int  primary key identity(1,1),

       namevarchar(20),

       passwordvarchar(20)

);

4.增删改查操作(CRUD)

增加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)。

--增加操作(insert)

insert into readertype values(1,'学生',3,10)   --char或varchar类型的内容要用单引号括起来

insert into readertype values(2,'教师',6,30)


insert into reader values('12345678',1,'张三',23,'男','13612345678','软件','2018-1-15')

insert into reader values('11111111',2,'李四',33,'女','13611111111','软件','2016-1-10')


insert into users values('admin',111)  --自增长字段不需赋值

--更新操作(update)

update reader set age=18 where readerid='12345678'

update reader set age=19,phone=’13722222222’ wherereaderid='12345678'

--查询操作(select)

select * from readertype  --查询所有读者类型

select readerid,name from reader --查询所有读者的编号和姓名

select * from reader where readerid=’12345678’ --查询编号为12345678的读者的所有信息

--删除操作(delete)

delete from reader where readerid=’12345678’

5.部分复杂查询

6.1 判空

select *from borrowbook where returndatetime is NULL

 

select * fromborrowbook where returndatetime is not NULL

6.2 组合where条件(and、or、not)

select * from users where name='admin' and password=111

6.3 模糊查询(like关键字)

select * from reader where name like '张%'   --%代表零到多个字符

select * from reader where name not like '张%'

select * from reader where name like '张_'  --一个下划线代表一个字符

 

select * from reader where name like '%张%'  --名字中包含张

6.关联查询(多表查询)

--查询读者编号、读者姓名和读者类型名(信息来自两张表)

select readerid,name,typename

from reader join readertype onreader.type=readertype.id

[可继续加where子句]

7.联合主键(借阅信息表)

某人和某书联合到一起才能唯一确定一条信息,这时可以使用联合主键。

create table borrow(

readerid char(8),

isbn char(10),

borrowdate datatime,

primary key(readerid,isbn)

);



你可能感兴趣的:(数据库,java)