MySql常用SQL增删改查(精)
- 格式:doc
- 大小:435.00 KB
- 文档页数:12
MySQL数据库表的数据插⼊、修改、删除、查询操作及实例应⽤⼀、MySQL数据库表的数据插⼊、修改、删除和查询1CREATE DATABASE db0504;23USE db0504;45CREATE TABLE student (6 sno VARCHAR (10) NOT NULL UNIQUE PRIMARY KEY,7 sname VARCHAR (20) NOT NULL,8 ssex enum ('男', '⼥') NOT NULL DEFAULT'男',9 sbirth date,10 sclass VARCHAR (10),11 zno CHAR (4)12 ) DEFAULT charset = gb2312;13 #添加操作14INSERT INTO student15VALUES('2012010713','丁暖','⼥','1993-9-9','物联⽹12-1','z002');1617INSERT INTO student (sno,sname,ssex,sbirth,sclass,zno)18VALUES('2011010503','孔超','男','1993-9-19','⾃动化11-1','z006');1920INSERT INTO student (sno, sname, ssex, zno)21VALUES('2011010521','韩梅','⼥','z006');2223INSERT INTO student (sname, zno, sno)24VALUES('韩梅2','z006','2011010522');2526INSERT INTO student VALUES27 ('2011010501','孔超1','男','1993-9-19','⾃动化11-1','z006');28 ('2011010505','孔超2','男','1993-9-19','⾃动化11-1','z006');29 ('2011010504','孔超3','男','1993-9-19','⾃动化11-1','z006');30 ('2011010505','孔超4','男','1993-9-19','⾃动化11-1','z006');31 #修改操作32UPDATE student33SET sname ='张三',sbirth ='1993-6-19'34WHERE sname ='丁暖';3536UPDATE student SET zno =LEFT (zno, 3);37 #删除操作38delete from student39where sname='张三';4042 #查询操作43SELECT*FROM student;#查询student表的所有记录44SELECT sno,sname,ssex,sbirth FROM student;#查询部分字段信息45SELECT*FROM student WHERE age BETWEEN25AND30;4647 #清空表操作48truncate student;#⾼效49delete from student;操作SQL语法格式:插⼊:insert修改:update删除:delete查询:select⼆、设计型实验三1.创建表1CREATE DATABASE homework;23USE homework;45CREATE TABLE student (6 Num INT (10) NOT NULL UNIQUE PRIMARY KEY,7 name VARCHAR(20) NOT NULL,8 Sex VARCHAR(4) NOT NULL,9 birthday DATETIME,10 bumen VARCHAR(20) NOT NULL,11 address VARCHAR(50)12 ) DEFAULT charset = gb2312;1314CREATE TABLE score (15 Id INT(10) NOT NULL UNIQUE PRIMARY KEY,16 C_name VARCHAR(20),17 Stu_id INT(10) NOT NULL,18 grade INT(10),19CONSTRAINT score_fk FOREIGN KEY(Stu_id) REFERENCES student(Num)20 ) DEFAULT charset = gb2312;2122INSERT INTO student VALUES23 ('901','张军','男','1985-1-1','计算机系','北京市海淀区'),24 ('902','张超','男','1986-2-2','中⽂系','北京市昌平区'),25 ('903','张美','⼥','1990-2-1','中⽂系','湖南省永州市'),26 ('904','李五⼀','男','1990-2-3','英语系','辽宁省⾩新市'),27 ('905','王芳','⼥','1991-4-6','英语系','福建省厦门市'),28 ('906','王桂','男','1988-6-7','计算机系','湖南省衡阳市');2930INSERT INTO score VALUES31 (1001,'计算机','901','98'),32 (1002,'英语','901','80'),33 (1003,'计算机','902','65'),34 (1004,'中⽂','902','88'),35 (1005,'中⽂','903','95'),36 (1006,'计算机','904','70'),37 (1007,'英语','904','92'),38 (1008,'英语','905','92'),39 (1009,'计算机','906','90'),40 (1010,'英语','906','85');2.查询student表的操作#查询student表的所有记录SELECT*FROM student;SELECT Num,name,Sex,birthday,bumen,address FROM student;#查询student表的第2条到第4条记录SELECT Num,name,Sex,birthday,bumen,address FROM student LIMIT 1,3;#从student表中查询所有学⽣的学号、姓名和院系的信息SELECT Num,name,bumen FROM student;#查询计算机系和英语系学⽣的信息SELECT*FROM student WHERE bumen IN('计算机系','英语系');SELECT*FROM student WHERE bumen='计算机系'OR bumen='英语系';#从student表中查询年龄为18-22岁学⽣的信息ALTER TABLE student ADD age INT(4);ALTER TABLE student MODIFY age INT(4) AFTER Sex;UPDATE student SET age=24WHERE Num=901;UPDATE student SET age=23WHERE Num=902;UPDATE student SET age=19WHERE Num=903;UPDATE student SET age=19WHERE Num=904;UPDATE student SET age=18WHERE Num=905;UPDATE student SET age=21WHERE Num=906;SELECT*FROM student WHERE age BETWEEN18AND22;SELECT*FROM student WHERE age>=18AND age<=22;#从student表中查询每个院系有多少⼈,为统计的⼈数列取别名sum_of_bumenSELECT bumen,COUNT(bumen) AS sum_of_bumen FROM student GROUP BY bumen;3.两表综合查询#从score表中查询每个科⽬的最⾼分SELECT C_name,MAX(grade) FROM score GROUP BY C_name;#查询李五⼀的考试科⽬(C_name)和考试成绩(grade)select C_name,grade from student left join score on student.Num=score.Stu_id where name='李五⼀';#⽤连接查询的⽅式查询所有学⽣的信息和考试信息select*from student left join score on student.Num=score.Stu_id;#计算每个学⽣的总成绩(需显⽰学⽣姓名)select name '姓名',SUM(grade) '总成绩'from student left join score on student.Num=score.Stu_id group by name;#计算每个考试科⽬的平均成绩select C_name '考试科⽬',AVG(grade) '平均成绩'from student left join score on student.Num=score.Stu_id group by C_name; #查询计算机成绩低于95分的学⽣信息select*from student left join score on student.Num=score.Stu_id where grade<95AND C_name='计算机';#将计算机成绩按从⾼到低排序select grade '计算机成绩'from score where C_name='计算机'order by grade desc;#asc升序,desc降序#从student表和score表中查询学⽣的学号,然后合并查询结果select Num '学号'from student union select Stu_id from score;#查询姓张或者姓王的同学的姓名、院系、考试科⽬和成绩select name,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where name like'张%'union select name,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where name like'王%';#查询都是湖南的学⽣的姓名、年龄、院系、考试科⽬和成绩select name,age,bumen,C_name,grade from student left join score on student.Num=score.Stu_id where address like'湖南%';这个查询同时参加计算机和英语考试的学⽣信息难了我好久,下⾯提供三种做法:#查询同时参加计算机和英语考试的学⽣的信息做法⼀select*from student where Num in (select Stu_id from score where C_name ='计算机'and Stu_id in(select Stu_id from score where C_name ='英语'));#查询同时参加计算机和英语考试的学⽣的信息做法⼆SELECT a.*FROM student a,score b,score c WHERE a.Num=b.Stu_id AND b.C_name='计算机'AND a.Num=c.Stu_id AND c.C_name='英语';#查询同时参加计算机和英语考试的学⽣的信息做法三SELECT*FROM student WHERE Num =ANY( SELECT Stu_id FROM score WHERE Stu_id IN (SELECT Stu_id FROM score WHERE C_name='计算机') AND C_name='英语');。
常见SQL语句使⽤增删改查⼀、常见的增删改查(⼀)、查:1、SELECT 列名称 FROM 表名称,其中列名可以是多个,中间⽤⾖号分开,如SELECT LastName,FirstName FROM Persons;2、SELECT * FROM 表名称,表⽰查找表中所有的内容,星号(*)是选取所有列的快捷⽅式;3、⽤where 限定搜索范围,SELECT 列名称 FROM 表名称 WHERE 列运算符值,其中,运算符包括操作符描述= 等于<> 不等于> ⼤于< ⼩于>= ⼤于等于<= ⼩于等于BETWEEN 在某个范围内LIKE 搜索某种模式注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。
如:SELECT * FROM Persons WHERE City='Beijing'4、以下说说上⾯的⼀个运算符likeLIKE 操作符⽤于在 WHERE ⼦句中搜索列中的指定模式。
SELECT column_name(s)FROM table_name WHERE column_name LIKE pattern例如:SELECT * FROM Persons WHERE City LIKE 'N%'SELECT * FROM Persons WHERE City LIKE '%g'SELECT * FROM Persons WHERE City LIKE '%lon%'在以上的三个例⼦中,都有⼀个符号“%”,"%" 可⽤于定义通配符(模式中缺少的字母)。
对于第⼀个例⼦,可以理解为查找City列中的名字中⼀定要以N开头的,后⾯的字母是什么,不⽤管;同理,第⼆个例⼦,是搜索City列中的名字中⼀定要以g结尾的城市,第三个例⼦,则是查找City列中的名字中名字存在lon的城市。
SQL语句的添加、删除、修改添加、删除、修改使用db.Execute(Sql命令执行操作(一Select 语句A.普通查询1. 查询全部的行和列select * from users2. 查询部分的行并用as命名列(as可用空格代替)select UserName as用户名,NickName 密码,sex from users where sex = 0select UserName,NickName,sex from users where sex <> 03. 查询空行i. select UserName from users where sex is nu II;ii. select UserName from users where sex ="";4. 使用常量列select UserName as用户名,"中北大学"as "学校"from users;5. 限制固定行数select UserId ,UserName a用户名from users limit 2,4;6. 升序排列降序排列按照多列排序i. select * from users where Height >178 order by age asc;ii. select * from users where Height >178 order by age desc;iii. select UserName as用户名,Height 身高,Age as 年龄from users where Age>20 orderby Height asc, Age desc;7. 随机查询前20条数据Select * from users order by rand ( limit 20;8. 关键字顺序:Where ---- group by——having --- o rder byB.高级查询:1. 模糊查询——likeselect SName aS姓名from Students where Sname like 张% ;'2. 模糊查询——IS NULLselect Sname as生名,SAddress as地址form Students where SAddress is null3. 模糊查询 --- betwee nselect Stude ntld,Score from Score where Score betwee n 60 and 804. 模糊查询——inselect Sname a学员姓名,SAddress as地址from Students where SAddress in(北京',''广州’上海’;SELECT • r.'fytd.SrjInij FROM :砒比WHERE lypa > "bunna»,SELECT SfSCQrtl 献* 甲场]£■From Scon WHERE Scort >■ 60 SELECT AS 平均虜章一蘭&X I S EDT*)AS■■分一MIU AS From Scot・WHERE Scan k>6C-C.聚合函数SELECT COUNT f(di5E9nict]|idl}| AS AH Aft From frcoirvWHERE Scm BO WthMfieM*D.分组查询a分组查询—— GROUP BYSELEC CountlD. AVGl£cc<t) ASFROM Scora GROUP OV CourulDCOurMd►137L29托£b分组查询---- 多列分组SELECT SlvdtndD AS Goun«4D AS 冏*iM试咖Zr平均畅FROM Scon QRQUP ST S urU^tlD Co-- ",c分组查询——HAVINGSELECT SiutT«ni>0 AS 富员■专,Covn«ED AS 内■■茁Cc*uf»IDd分组查询总结i. where字句从数据源中去掉不符合其搜索条件的数据ii. group by字句搜集数据航到各个组中iii. 统计函数为各个组计算统计值iv. hav ing字句去掉不符合其搜索条件的各组数据行v. 使用group by时,select后面出现的内容要么为聚合函数,要么为group by后面出现的内容vi. 关键字的先后顺序:where ------ group by ------ h avi ng ------ o rder byE.多表连接查询分类:内连接(inner join):(等值连接、内连接)只返回两个表中连结字段相等的行外连接:1左外连接(left join )返回包括左表中的所有记录和右表中连结字段相等的记录2右连接(right join ):返回包括右表中的所有记录和左表中连结字段相等的记录。
Mysql中⽤SQL增加、删除、修改(包括字段长度注释字段名)总结#新增⼀个字段alter table表名add COLUMN字段名类型长度DEFAULT NULL COMMENT '注释内容';#例如:alter table device_log_run_operation add COLUMN parser_status VARCHAR(4) DEFAULT NULL COMMENT '解析⽂件状态,0:解析成功;1:解析失败;';#批量新增字段,⽅法⼀#事务开始begin;alter table device_log_run_operation add COLUMN title VARCHAR(500) DEFAULT NULL COMMENT '⽇志标题';alter table device_log_run_operation add COLUMN remote_addr VARCHAR(255) NOT NULL COMMENT '操作ip地址';commit;#批量新增字段,提交事务,事务结束#批量新增字段,⽅法⼆alter table表名add (字段名1 类型(长度),字段名2 类型(长度),字段名3 类型(长度));#例如:alter table device_log_run_operationadd (status int(11) DEFAULT NULL COMMENT '状态:0-成功;1-失败',remote_addrss VARCHAR(255) NOT NULL COMMENT '操作的ip地址',insert_times datetime DEFAULT NULL COMMENT '创建时间');#为表添加注释ALTER TABLE表名 COMMENT'表注释内容';ALTER TABLE device_files_info COMMENT'设备运⾏⽂件';#修改字段的长度/新增注释alter table表名 modify column字段名类型长度 COMMENT '字段注释内容';#例如:alter table device_log_run_operation modify column title varchar(500) COMMENT '标题';#批量修改字段名称alter table表名change 修改前字段名修改后字段名称int(11) not null,change 修改前字段名修改后字段名称int(11) not null#例如:alter table device_log_run_operationchange remote_addrss opeartor_ip VARCHAR(255) DEFAULT NULL COMMENT '操作的ip地址',change insert_time create_time datetime DEFAULT NULL COMMENT '创建时间'#删除⼀个字段alter table表名DROP COLUMN字段名;alter table device_log_run_operation DROP COLUMN status ;原⽂:https:///m0_37721946/article/details/82414501。
数据库增删改查sql语句1,创建数据库Create database 数据库名CREATE DATABASE user2,删除数据库Drop database 数据库名DROP DATABASE user3,创建表Create table 表名CREATE TABLE human (humId INT(10 PRIMARY KEY,humName VARCHAR(20 NOT NULL,humOld INT(10 ,humBirthDate DATETIME NOT NULL,humincome INT(104,删除表Drop table 表名DROP TABLE human5,插入单行数据Insert into 表名(字段名,字段名1,字段名2)value (字段,字段1,字段2)INSERT INTO humman (humId,humName,humOld,humBirthDate,humincomeVALUE(1,'lisi',22,'2001-10-11',206,插入多行数据INSERT INTO humman (humId,humName,humOld,humBirthDate,humincomeSELECT(可以写成select a,b,c from tableA where a=1)4,'mazi',22,'2005-05-06',10UNION ALL (去掉all 插入时候不会插入相同数据SELECT(可以写成select a,b,c from tableB where a=1)3,'wanger',20,'2008-10-06',257,删除数据Delete from 表名 where 数据id=数据id值Delete from human where humId=humId8,修改数据Update 表名 set 列名=新值 where 数据id=数据id值UPDATE humman SET humName='张三' WHERE humId=1修改多个数据时候,在set 后面进行循环9,查看表全部记录Select * from 表名Select * from human10,查询从第a个数据到第b个数据全部记录Select * from 表名 where 列id>a,列id <bSELECT * FROM humman WHERE humId>1 AND humId<5(从第二个到第四个)11,分页查询(从a条到b条记录,a从0开始记录)Select * from 表名limit a,bSELECT * FROM humman LIMIT 1,412,多表连接查询SELECTa.`humName`,c.`sex`,b.`education`FROMhuman aLEFT JOIN education b ON a.humEducation=Id LEFT JOIN sex c ON a.`humSex`=c.`sexId`。
MySQL之增删改查1、“增”——添加数据1.1 为表中所有字段添加数据1.1.1 INSERT 语句中指定所有字段名语法:INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…);举例:INSERT INTO student(id,name,grade) VALUES(1,'zhangshan',98);使⽤SELECT * FROM student;命令查看结果为:表⽰数据已经成功插⼊。
1.1.2 INSERT语句中不指定字段名若不指定字段名,则添加的值的顺序应和字段在表中的顺序完全⼀致。
语法:INSERT INTO 表名 VALUES(值11,值2,…);举例:INSERT INTO student VALUES (2,'lisi',62);使⽤SELECT * FROM student;命令查看结果为:1.2 为表的指定字段添加数据为指定字段添加数据,即只向部分字段添加值,⽽其他字段的值为表定义时的默认值。
语法:INSERT INTO 表名(字段1,字段2,…) VALUES(值1,值2,…)举例:INSERT INTO student(id,name) VALUES(3,'wangwu');使⽤SELECT * FROM student;命令查看结果为:从结果中可以看出,新记录的grade字段值为NULL,是因为添加时为指明grade的值,系统会⾃动添加默认值。
1.3 INSERT语句的其他写法语法:INSERT INTO 表名 SET 字段名1=值1[,字段名2=值2,…]举例:INSERT INTO student SET id=4,name='zhaoliu',grade=72;使⽤SELECT * FROM student;命令查看结果为:1.4 同时添加多条数据语法:INSERT INTO 表名[(字段名1,字段名2,…)] VALUES (值1,值2,…),(值1,值2,…), … (值1,值2,…)举例:INSERT INTO student VALUES (5,‘lilei’,99), (6,'hanmeimei',87), (8,'poly',76);使⽤SELECT * FROM student;命令查看结果为:2、“删”——删除数据语法:DELETE FROM 表名 [WHERE 条件表达式2.1 删除部分数据即删除指定的部分数据,需要使⽤WHERE⼦句来指定删除记录的条件。
SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。
T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。
SQL的分类:(1):数据定义语言,DDL用来创建数据库和数据库中的各种对象数据库中的对象包括:表、视图、索引、存储过程、触发器DDL常用的命令包括:create、alter、drop(2):数据操纵语言,DML可以完成对数据库中数据的查询、更新、删除、插入的功能DML常用的命令包括:select、update、delete、insert(3)数据控制语言,DCLDCL常用的命令包括:grant、revoke、deny(4)数据类型1、数字数据类型a、整型数据类型:bigint、int、smallint、tinyintb、浮点数据类型:float、realc、固定精度数据类型:decimal、numericd、货币数据类型:money、smallmoney将数据格式转换成字符串方法:STR(ID);---ID为数据类型,STR(ID)为字符串2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext区别char和varchar数据类型:char数据类型是存放固定长度的字符Varchar数据类型是存放动态长度的字符char(14),实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格1、insert语句:insert语句是属于SQL语言中的DML作用:为表插入数据你向一个表中插入一条新记录,但有一个字段没有提供数据。
在这种情况下,有下面的四种可能:1、如果该字段有一个缺省值(默认值),该值会被使用。
2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。
Mysql-Sql增删改查1、查询-- 查询select * from user注释快捷键:ctrl+/2、创建表-- 格式create table 表名( 字段名类型约束, 字段名类型约束)-- 举例create table test3( id int unsigned primary key auto_increment, name varchar(5), age int unsigned, height decimal(5,2))int unsigned:int类型、⽆符号primary key:主键auto_increment:⾃动递增decimal:⼩数点类型,长度为5,⼩数点后⾯2位3、删除表-- 格式drop table 表名drop table if exists 表名if exists:如果存在则删除,不存在也不报错-- 举例drop table if exists test3;create table test3(id int unsigned primary key auto_increment,name varchar(5),age int unsigned,height decimal(5,2))4、增加数据-- 格式1 给所有字段设置数据insert into 表名 values(...)-- 举例insert into test3 values(0,'阿三',18,160.5)主键是⾃动递增的,需要⽤0、default、null进⾏占位-- 格式2 给部分字段设置数据insert into test3(name,age) values('⼩A',11)-- 格式3 插⼊多⾏的数据insert into test3(name,age) values('a',10),('b',11),('c',12)5、修改数据-- 格式update 表名 set 列1=值1,列2=值2 where 条件-- 举例update test3 set name='阿四',age=11 where name='阿三'5、删除数据-- 格式delete from 表名 where 条件-- 举例delete from test3 where id=26、逻辑删除给要删除的数据打上⼀个删除标记,在逻辑上是数据是被删除的,但数据本⾝依然存在(这⾏记录还是存在的)为数据增加字段为:isdelete,1与0代表删除与不删除-- 格式update test3 set isdelete=1update test3 set isdelete=0 where id = 1。
SQL语句,数据库增加、删除、修改、查询1. 查询表中的全部数据select * from table;2. 查询某⼏列数据select column1, column2 from table;3. 查询某⼀列不同值select distinct column from table;4. 过滤筛选根据某⼀列的值查询select * from table1 where colume1='XXX';范围查找select * from table1 where colume1 > 2000 and colume1 < 3000;满⾜不包含条件的值select * from table1 where not colume1 > 1500;空值判断 is nullselect * from table1 where colume1 is null;between and(包含上下限)select * from table where colume between 1500 and 3000;In 查询列中等于某⼀项的值select * from table1 where colume1 in (100,200,500);模糊查询select * from table1 where colume1 like 'M%';#M 为要查询内容中的模糊信息。
#% 表⽰多个字值,_ 下划线表⽰⼀个字符;#M% : 为能配符,正则表达式,表⽰的意思为模糊查询信息为 M 开头的。
#%M% : 表⽰查询包含M的所有内容。
#%M_ : 表⽰查询以M在倒数第⼆位的所有内容。
5. AND 和 OR如果第⼀个条件和第⼆个条件都成⽴,则 AND 运算符显⽰⼀条记录。
如果第⼀个条件和第⼆个条件中只要有⼀个成⽴,则 OR 运算符显⽰⼀条记录。
6. ORDER BYORDER BY 关键字默认按照升序对记录进⾏排序。
SQL语句的添加、删除、修改添加、删除、修改使用db.Execute(Sql命令执行操作(一 Select语句A. 普通查询1. 查询全部的行和列select * from users2. 查询部分的行并用as命名列(as可用空格代替)select UserName as 用户名,NickName 密码,sex from users where sex = 0select UserName,NickName,sex from users where sex <> 03. 查询空行i. select UserName from users where sex is null;ii. select UserName from users where sex = "";4. 使用常量列select UserName as 用户名,"中北大学" as "学校" from users;5. 限制固定行数select UserId ,UserName as 用户名 from users limit 2,4;6. 升序排列降序排列按照多列排序i. select * from users where Height >178 order by age asc;ii. select * from users where Height >178 order by age desc;iii. select UserName as 用户名,Height 身高,Age as 年龄 from users where Age>20 order by Height asc, Age desc;7. 随机查询前20条数据Select * from users order by rand ( limit 20;8. 关键字顺序:Where------group by-----having-----order byB. 高级查询:1. 模糊查询——likeselect SName as 姓名from Students where Sname like ‘张%’;2. 模糊查询——IS NULLselect Sname as 姓名,SAddress as 地址 form Students where SAddress is null3. 模糊查询——betweenselect StudentId,Score from Score where Score between 60 and 804. 模糊查询——inselect Sname as 学员姓名,SAddress as 地址from Students where SAddress in(‘北京’,’广州’,’上海’;C. 聚合函数D. 分组查询a 分组查询——GROUP BYb 分组查询——多列分组c 分组查询——HAVINGd 分组查询总结i. where字句从数据源中去掉不符合其搜索条件的数据ii. group by 字句搜集数据航到各个组中iii. 统计函数为各个组计算统计值iv. having 字句去掉不符合其搜索条件的各组数据行v. 使用group by 时,select后面出现的内容要么为聚合函数,要么为group by 后面出现的内容vi. 关键字的先后顺序:where——group by——having——order byE. 多表连接查询分类:内连接(inner join):(等值连接、内连接)只返回两个表中连结字段相等的行外连接:1 左外连接(left join)返回包括左表中的所有记录和右表中连结字段相等的记录2 右连接(right join):返回包括右表中的所有记录和左表中连结字段相等的记录。
F. 子查询在某些特定的业务需求下,当进行查询的时候,需要的条件是另一个select语句的结果,这个时候,就要用到子查询。
用于子查询的关键字包括:in、not in、=、!=、exists、not exists…1. 子查询在where语句中的一般用法:2. 子查询——in3. 子查询——not in4. 子查询——exists5. 子查询——not exists6. 子查询——from中子查询7. 子查询——any、in、someany意思任意一个,即大于任意一个即可,注意与all的区别8. 子查询——ALLall意思所有的值,注意与any的区别not in 是ALL的别名9. 补充:Sql = "Select Distinct 字段名 From 数据表"Distinct函数,查询数据库存表内不重复的记录Sql = "Select Count(* From 数据表 where 字段名1>#18:0:0#and 字段名1< #19:00# "count函数,查询数库表内有多少条记录,“字段名1”是指同一字段例:set rs=conn.execute("select count(id as idnum from news"response.write rs("idnum"sql="select * from 数据表 where 字段名 between 值1 and 值2"Sql="select * from 数据表 where 字段名 between #2003-8-10#and #2003-8-12#"在日期类数值为2003-8-10 19:55:08 的字段里查找2003-8-10至2003-8-12的所有记录,而不管是几点几分。
select * from tb_name where datetime between #2003-8-10# and#2003-8-12#字段里面的数据格式为:2003-8-10 19:55:08,通过sql查出2003-8-10至2003-8-12的所有纪录,而不管是几点几分。
Sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"Sql="select * from 数据表 where 字段名 like '%字段值%' orderby 字段名 [desc]"模糊查询Sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" 查找数据库中前10记录Sql="select top n * form 数据表 order by newid("随机取出数据库中的若干条记录的方法top n,n就是要取出的记录数Sql="select * from 数据表 where 字段名 in ('值1','值2','值3'"(二 insert语句sql="insert into 数据表 (字段1,字段2,字段3 … values (值1,值2,值3 …"sql="insert into 数据表 values (值1,值2,值3 …"不指定具体字段名表示将按照数据表中字段的顺序,依次添加sql="insert into 目标数据表 select * from 源数据表"把源数据表的记录添加到目标数据表(三 update语句Sql="update 数据表 set 字段名=字段值 where 条件表达式"Sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"Sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n "(四 delete语句Sql="delete from 数据表 where 条件表达式"Sql="delete from 数据表"没有条件将删除数据表中所有记录(五数据记录统计函数AVG(字段名得出一个表格栏平均值COUNT(*|字段名对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名取得一个表格栏最大的值MIN(字段名取得一个表格栏最小的值SUM(字段名把数据栏的值相加引用以上函数的方法:sql="select sum(字段名 as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql用 rs("别名" 获取统的计值,其它函数运用同上。
(六数据表的建立和删除CREATE TABLE 数据表名称(字段1 类型1(长度,字段2 类型2(长度…… 例:CREATE TABLE tab01(name varchar(50,datetime default now( DROP TABLE 数据表名称 (永久性删除一个数据表(七记录集对象的方法rs.movenext 将记录指针从当前的位置向下移一行rs.moveprevious 将记录指针从当前的位置向上移一行rs.movefirst 将记录指针移到数据表第一行rs.movelast 将记录指针移到数据表最后一行rs.absoluteposition=N 将记录指针移到数据表第N行rs.absolutepage=N 将记录指针移到第N页的第一行rs.pagesize=N 设置每页为N条记录rs.pagecount 根据 pagesize 的设置返回总页数rs.recordcount 返回记录总数rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否rs.delete 删除当前记录,但记录指针不会向下移动rs.addnew 添加记录到数据表末端rs.update 更新数据表记录。