前言
我们都知道,一般搞编程的,基本上都是和一些数据打交道,那么和数据打交道的话,就会联想到什么管理数据,而当我们谈到如何管理数据的时候,就想到了我们的数据库,而在我们平时搞开发中,常用的数据用三种,他们分别是(Oracle,MySQL,SQL),今天我所讲到的就是如何使用SQL。
(1)首先一个创建数据库和创建两个表
--创建数据库
create database user
--选择数据库
use user
创建一个学生信息表
create table StuInfo
(
StuNo varchar(12) primary key,
StuName varchar(12) not null,
StuAge int not null check(StuAge>=0 and StuAge<=100),
StuSex nchar(1) not null check(StuSex = '男' or StuSex = '女') default('男'),
StuTel varchar(15),
StuAddress varchar(12) not null,
ClassName varchar(12) not null
)
创建学生的成绩表
create table Exam
(
ExamNo int primary key identity(1,1),
StuNo varchar(12) foreign key references StuInfo(StuNo),
Written float check(Written >= 0 and Written <= 100),
Lab float check(Lab>=0 and Lab <= 100)
)
表A
create table A
(
Name varchar(12) not null,
Password varchar(12) not null
)
什么插入数据,这种简单的事情就不用我写出来了
(2)内连接
多表之间,有一个相同的字段,就可以查询出两个表中自己想要的内容
select s.StuNo,StuName,StuSex,e.Written,e.Lab from StuInfo s inner join Exam e on s.StuNo = e.StuNo
(3)左连接
返回所有左表比配中的不比配内弄,关键字,outer join外连接关键字,left为左连接关键字
select s.StuNo,StuName,StuSex,e.Written,e.Lab from StuInfo s left outer join Exam e on s.StuNo = e.StuNo
(4)右连接
返回所有右表比配中的不比配内弄,关键字,outer join外连接关键字,right为左连接关键字
select s.StuNo,s.StuName,s.StuSex, e.Written,e.Lab from StuInfo s right outer join Exam e on s.StuNo = e.StuNo
(5)Order by
select s.StuNo,s.StuName,s.StuSex,e.Written,e.Lab from StuInfo s inner join Exam e on s.StuNo = e.StuNo where StuAge>15 order by s.StuAge
(6)全外连接
select s.StuNo,s.StuName,s.StuSex,e.Written,e.Lab from StuInfo s full outer join Exam e on s.StuNo = e.StuNo
(7)交叉连接
简单的理解为两个表的字段乘积,关键字为cross join
select s.StuNo,s.StuName,s.StuSex,e.Written,e.Lab from StuInfo s cross join Exam e
(8)运算符查询
select * from StuInfo s where StuNo = any (select StuNo from Exam e where Written >90 and Lab > 90)
(9)查询某个字段为空
--某个字段为空
select lab from Exam where Lab = ''
--整列数据中的某个字段为空
select * from Exam where Lab = ''
(10)B表数据插入到A表中(注意,两个表的字段数量和属性类型相同的情况下方可实现)
insert into B (Name,Password) select Name,Password from A
(11)未知teach表创建A表(但是创建完A表就包含有teach表的数据,这个就是相当于把一个表的数据了字段复制到另一个表中)
CREATE table A select * from teach
(12)未知A表结构下创建和A表结构相同的B表,且B不能有A表数据(相当于复制A表的字段到B表中)
select top 0 * into C from B
(13)求字段的这列的平均数
select AVG(Written),AVG(Lab) from Exam
(14)求多个字段的平均值
select AVG((Written+Lab) / 2) from Exam
(15某列的最小值
select min(written) from Exam
(16)某列的最大值
select max(written) from Exam
(17)求某列的数量
select count(Lab) from Exam
(18)某行的平均值
--ExamNo = 1就是根据它的ID来求某行的平均值
select AVG((written+lab) /2) from Exam where ExamNo = 1
(19)求多个字段值的总和
select SUM(written+lab) from Exam where ExamNo = 1
(20)创建备份备份表
select * into stuinfo_bakl from stuInfo
(21)删除表中的某条数据
delete student where StuNo = 1
尾言
如果觉得有用的话,就帮我点一个赞吧!