超文本标记语言及数据库的增删查改

Html:
超文本标记语言。是一种浏览器解读的语言。


<a>百度</a>
<h3>神州十一</h3>




xml:可扩展的标记语言
<persons>
</persons>




Web:
Http:超文本传输协议




200:ok,可以获取服务端的数据了
404:访问的网址不存在。


URL地址:
协议:主机ip:端口/具体路径


http://10.0.166.127:8080/Day21_Server/aa.jpeg




需求:登录:
思路:
step1:创建一个页面:html
form表单:
submit:提交




step2:创建服务端的java程序:Servlet(专门用于做服务端的java程序:提供处理客户端的请求)
所谓的Servlet程序,就是一个java的class。继承HttpServlet。


step3:接收客户端传来的数据:
用户名,密码


step4:查询服务端的数据库:是否有该数据
有:登录成功
没有:登录失败


IO流:将数据写给客户端
跳转:






url-mapping:
键:要访问的数据资源:图片,音频,Servlet。。
值:对应的url地址




服务端:
aa.jpeg:http://10.0.166.127:8080/Day21_Server/chutian.jpeg






LoginSerlvt:http://10.0.166.127:8080/Day21_Derver/bbb




map:
映射:名-值




HttpServletRequest request
客户端发送到服务端的请求对象


本次请求的各种数据信息:
用户名,密码


HttpServletResponse response
服务端给客户端的响应






text/html:minitype:描述数据类型:格式:大类型/小类型


image/jpg






step1:创建Dynamic Web Project工程
step2:在webContent下,创建html页面
form表单:submit--->action:servlet的地址


step3:创建Servlet程序:
重写doGet()/doPost()
A:设置编码:
request.setCharacterEncoding("GBK/UTF-8");
response.setCharacterEncoding();
response.setContentType("text/html;charset=gbk");


B:获取客户端传来的的数据:操作request对象
request.getParamter("参数名");--->String 参数值

C:理应查找数据库:
D:给予客户端响应:操作response对象
从response获取IO流
response.getWriter()--->PrintWriter









数据库:用于数据的持久化。


存储结构化的数据


存储数据的仓库:增加,删除,修改,查找


存储数据以数据表为单位。




猫名,年龄
墨墨,2岁


姓名,专业,学号
张三,化学专业,1001






字符串:Java:String,StringBuffer,StringBuilder
char(20):数据库中的字符串
varchar(20):


整数类型:Java:int,Integer
int
Integer:字段的数值自增:auto_increment


小数类型:Java:float,double



主键:primary key
非空,唯一。
自增:自增1。


sqlite3.exe:工具本身的命令
数据库的sql语句:






SQL(STRUCTURED QUERY LANGUAGE)
数据定义语言(DDL):用于定义数据表的结构。
create语句:创建数据表
alter语句:修改表结构
add:
drop语句:删除数据表




数据操作语言(DML:Data Manipulation Language),用于对数据库进行操作。更改数据的内容
insert语句:增加,插入数据
delete语句:删除
update语句:修改,更新




数据查询语言(DQL:Data Query Language),用于查询数据库,对数据库中的数据没有影响的。
select语句:用于查询数据库






操作步骤:
step1:双击打开sqlite3.exe工具。用于操作my1610.db这个数据库


step2:使用sqlte3.exe的命令
以.开头,回车结束。


SQL语句:以;结束。


A:打开数据库my1610.db
.open my1610.db


.tables:表示显示该数据库中的所有的表名称。




B:创建数据表:使用SQL语句
创建表:

create table 表名(字段名 数据类型,字段名 数据类型);


create table users (id integer primary key autoincrement,username varchar(20),password varchar(30));






插入数据:
insert into 表名(字段名,字段名,字段名。。) values (数值1,数值2,数值3.。。);


insert into users(id,username,password) values(1,'admin','admin123');
insert into users(username,password) values('zhangsan','zhangsan123');


insert into users(username,password) values('lisi','lisi123'),('wangwu','123'),('zhaoliu','1234');


修改数据:
update 表名 set 字段=新值,字段=新值 [where 修改条件];


update users set username='rose',password='rose123'where id = 3;




删除数据:
delete from 表名 [where 删除条件];


delete from users where id = 3;


查询数据:
select 字段名,字段名 from 表名[where 查询条件];
select id,username,password from users;


select * from users;






修改表结构
alter tabke 表名 add 字段 数据类型;
alter table users add note varchar(50);


删除表:
drop table 表名;


DDL:
create
alter
drop 


DML:
insert
update
delete


DQL:
select


表名:student
id name age sex classno


1 leo 21 male 1


2 rose 20 female 1


3 jessica 18 female 2


4 smith 23 male 2


5 tom 22 male 3


6 jack 22 male 3


7 james 24 male 3


8 kate 19 female 2








select 字段 from 表 where  ?;
A:数学的关系符号:
>,<,>=,<=,=,!=,<>


B:and:同时满足--->&
  or:选择一个条件满足即可--->|


C:in:字段的值in(数值)

D:between 数值 and 数值


E:like,像
模糊查询:


通配符:
_:匹配的一个任意字符。
%:匹配0-多个任意字符。




F:排序:order by 字段 升序(asc,默认)/降序(desc);
位于sql语句的末尾。







1.查询:student表中的name,sex,age。age大于20岁的。

select name,sex,age from student where age > 20;


查询所有的学生信息,要求age 小于22岁。

select * from student where age < 22;




2.查询student表中,年龄大于20岁的男同学。
年龄比20大,性别是男的。同时满足。


select * from student where age > 20 and sex ='male';



查询3班,年龄大于22岁的学生信息。


  select * from student where classno = 3 and age > 22;


3.查询student表中,年龄大于20的男同学,或者年龄小于19的女同学。


select * from student where age > 20 and sex = 'male' or age < 19 and sex = 'female';

查询1班的女生,或者是2班的男生的学生信息。

select * from student where  classno = 1 and sex ='female' or classno =2 and sex ='male';


4.查询表中,年龄为21,22,23的学生信息。
select * from student where age = 21 or age = 22 or age = 23;


select * from student where age in (21,22,23);


select * from student where age >=21 and age <= 23;


查询1班的,或者是3班的学生信息。

select * from student where classno in (1,3);


5.查询表中,年龄在22到24之间的学生信息。

select * from student where age >= 22 and age <= 24;


select * from student where age between 22 and 24;


查询1班,到2班的学生信息。


select * from student where classno between 1 and 2;


6.查询表中,名字为jack,或者tom的学生信息。

select * from student where name = 'jack' or name ='tom';


select * from student where name like 'jack' or name like'tom';


7.查询表中,name以j开头的学生信息。
通配符:
_:匹配的一个任意字符。
%:匹配0-多个任意字符。
j
ja
jabc
abcj


j_

ja,jb,jc,jj


j%

j,ja,jaa,jaaaaaaaaaaa


select * from student where name like 'j%';


查询name以t开头的学生信息。


8.查询表中,name的第二个字母为o的学生信息。
select * from student where name like '_o%';




9.查询表中,name中有o字母的学生信息。
'%o%';


name中包含字母e的。



10.查询表中,学生的信息,按照age降序排序。
降序:从大到小:desc
升序:从小到大:asc


排序:order by 字段名 desc;默认升序




11.查询所有的女同学的信息,按照年龄降序排序。
select * from student where sex ='female' order by age desc;




12.查询男同学的信息,名字中包含m。按照年龄升序排序。
sqlite> select * from student where sex ='male' and name like '%m%' order by age
 asc;




13.查询年龄的最大值,最小值,平均值。
统计函数:
max(字段名):
min();
sum()
avg()
count(*):计数


select max(age),min(age),sum(age),avg(age) from student;


14.查询所有班级的人数。
select count(*) from student;

15.查询班级里男人的人数,女生的人数。
分组:group by 字段名;


按照该字段的取值的种类。
性别:2组
班级号:3组




group by sex;


sex:
male:
female:




classno:
1
2
3


age:
18
19
20
21
22
23
24




select sex, count(*) from student group by sex;
分组之后使用统计函数,结果就是分组后的。数据的条数取决于分组的组数。


16.查询每个班级的人数。并且显示班级号。
sqlite> select classno,count(*) from student group by classno;


17.查询男生的人数,女生的人数,以及男生中的最大年龄,女生中最大年龄。
select sex, count(*),max(age),min(age) from student group by sex;



18.按照班级编号,统计每个班级的人数,并且显示班级人数大于2的班级。
select classno,count(*) from student group by classno having count(*)>2;


分组后再限定条件:having


19.限定查询:limit。,
count()-->总的数据量:118


每页20,共6页。




limit m, n;//跳过m条,查询n条
1页:limit 0,20;
2页:limit 20,20;
3页:limit 40,20;
4页:limit 60,20;
。。。。




总结:
1.Servlet
Html:超文本标记语言。
form表单:
<form action="submit按钮点击后,出发的路径" method="get/post">
<input type="text/passwor/radio/checkbox/file/button/reset/submit/image">
<select>
<option></otption>
</select>
<textarea></textarea>
</form>


按钮:
button,image:点击后无效果。配合js
reset,submit:点击后有事件。


get/post
get:
A:默认的请求方式
B:数据追加在url后边
url?参数名=参数值&参数名=参数值


C:传递的数据量少量。
D:容易乱码
E:数据不安全


post:
A:将要传递数据写给服务端。
B:可以传递大量的数据。
C:数据安全
D:可以传递大量数据。

Servlet:服务端的java程序。(了解原理)
能够处理客户端的请求:继承HttpServlet


doGet(),doPost()


Request:请求对象
Response:响应对象




step1:先设置编码:
request.setCharacterEncoding("");
response.setCharacterEncoding("");
response.setContentType("text/html;charset=..");


step2:接收客户端传递来的数据:
request.getParater("");-->String 


step3:查询数据库:

step4:给予响应:response对象
response.getWriter()--->PrintWriter 
2.SQLite:重点掌握
SQL:
DDL:数据库定义语言:定义数据表的结构
create
alter
drop


DML:数据库操纵语言:操作数据表中的数据:增删改
insert
delete
update


DQL:数据库查询语言:查询
select






增删改查:CRUD
create, read, update, and delete (CRUD) 


建表语句:(重点)
create table 表名 (字段 数据类型 ,字段 数据类型);


主键:修饰一个字段:要求该字段的值不能为空,也不能重复。id
自增:




修改表:(了解)
alter table 表名 add 字段名 数据类型
alter table 表名 rename to 新名;


删除表:重点
drop table 表名;


插入数据:重点
insert into 表名(字段名) values (数值);


删除数据:
delete from 表名 [where 删除条件];


修改数据:
update  表名 set 字段=新值,字段=新值 [where 修改条件];


查询数据:
select 字段名,字段名from 表名 [where 查询条件];


A:关系运算符;>,<,>=,<=,=,!=,<>
B:and or
C:in
D:between and
E:order by 字段 升序(asc)/desc(降序)
F:模糊查询:
like  ''
_:匹配任意1个字符
%:匹配任意0到多个字符


G:分组:
group by  字段;

H:统计函数:
max(),min(),sum(),avg(),count()


I:分组后限定条件:having
J:limit




Http协议:























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值