澳门金沙vipsql 随机抽取几条数据的方法 推荐

传说用这个语句管用:select top 5 * from tablename order by newid()
我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序里的时候就不管用了,总是那几条,于是对这个东西进行了一个研究得出另一种方法:
newid() 可以产生如:”49869293-8891-4B31-B88E-A584D9621490”
这样的数据结果,而且每一行产生的都不同,这样的话,我们就可以在查询的时候给结果集里加上这么一个列,比如:
select *,newsid() from 表名
然后我们在给这个结果集排序,因为每次newid()所产生的值都不同,所以如果排序的话,每次当然也都不一样,这样我们就可以随机挑选几条数据了,那我们在从前面加上一个top
语句就变成了: 复制代码 代码如下:select
top 10 *, NewID() as random from 表名 order by random
用这样的方法就可以得到。我们想要结果了。不信的话你可以去试试。

sql语句是和dbms交谈专用的语句,不同dbms都认sql语法

sql语句中字符串用单引号

sql语句是大小写不敏感的,不敏感指的是sql关键字,字符串值还是大小写敏感的

创建表、删除表不仅可以手工完成,还可以执行sql语句完成,在自动化部署、数据导入中用的很多,create
table t_person(id int not null, name nvarchar(50), age int null)、drop
table t_person

简单的insert语句。 insert into t_person(id,name,age) values(1,’Jin’,20)

(*) sql 主要分ddl数据定义语言和dml数据操作语言两类,create table、drop
table,alter table等属于ddl,select、insert、delete、update等属于DML

sql server中两种常用的主键数据类型:int or bigint +
标识列(又称自动增长字段);uniqueidentifier(又称Guid、UUID)

用标识列实现字段自增可以避免并发的问题,不要开发人员控制自增。用标识列的字段在insert的时候不用指定主键的值。将字段的是标识列设为是,一个表只能有一个标识列。

Guid算法是一种可以产生唯一标识的高效算法,它使用网卡mac、地址、纳秒级时间、芯片id码等算出来的,这样保证每次生成的guid永远不会重复,无论是同一个计算机还是不同计算机。在公元3400年以前产生的guid与任何其他产生过的guid都不相同。sql
server中生成guid的函数newid(),.net中生成guid的方法:Guid.NewGuid(),返回的是Guid类型。

int自增字段的优点:占用空间小、无需开发人员干预、易读;缺点:效率低,数据导入导出的时候很痛苦

Guid的优点:效率高、数据导入导出方便,缺点:占用空间大,不易读。

业界主流倾向使用Guid

数据插入insert

insert语句可以省略表名后的列名,但是不推荐

如果插入的行中有些字段的值不确定,那么insert的时候不指定那些列即可。

可以给字段默认值,如果Guid类型主键可以默认值设为newid()就会生产,很少这么做!

主键: insert into person(name,age) values(‘kk’,29);

数据更新update

更新一个列update person set age=20;

澳门金沙vip,更新多个列update perosn set name=’jj’,age=40

更新一部分数据update person set age=20 where name=’kk’;
sql中等于判断用单个=,而不是==

where中还可以使用复杂的逻辑判断update person set age=40 where name=’jj’
or age>30,or相当于c#中的||或者

where中可以使用的其他逻辑运算符:or,and,not,<,>,>=,<=,!=(or
<>)等

数据删除delete

删除表中全部数据:delete from table1

delete只是删除数据,不删除表,drop table是删除表

delete也可以带where条件子句来删除部分数据:delete from table where
name=’tt’