您现在的位置是:主页 > news > 怎样制作静态网站/百度指数电脑端查询
怎样制作静态网站/百度指数电脑端查询
admin2025/5/18 5:58:54【news】
简介怎样制作静态网站,百度指数电脑端查询,网站制作和美工,现在制作网页用什么软件数据库SQL语句(基础用法) 文章目录数据库SQL语句(基础用法)1. SQL数据类型(常用的几个)1.1 varchar(n)1.2 smallint1.3 float1.4 date2. 创建一个数据库2.1 用到的表格2.1.1 英雄表2.1.2 武器表2.1.3 英雄武…
数据库SQL语句(基础用法)
文章目录
- 数据库SQL语句(基础用法)
- 1. SQL数据类型(常用的几个)
- 1.1 varchar(n)
- 1.2 smallint
- 1.3 float
- 1.4 date
- 2. 创建一个数据库
- 2.1 用到的表格
- 2.1.1 英雄表
- 2.1.2 武器表
- 2.1.3 英雄武器契合表
- 2.2 创建一张表格
- 2.2.1 创建英雄表格
- 2.2.2 创建武器表格
- 2.2.3 创建英雄武器契合表格
- 2.3 往表格中插入数据
- 2.3.1 英雄表格添加数据
- 2.3.2 武器表格添加数据
- 2.3.3 英雄武器契合表添加数据
- 3. 数据库的查找(基础)
- 3.1 select语句
- 3.1.1 select 语法
- 3.1.2 distinct关键字
- 3.2 where 子句
- 3.2.1 where子句语法
- 3.2.2 常用的比较运算符
- 3.2.3 常用的逻辑运算符
- 3.3 like关键字
- 3.3.1 作用
- 3.4 order by 关键字
- 3.4.1 order by语法
- 4. 常见的函数
- 4.1 AVG函数
- 4.2 count(_val)函数
- 4.3 max()函数
- 4.4 min()函数
- 4.5 sum()函数
- 4.6 Group by 语句
- 5. 数据库的修改
- 5.1 update
- 5.2 delete
- 5.3 alter table
- 5.3.1 在表格中添加一列
- 5.3.2 在表格中修改列的属性
- 5.3.3 修改列的名字
- 5.3.4 删除列
- 5.3.4 删除列
前言,在学习Sql语句的时候,首先要弄清楚数据库和表格的概念,数据库就像一个一个的仓库,而表格就像仓库里面的一个个集装箱
1. SQL数据类型(常用的几个)
1.1 varchar(n)
字符串类型,长度可变,但是最大不能超过 n(初学万物皆可varchar)
1.2 smallint
精度较低的整数类型,直接当成int类型使用
1.3 float
浮点数类型
1.4 date
存储年,月,日的值,类似于C语言中的结构体或者面向对象中的类
2. 创建一个数据库
2.1 用到的表格
2.1.1 英雄表
2.1.2 武器表
2.1.3 英雄武器契合表
2.2 创建一张表格
语法:
create table table_name
(列名1 + 列的类型, 列名2 + 列的类型,列名3 + 列的类型,……
);
2.2.1 创建英雄表格
我们需要创建一个名为hero
的表格,有上面表格中的五种属性
create table hero
(hid varchar(255), hname varchar(255),Hsex varchar(255), Hcareer varchar(255),Hcamp varchar(255)
)
现在我们创建成功一个空的英雄表格
2.2.2 创建武器表格
我们需要创建一个叫做weapon的表格,有表格中的四种属性
create table weapon
(wid varchar(255),wname varchar(255),wcost smallint,wtype varchar(255)
);
成功创建了一个空的武器表格
2.2.3 创建英雄武器契合表格
create table hero_weapon
(hid varchar(255),wid varchar(255),fit_degree smallint
);
成功创建了一个空的英雄武器契合表格
2.3 往表格中插入数据
语法:
我们在创建了一个空的表格以后,需要在表格上面添加数据
insert into + 表格名字
values('value1', 'value2', 'value3', 'value4')
每个value的值和类型都应该对应表格的属性
2.3.1 英雄表格添加数据
insert into hero
values('1001', '花木兰', '女', '战士', '长城守卫军')
insert into hero
values('1002', '铠', '男', '战士', '长城守卫军')
insert into hero
values('1003', '李白', '男', '刺客', '长安')
insert into hero
values('1004', '西施', '女', '法师', '稷下学院')
insert into hero
values('1005', '黄忠', '男', '射手', '蜀国')
insert into hero
values('1006', '不知火舞', '女', '法师', '东洋')
添加完成数据以后表格的模样如下:
hid hname Hsex Hcareer Hcamp
------ ------------ ------ ------- -----------------
1001 花木兰 女 战士 长城守卫军
1002 铠 男 战士 长城守卫军
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国
1006 不知火舞 女 法师 东洋
2.3.2 武器表格添加数据
INSERT INTO weapon
VALUES('2001', '暗影战斧', 2090, '攻击')
INSERT INTO weapon
VALUES('2002', '不祥征兆', 2180, '防御')
INSERT INTO weapon
VALUES('2003', '回响之杖', 2100, '法术')
INSERT INTO weapon
VALUES('2004', '无尽战刃', 2140, '攻击')
INSERT INTO weapon
VALUES('2005', '极影', 1910, '辅助')
添加完成数据之后表格的模样如下:
wid wname wcost wtype
------ ------------ ------ --------
2001 暗影战斧 2090 攻击
2002 不祥征兆 2180 防御
2003 回响之杖 2100 法术
2004 无尽战刃 2140 攻击
2005 极影 1910 辅助
2.3.3 英雄武器契合表添加数据
INSERT INTO hero_weapon
VALUES('1001', '2001', 95)
INSERT INTO hero_weapon
VALUES('1001', '2002', 80)
INSERT INTO hero_weapon
VALUES('1002', '2001', 90)
INSERT INTO hero_weapon
VALUES('1003', '2004', 70)
INSERT INTO hero_weapon
VALUES('1004', '2003', 80)
INSERT INTO hero_weapon
VALUES('1005', '2004', 99)
INSERT INTO hero_weapon
VALUES('1006', '2003', 100)
添加完成之后表格的数据如下:
hid wid fit_degree
------ ------ ------------
1001 2001 95
1001 2002 80
1002 2001 90
1003 2004 70
1004 2003 80
1005 2004 99
1006 2003 100
3. 数据库的查找(基础)
3.1 select语句
select 语句用来在数据库中挑选数据,挑选了之后,结果会被存在一张临时的表格中,这张表格叫做结果集
3.1.1 select 语法
select 列名 + 列名 + ……
from 表名
- 选择在表格中需要查找的列,如:请查找表格中的英雄列,我们只需要在英雄表中把英雄列挑出来
select hname from hero
查询结果如下:
hname
--------------
花木兰
铠
李白
西施
黄忠
不知火舞
- 当我们需要查找英雄的名称和职业的时候
select hname, hcareer from hero
查询结果如下:
hname hcareer
------------ ---------
花木兰 战士
铠 战士
李白 刺客
西施 法师
黄忠 射手
不知火舞 法师
- 当需要获取整张表格的时候,使用 * 号代表所有的列
select * from hero
查询结果如下:
hid hname Hsex Hcareer Hcamp
------ ------------ ------ ------- -----------------
1001 花木兰 女 战士 长城守卫军
1002 铠 男 战士 长城守卫军
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国
1006 不知火舞 女 法师 东洋
3.1.2 distinct关键字
distinct用于去重,当我们对英雄武器契合表进行查询的时候
select hid from hero_weapon
查询结果如下:
hid
--------
1001
1001
1002
1003
1004
1005
1006
我们发现会有重复的号码出现,为了让每个id只出现一次,我们需要使用distinct关键字
select distinct hid from hero_weapon
查询结果如下:
hid
--------
1001
1002
1003
1004
1005
1006
重复项都被去掉了
3.2 where 子句
3.2.1 where子句语法
where用来提取满足条件的记录
语法:
select 列 + 列 + ……
from 表名
where 记录需要满足的条件
- 查找长城守卫军的英雄名称
select hname
from hero
where hcamp = '长城守卫军'
查询结果为:
hname
-----------
花木兰
铠
- 查找武器表格中价格低于2000的武器信息
select *
from weapon
where wcost < 2000
查询结果为:
wid wname wcost wtype
------ ------ ------ --------
2005 极影 1910 辅助
3.2.2 常用的比较运算符
- = (等于)
- <> 或者 != (不等于)
- > (大于)
- < (小于)
- >= (大于等于)
- <= (小于等于)
- between (在某个范围内)
- like (搜索模糊的对象)
- in (指特定的范围)
3.2.3 常用的逻辑运算符
- not (非)
- or (或者)
- and (并且)
例1:查找不是长城守卫军的英雄信息
select *
from hero
where hcamp != '长城守卫军'
查找结果如下:
hid hname Hsex Hcareer Hcamp
------ ------------ ------ ------- --------------
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国
1006 不知火舞 女 法师 东洋
例2:查找蜀国和东洋的英雄信息
#第一种写法
select *
from hero
where hcamp = '蜀国' or hcamp = '东洋'
# 第二种写法
select *
from hero
where hcamp in('蜀国', '东洋')
查找结果如下:
hid hname Hsex Hcareer Hcamp
------ ------------ ------ ------- --------
1005 黄忠 男 射手 蜀国
1006 不知火舞 女 法师 东洋
例3:查找长城守卫军的并且是女的英雄信息
select *
from hero
where hcamp = '长城守卫军' and hsex = '女'
查找结果如下:
hid hname Hsex Hcareer Hcamp
------ --------- ------ ------- -----------------
1001 花木兰 女 战士 长城守卫军
3.3 like关键字
3.3.1 作用
用来进行模糊查找,通常和通配符一起使用
- %号,能够替换多个字符
- _号,能够替换一个字符
例1 查找姓花的英雄的信息
select *
from hero
where hname like '花%'
查找结果如下:
hid hname Hsex Hcareer Hcamp
------ --------- ------ ------- -----------------
1001 花木兰 女 战士 长城守卫军
例2 查找名字是两个字的英雄
select *
from hero
where hname like '__'
查找结果如下:
hid hname Hsex Hcareer Hcamp
------ ------ ------ ------- --------------
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国
3.4 order by 关键字
order by 用来对结果集按照一个列或者多个列排序,默认按照升序进行排序,如果想要进行降序排序,需要使用desc关键字
3.4.1 order by语法
select *
from 表名
order by 列1, 列2…… ASC|DESC
例1:将武器表格按照价格升序排序
select *
from weapon
order by wcost
程序输出为:
wid wname wcost wtype
------ ------------ ------ --------
2005 极影 1910 辅助
2001 暗影战斧 2090 攻击
2003 回响之杖 2100 法术
2004 无尽战刃 2140 攻击
2002 不祥征兆 2180 防御
例2:将武器按照价格降序排序
select *
from weapon
order by wcost desc
程序输出为:
wid wname wcost wtype
------ ------------ ------ --------
2002 不祥征兆 2180 防御
2004 无尽战刃 2140 攻击
2003 回响之杖 2100 法术
2001 暗影战斧 2090 攻击
2005 极影 1910 辅助
4. 常见的函数
将一组逻辑语句封装在函数中,让我们的查询变得简单明了,在使用函数的时候,我们需要关系函数功能是什么,以及函数需要的参数
4.1 AVG函数
语法:
select AVG(列名) from 表格
返回一列的平均值
- 查询武器表格中所有武器价格的平均值
select avg(wcost) from weapon
查询结果为:
avg(wcost)
------------2084.0000
4.2 count(_val)函数
语法:
select count(列名) from 表格
返回符合条件的列数
- 返回英雄表格中长城守卫军的人数
select count(hcamp)
from hero
where hcamp = '长城守卫军'
查询结果为:
count(hcamp)
--------------2
- 返回一有多少个英雄在英雄表格中
select count(hid)
from hero
查询结果为:
count(hid)
------------6
4.3 max()函数
返回一列中的最大值
语法:
select max(列名) from 表名
- 查询武器表格中价格最贵的武器价格
select max( wcost) from weapon
查询结果为:
max(wcost)
------------2180
4.4 min()函数
返回一列中最小的值
语法:
select min(列名) from 表名
- 查询武器表格中价格最便宜的武器价格
select min(wcost) from weapon
查询结果为:
min(wcost)
------------1910
4.5 sum()函数
返回一列数值的总和
语法:
select sum(列名) from 表名
- 查询购买所有的武器一共需要花费多少钱
select sum(wcost) from weapon
查询结果为:
sum(wcost)
------------10420
4.6 Group by 语句
分组语句,优先级很高,常常和函数一起使用
语法:
select + 列名 + ……
from 表格
group by 列名1 + ……
- 统计英雄表格中每个阵营有多少人
select hcamp, count(hcamp)
from hero
group by hcamp
#首先按照阵营分组
#然后count()函数再统计每个分组Hcamp有多少个人
查询结果为
hcamp 人数
--------------- --------
长城守卫军 2
长安 1
稷下学院 1
蜀国 1
东洋 1
5. 数据库的修改
5.1 update
update 和 alter 的区别
update是用来针对表格中存的数据,alter是针对表格本身的
语法:
update 表名
set 列名 = 值
where 列名 = 值
- 把花木兰改成从战士改成坦克
update hero
set hcareer = '坦克'
where hname = '花木兰'
如果不加where条件判断,则hcarrer列会被全部修改成坦克
查询结果为:
hid hname Hsex Hcareer Hcamp
------ ------------ ------ ------- -----------------
1001 花木兰 女 坦克 长城守卫军
1002 铠 男 战士 长城守卫军
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国
1006 不知火舞 女 法师 东洋
5.2 delete
delete用来删除数据库记录中的元组(行)
语法
delete from 表名
where 列名 = 值
- 删除表格中的英雄不知火舞
delete from hero
where hname = '不知火舞'
查询结果如下:
hid hname Hsex Hcareer Hcamp
------ --------- ------ ------- -----------------
1001 花木兰 女 坦克 长城守卫军
1002 铠 男 战士 长城守卫军
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国
5.3 alter table
alter table 用来在已经拥有的表格中修改,增加,删除列
5.3.1 在表格中添加一列
语法:
alter table 表名
add 列名 + 数据类型
- 在英雄表格中添加属性——英雄强度梯度(T)
alter table hero
add T varchar(255)
查询结果如下:
hid hname Hsex Hcareer Hcamp T
------ --------- ------ ------- --------------- --------
1001 花木兰 女 坦克 长城守卫军 (NULL)
1002 铠 男 战士 长城守卫军 (NULL)
1003 李白 男 刺客 长安 (NULL)
1004 西施 女 法师 稷下学院 (NULL)
1005 黄忠 男 射手 蜀国 (NULL)
5.3.2 在表格中修改列的属性
语法:
alter table 表名
modify(alter) column + 列名 + 新数据类型
MySQL使用modify
SQL server使用alter
- 把英雄强度梯度改成smallint类型
alter table hero
modify column T smallint
5.3.3 修改列的名字
语法:
alter table 表名
rename column + 老列名 to 新列名
- 把英雄强度梯度的名字T改成 gradient
alter table hero
rename column T to gardient
查询结果为
hid hname Hsex Hcareer Hcamp gardient
------ --------- ------ ------- --------------- --------
1001 花木兰 女 坦克 长城守卫军 (NULL)
1002 铠 男 战士 长城守卫军 (NULL)
1003 李白 男 刺客 长安 (NULL)
1004 西施 女 法师 稷下学院 (NULL)
1005 黄忠 男 射手 蜀国 (NULL)
5.3.4 删除列
语法:
alter table 表名
drop column 列名
- 删除英雄强度梯度列
alter table hero
drop column gardient
查询结果为:
hid hname Hsex Hcareer Hcamp
------ --------- ------ ------- -----------------
1001 花木兰 女 坦克 长城守卫军
1002 铠 男 战士 长城守卫军
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国
5.3.4 删除列
语法:
alter table 表名
drop column 列名
- 删除英雄强度梯度列
alter table hero
drop column gardient
查询结果为:
hid hname Hsex Hcareer Hcamp
------ --------- ------ ------- -----------------
1001 花木兰 女 坦克 长城守卫军
1002 铠 男 战士 长城守卫军
1003 李白 男 刺客 长安
1004 西施 女 法师 稷下学院
1005 黄忠 男 射手 蜀国