SQL 随笔(Ⅱ)。。。

今天记记 去重、排序、子查询、外键

先做个表,练习下手感

create  table LOL
(
code int primary key  identity(1,1),
name varchar(50) not null,
sex varchar(50) not null,
age int  not null,
sg  int  not null,
wuqi varchar(50)not null,
dizhi varchar(max)not null,

)

insert into LOL values(。。。。。。。) -------如下截图(图
select*from LOL

select top 3 name,code from LOL where age>=20 select distinct  name from LOL  -------------去重--distinct

select*from LOL order by age asc---升序    --------order by 排序

select*from LOL  order by age desc---降序

select*from LOL where kg<70 order by kg

select*from LOL order by age asc,cm , kg desc ------再不改变第一组排序结果基础上,再排第二次序是排不出来的

-----分组group by列,对那一列进行分组,就只能显示哪一列

select name  fromLOL group by name---对某一列分组,相当于去重显示

--------运算符查询年龄加5岁之后大于23的

select*from LOL where age+5>23

--算数运算符:+-*/%

--比较运算符:> < >= <= !=  !<  !>

--逻辑运算符:ang or   ------or或者

--all any some in not -------all所有的意思,结合一个范围来使用 --in  在什么参数范围之内

select*from LOL where age  in(20,21) --相当于 age=20  or age=21

select*from LOL where age  not in(20,21)

--------查询年龄不在身高是180的人的年龄范围之内的信息

select*from LOL where   cm=180 select*from LOL where  age!=22

--子查询:就是使用查询语句查询一列数据出来,然后作为其他查询的查询条件中的参数来使用

--查询身高不在年龄是22岁的人的身高范围之内的

select*from LOL where age=22---注意是一列信息作为参数

select*from LOL where cm not in (select cm from LOL where age=22)

--名字叫盖伦的人中年龄比code=1的约里克那个人的年龄大三岁的人的信息是

select*from LOL where age-3=(select age from LOL where code=3)and name=‘盖伦‘

--查询年龄不在身高是180的,并且年龄是超过25的范围之内的信息
select*from LOL where age  not in(select age from LOL where sg=180)and (age>25)
--查询来自德玛西亚的,年龄小于22或者身高小于170
select*from LOL where dizhi=‘德玛西亚‘and(age<22  or sg<170)

--外键:受约束的表叫外键表,约束的数据源叫主键表

--要想加外键,首先的有主键表

--要想删主键表数据,必须先删除外键表数据

--作为外键的数据源的列,必须要是一个唯一键(这一列必须是主键或者是unique)

create table teacher

(

tno int primary key identity(1,1) not null,

tname varchar(50)

) ----------------------------------------- 主键表

go

create table student

(

sno int primary key identity(1,1),

sname varchar(50),

tno int references teacher(tno),

cid varchar(20)unique

) ------------------------------------------外键表

insert into student()

时间: 2025-01-13 13:14:37

SQL 随笔(Ⅱ)。。。的相关文章

SQL随笔

定义好一个参数如何去赋值 DECLARE @id INT,@ProvinceName varchar(50) 直接赋值: SET @id=值 通过查询语句赋值 select @ProvinceName = 表字段  from 表 where 条件 循环while 的使用方法 DECLARE @id INTSET @id=1 WHILE @id<值 BEGIN sql语句 SET @[email protected]+1  //循环参数的迭代 END

SQL随笔之维护计划和作业的使用

维护计划,就是指在SqlServer中我们可以自己设定一个时间规则,比如定期的去备份数据,就好比timer一样,和定时器差不多的概念,我是这么理解的,比如你要执行一条sql语句,在一个表中,有些数据是临时的数据,需要每天去清理一下这些临时数据,我们就可以建一个维护计划去完成它. 首先打开SqlServer Management Studio,找到管理目录,里面有个维护计划: 然后右键-新建维护计划: 创建完成之后: 点击类似日历按钮弹出具体的执行时间规则: 我们可以设置执行的时间规则,可以每天或

Sql随笔未完待续

1.insert into test(noimage)select no from Image 在一个表中添加另一个表的数据 2.DataTable dt = SqlHelper.ExecuteDataTable("select * from image inner join test on image.no =test.NoImage");

SQL 随笔

自动生成10位ID DECLARE @num INT DECLARE @strID NVARCHAR(20) SET @strID = '00000000000000000' + cast(@num AS NVARCHAR(10)) SET @strID = RIGHT(@strID, 10) Date的运算 DECLARE @StartDate DATETIME SET @StartDate = dateadd(day, 5, GetDate()) --add day PRINT @Start

sql 随笔 2015-08-07

xls 导入数据库 1 --删除现有数据 2 DELETE FROM dbo.PhoneList 3 4 --插入数据 5 insert into dbo.PhoneList 6 --读取xls数据 7 select RIGHT('0000000000'+CONVERT(VARCHAR,ROW_NUMBER() over(order by [Mobile Phone No_])),10) ,isnull( [Mobile Phone No_],'') as [PhoneNo.], 0 as [E

sql 随笔更新

SELECT DISTINCT(p.`id`), p.`id` , v.`full_name` , CONCAT(LEFT(v.mobile, 7), '****') , DATE_FORMAT(DATE_ADD(v.`visit_time`, INTERVAL 8 HOUR), '%Y-%m-%d %H:%i:%s') , v.`remark` , w.`address_city` , v.`record_person` , v.`consult_country` , v.`first_vis

Mysql之SQL随笔

1.创建数据库 1 create database if not exists shop default character set utf8mb4 default collate utf8mb4_unicode_ci; 原文地址:https://www.cnblogs.com/caohongchang/p/11577385.html

Sql Server 语句随笔

例1 对于两个或更多的销售员的销售点,计算其中所有销售员的总销售目标值和销售员金额. select city,sum(QUOTA),sum(SALESREPS.SALES) from OFFICE,SALESREPS group by CITY having count(*)>=2 例2 (1) 单行insert语句 单行insert语句用于向一关系表中添加一行新数据.其使用格式如下: insert into <表名> (列名列表) values (列值列表) (2) 多行insert语

mysql中sql注入的随笔

当使用如下登录代码时:就会引发sql注入问题 怎么注入呢? 'or 1=1 # 就可以了. 为什么呢? 首先or:在sql中是或者,只要满足前一个或后一个条件即可,只要所以不论你是 'or 1=1 #还是 'or 2=2 #,都可以. #: 是注释的意思,在sql中注释掉后面的密码判断. 所以这一段不用不用密码即可输入成功, 怎么办呢? 在php中,可以有很多方法....就不举例了. <!doctype html> <html lang="ch"> <he