计算机三级数据库SQL语句大全
数据库常用sql语句有哪些
数据库常用sql语句有哪些数据库常用sql语句有哪些结构化查询语言简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
下面是店铺整理的数据库常用sql语句有哪些,欢迎大家分享。
数据库常用sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.score>b.score and a.s#=b.s#;2、查询平均成绩大于60分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2<score;9、查询所有课程成绩小于60分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC whereS.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002')group by S# having count(*)=(select count(*) from SC where S#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名 ,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[<60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩 > T2.平均成绩) as 名次,S# as 学生学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩 desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;28、查询男生、女生人数Select count(Ssex) as 男生人数 from Student group by Ssex having Ssex='男';Select count(Ssex) as 女生人数 from Student group by Ssex having Ssex='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(*) from Student group by Sname having count(*)>1;;31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) asagefrom studentwhere CONVERT(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname having avg(score)>85;34、查询课程名称为“数据库”,且分数低于60的`学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score<60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e<60 order by C# ;38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';39、求选了课程的学生人数select count(*) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# );41、查询各个课程及相应的选修人数select count(*) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B whereA.Score=B.Score and A.C# <>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过10人的课程才统计)。
sql包含的语句
sql包含的语句SQL(Structured Query Language)是用于管理关系型数据库的标准化语言。
它可以用于查询、插入、更新和删除数据库中的数据。
下面将列举10个常见的SQL语句及其用途。
1. SELECT语句:SELECT语句用于从数据库中检索数据。
它可以检索特定的列或所有列,并可以进行条件筛选、排序和分组。
例如:SELECT * FROM employees;SELECT name, age FROM customers WHERE country='China';2. INSERT INTO语句:INSERT INTO语句用于向数据库中插入新的行。
可以指定要插入的表、要插入的列和要插入的值。
例如:INSERT INTO customers (name, age, country) VALUES ('Alice', 25, 'USA');3. UPDATE语句:UPDATE语句用于更新数据库中的现有行。
可以指定要更新的表、要更新的列和更新的值,还可以使用WHERE子句来指定更新的条件。
例如:UPDATE employees SET salary=5000 WHERE department='IT';4. DELETE FROM语句:DELETE FROM语句用于从数据库中删除行。
可以指定要删除的表和要删除的条件。
例如:DELETE FROM customers WHERE country='China';5. CREATE TABLE语句:CREATE TABLE语句用于创建新的数据库表。
可以指定表的名称、列的名称和数据类型以及其他约束。
例如:CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),age INT,department VARCHAR(50));6. ALTER TABLE语句:ALTER TABLE语句用于修改现有的数据库表。
(完整word版)SQL常用的增删改查语句、视屏笔记
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、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。
sql语句大全及用法
sql语句大全及用法SQL(Structured Query Language,结构化查询语言)是用于存取和操纵关系式数据库的标准计算机语言,可用于定义、检索以及控制数据库中的数据。
它是由IBM公司的研究员开发出来的,不久后普及全世界,大大提高了操作数据库的效率。
sql通常被分成两种:DDL(数据定义语言,Data Definition Language)和DML(数据库操纵语言,Data Manipulation Language)。
其中DDL用于定义数据库结构和构建表,而DML则用于操纵并操作数据库中的数据。
1. 数据库结构构建(DDL)• 创建表(Create):CREATE TABLE 表名(字段名1 数据类型,字段名2 数据类型,……)• 修改表(Alter):ALTER TABLE 表名 ADD 字段名数据类型;ALTER TABLE 表名DROP 字段名;ALTER TABLE 表名 MODIFY 字段名数据类型• 删除表(Drop):DROP TABLE 表名2. 数据操纵(DML)• 更新数据(Update):UPDATE 表名 SET 字段名= 值 WHERE 条件• 授权(Grant):GRANT 权限 ON 数据库名 TO 用户4. 高级SQL语句• 嵌套查询(Nested query):SELECT * FROM 表名 WHERE 字段名 IN(SELECT * FROM 另一个表名 WHERE 条件)• 分组聚合(Group by):SELECT 字段名 FROM 表名 GROUP BY 字段名• 分页查询(Page query):SELECT * FROM 表名 LIMIT 起始的记录条数,获取的记录数。
计算机三级(数据库技术)17_真题无答案
计算机三级(数据库技术)17(总分2580, 做题时间90分钟)选择题(每题1分,共60分)1.有一个网络数据库应用系统,其中一台计算机A存有DBMS软件、所有用户数据和应用程序,其余各节点作为终端通过通信线路向A发出数据库应用请求,这种方式属于( )。
SSS_SINGLE_SELA 集中式数据库系统B 并行数据库系统C 客户机/服务器数据库系统D 分布式数据库系统2.设有关系模式R(A,B,C,D),F={(A,D→C,C→B)},则 R 的所有候选码为______。
SSS_SINGLE_SELA 候选码为(A,D,C)B 候选码为(A,D)C 候选码为(A,C)D 候选码为(A,D),(A,C)3.用户使用操作系统通常有三种方式,它们是终端命令、系统调用命令和:SSS_SINGLE_SELA 计算机指令B 宏命令C 作业控制语言D 汇编语言4.在学生选课表(SC)中,查询选修了3号课程(课程号CH)的学生的学号(XH)及其成绩(GD)。
查询结果按分数的降序排列。
实现该功能的正确SQL语句是()。
SSS_SINGLE_SELA SELECT XH,GD FROM SC:WHERE CH='3F' ORDER BY GD DESCB SELECT XH,GD FROM SC;WHERE CH='3'ORDER BY GD ASCC SELECT XH,GD FROM SC;WHERECH='3'GROUP BY GD DESCD SELECTXH,GDFROMSC;WHERE CH='3'GROUP BY GD ASC5.由分 E-R 图生成初步 E-R 图,主要任务是______。
SSS_SINGLE_SELA 消除不必要冗余B 消除属性冲突C 消除结构冲突和命名冲突D B 和 C6.在数据库技术中,实体-联系模型是一种( )。
SSS_SINGLE_SELA 概念数据模型B 结构数据模型C 物理数据模型D 逻辑数据模型7.下列关于时间片轮转法的叙述中,哪一个是不正确的?SSS_SINGLE_SELA 在时间片轮转法中,系统将CPU时间划分成一个个时间段B 就绪队列中的各进程轮流在CPU上运行,每次运行一个时间片C 当时间片结束时,运行进程自动让出CPU,该进程进入等待队列D 如果时间片长度很小,则调度程序剥夺CPU的次数频繁,加重系统开销8.为了保证事务的正确执行,数据库系统维护以下哪些事务特性?Ⅰ.原子性Ⅱ.一致性Ⅲ.隔离性Ⅳ.持久性SSS_SINGLE_SELA Ⅰ,Ⅱ和ⅣB Ⅰ,Ⅱ和ⅢC Ⅰ,Ⅲ和ⅣD 全部9.数据库的逻辑结构设计任务就是把______转换为与所选用的 DBMS 支持的数据模型相符合的过程。
国家计算机三级(数据库技术)67_真题-无答案
国家计算机三级(数据库技术)67(总分100,考试时间120分钟)选择题(每题1分,共60分)1. 下列哪些条目是数据库管理系统DBMS运行所依据的信息? I.数据完整性定义II.安全保密定义III.模式、内模式和外模式定义IV.数据库开放性定义V.用户界面形式定义A. 仅I、III和IVB. 仅I、II和IIIC. 仅II、III和VD. 都是2. 设计磁盘调度算法时应考虑的两个基本因素是______。
A. 公平性和高效性B. 独立性和可靠性C. 有效性和安全性D. 以上都不对3. 信息认证是信息安全的一个重要方面,下列哪一项不属于实施信息认证的方法?A. 身份识别B. 密钥管理C. 数字签名D. 消息认证4. 在关系代数中,自然连接的运算符号为______。
A. πB. ×C. σD. ∞5. 在现在的数据库系统开发中,常采用高级语言或第四代(4GL)语言进行开发,这是为了A. 代码的可重用性B. 系统的可维护性C. 降低开发和维护费用D. 用户界面的友好性6. 下列叙述错误的是( )。
A. SYBASE企业级数据库服务器支持Java、支持扩展标记语言、支持Microsoft的DTCB. SYBASE企业级数据库服务器支持1种类型的锁机制来保证系统的并发性和性能C. SYBASE在核心层实现了存储过程和触发器的可编程能力D. SYBASE支持服务器间的失败转移和客户端透明地自动失败转移等7. 如果要在关系R中插入一个元组,下面______元组不能插入。
A. (a2,b5,7)B. (a6,b5,3)C. (a7,b7,8)D. (a8,b4,1)8. 下面关于数据库系统基于日志的恢复的叙述中,哪一个是正确的?A. 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改前值可以进行REDOB. 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改后值可以进行REDOC. 利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改前值可以进行REDOD. 利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改后值可以进行REDO9. 设某散列表的当前状态如下:一共有20个位置,在第0、3、4、6、13、14、17、19的位置存放着各结点的值,则该散列表的负载因子约为______。
sql语句大全(详细)
sql语句大全(详细)sql语句大全(详细)数据库操作1.查看所有数据库show databases;2.查看当前使用的数据库select database();3.创建数据库create databases 数据库名 charset=utf8;4.删除数据库drop database 数据库名5.使用数据句库use database 数据库名6.查看数据库中所有表show tables;表的操作1.查看表结构desc 表名2.创建表结构的语法create table table_name(字段名数据类型可选的约束条件);demo:创建班级和学生表create table classes(id int unsigned auto_increment primary key not null, name varchar(10));create table students(id int unsigned primary key auto_increment not null, name varchar(20) default '',age tinyint unsigned default 0,height decimal(5,2),gender enum('男','女','人妖','保密'),cls_id int unsigned default 0)3.修改表–添加字段alter table 表名 add 列名类型demo:alter table students add birthday datetime;4.修改表–修改字段–重命名版alert table 表名 change 原名新名类型及约束demo:alter table syudents change birthday birth datetime not null;5.修改表–修改字段–不重命名alter table 表名 modify 列名类型及约束demo : alter table students modify birth date nout noll;6.删除表–删除字段alter table 表名 drop 列名demo :later table students drop birthday;7.删除表drop table 表名demo:drop table students;8.查看表的创建语句–详细过程show create table 表名demo : show create tabele students;查询基本使用1.查询所有列select * from 表名例:select * from classes;2.查询指定列select 列1,列2,...from 表名;例:select id,name from classes;增加说明:主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null) ; 字段默认值 default 来占位,插入成功后以实际数据为准1.全列插入:值的顺序与表结构字段的顺序完全一一对应此时字段名列表不用填写insert into 表名 values (...)例:insert into students values(0,’郭靖',1,'蒙古','2016-1-2');2.部分列插入:值的顺序与给出的列顺序对应此时需要根据实际的数据的特点填写对应字段列表insert into 表名 (列1,...) values(值1,...)例:insert into students(name,hometown,birthday) values('黄蓉','桃花岛','2016-3-2');上面的语句一次可以向表中插入一行数据,还可以一次性插入多行数据,这样可以减少与数据库的通信3.全列多行插入insert into 表名 values(...),(...)...;例:insert into classes values(0,'python1'),(0,'python2');4.部分列多行插入insert into 表名(列1,...) values(值1,...),(值1,...)...;例:insert into students(name) values('杨康'),('杨过'),('小龙女');修改update 表名 set 列1=值1,列2=值2... where 条件例:update students set gender=0,hometown='北京' where id=5;删除delete from 表名 where 条件例:delete from students where id=5;逻辑删除,本质就是修改操作update students set isdelete=1 where id=1;as关键字1.使用 as 给字段起别名select id as 序号, name as 名字, gender as 性别 from students;2.可以通过 as 给表起别名select s.id,,s.gender from students as s;条件语句查询where后面支持多种运算符,进行条件的处理比较运算符逻辑运算符模糊查询范围查询空判断比较运算符等于: =大于: >大于等于: >=小于等于: <=不等于: != 或 <>例1:查询编号大于3的学生select * from students where id > 3;例2:查询编号不大于4的学生select * from students where id <= 4;例3:查询姓名不是“黄蓉”的学生select * from students where name != '黄蓉';例4:查询没被删除的学生select * from students where is_delete=0;逻辑运算符andornot例5:查询编号大于3的女同学select * from students where id > 3 and gender=0;例6:查询编号小于4或没被删除的学生select * from students where id < 4 or is_delete=0;模糊查询like%表示任意多个任意字符_表示一个任意字符例7:查询姓黄的学生select * from students where name like '黄%';例8:查询姓黄并且“名”是一个字的学生select * from students where name like '黄_';例9:查询姓黄或叫靖的学生select * from students where name like '黄%' or name like '%靖';范围查询分为连续范围查询和非连续范围查询in表示在一个非连续的范围内例10:查询编号是1或3或8的学生select * from students where id in(1,3,8);between … and …表示在一个连续的范围内例11:查询编号为3至8的学生select * from students where id between 3 and 8;例12:查询编号是3至8的男生select * from students where (id between 3 and 8) and gender=1;空判断判断为空例13:查询没有填写身高的学生select * from students where height is null;注意: 1. null与’'是不同的 2. is null判非空is not null例14:查询填写了身高的学生select * from students where height is not null;例15:查询填写了身高的男生select * from students where height is not null and gender=1;优先级优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符and比or先运算,如果同时出现并希望先算or,需要结合()使用排序排序查询语法:select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]语法说明:将行数据按照列1进行排序,如果某些行列1 的值相同时,则按照列2 排序,以此类推asc从小到大排列,即升序desc从大到小排序,即降序默认按照列值从小到大排列(即asc关键字)例1:查询未删除男生信息,按学号降序select * from students where gender=1 and is_delete=0 order by id desc;例2:查询未删除学生信息,按名称升序select * from students where is_delete=0 order by name;例3:显示所有的学生信息,先按照年龄从大–>小排序,当年龄相同时按照身高从高–>矮排序select * from students order by age desc,height desc;分页select * from 表名 limit start=0,count说明从start开始,获取count条数据start默认值为0也就是当用户需要获取数据的前n条的时候可以直接写上xxx limit n;例1:查询前3行男生信息select * from students where gender=1 limit 0,3;关于分页的一个有趣的推导公式已知:每页显示m条数据,当前显示第n页求总页数:此段逻辑后面会在python项目中实现查询总条数p1使用p1除以m得到p2如果整除则p2为总数页如果不整除则p2+1为总页数获取第n页的数据的SQL语句求解思路第n页前有n-1页所在第n页前已经显示的数据的总量是(n-1)*m由于数据的下标从0开始所以第n页前所有的网页的下标是0,1,…,(n-1)*m-1所以第n页的数据起始下标是(n-1)*m获取第n页数据的SQL语句select * from students where is_delete=0 limit (n-1)*m,m注意:在sql语句中limit后不可以直接加公式聚合函数总数count(*) 表示计算总行数,括号中写星与列名,结果是相同的例1:查询学生总数select count(*) from students;最大值max(列) 表示求此列的最大值例2:查询女生的编号最大值select max(id) from students where gender=2;最小值min(列) 表示求此列的最小值例3:查询未删除的学生最小编号select min(id) from students where is_delete=0;求和sum(列) 表示求此列的和例4:查询男生的总年龄select sum(age) from students where gender=1;–平均年龄select sum(age)/count(*) from students where gender=1;平均值avg(列) 表示求此列的平均值例5:查询未删除女生的编号平均值select avg(id) from students where is_delete=0 andgender=2;分组group bygroup by + group_concat()group_concat(字段名)根据分组结果,使用group_concat()来放置每一个分组中某字段的集合group by + 聚合函数通过group_concat()的启发,我们既然可以统计出每个分组的某字段的值的集合,那么我们也可以通过集合函数来对这个值的集合做一些操作group by + havinghaving 条件表达式:用来过滤分组结果having作用和where类似,但having只能用于group by 而where是用来过滤表数据group by + with rollupwith rollup的作用是:在最后新增一行,来记录当前表中该字段对应的操作结果,一般是汇总结果。
SQL语句大全.pdf
SQL 语句教程SQL语句教程(01) SELECT (2)SQL语句教程(02) DISTINCT (2)SQL语句教程(03) WHERE (2)SQL语句教程(04) AND OR (3)SQL语句教程(05) IN (3)SQL语句教程(06) BETWEEN (4)SQL语句教程(07) LIKE (4)SQL语句教程(08) ORDER BY (5)SQL语句教程(09) 函数 (5)SQL语句教程(10) COUNT (6)SQL语句教程(11) Group By (6)SQL语句教程(12) HAVING (7)SQL语句教程(13) ALIAS (7)SQL语句教程(14) 连接 (8)SQL语句教程(15) 外部连接 (9)SQL语句教程(16) Subquery (9)SQL语句教程(17) UNION (10)SQL语句教程(18) UNION ALL (11)SQL语句教程(19) INTERSECT (11)SQL语句教程(20) MINUS (12)SQL语句教程(21) Concatenate (12)SQL语句教程(22) Substring (13)SQL语句教程(23) TRIM (14)SQL语句教程(24) Create Table (14)SQL语句教程(25) Create View (15)SQL语句教程(26) Create Index (16)SQL语句教程(27) Alter Table (16)SQL语句教程(28) 主键 (18)SQL语句教程(29) 外来键 (18)SQL语句教程(30) Drop Table (19)SQL语句教程(31) Truncate Table (20)SQL语句教程(32) Insert Into (20)SQL语句教程(33) Update (20)SQL语句教程(34) Delete (21)SQL语句教程(01) SELECT是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出。
数据库SQL语句
数据库SQL语句1、select x.商品代号,分类名,数量,品牌From 商品表现1 x,商品表2 y Where x.商品代号=y.商品代号(从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。
)2、select distinct 产地From商品表2(从商品库中查询出所有商品的不同产地。
)3、select distinct 品牌From 商品表2(从商品库中查询出所有商品的不同品牌)4、select count(distinct产地)as产地数From商品表2(从商品库中查询出所有商品的不同产地的总数。
)5、select x.商品代号,分类名,产地,品牌From商品表1 x.,商品表2 yWhere x,商品代号=y.商品代号and (品牌=‘熊猫’or品牌=‘春兰’)(从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌。
)19、select 商品表1.商品代号,单价,数量,产地From 商品表1,商品表2Where 商品表达式1.商品代号=商品表达式2.商品代号(从商品库中查询出每种商品的商品代号、单价、数量和产地。
)20、select count(*)From 商品表1Where数量》10(从商品库中查询出数量大于10的商品种数。
)21、select *From商品表1Where数量between 10 and20(从商品库中查询出数量在10和20之间的所有商品。
)22、select分类名,max(单价)as最高单价From商品表1Group by 分类名(从商品库中查询出每类(即类名相同)商品的最高单价)23、select分类名,avg(数量)as平均数量From商品表1Group by分类名(从商品库中查询出每类(即分类名相同)商品的平均数量)24、select分类名,sum(数量)as总数量From商品表1Group by分类名(从商品库中查询出每类(即分类名相同)商品的总数量。
SQL基础语句大全
SQL基础语句大全SQL基础语句大全此文章基本涵盖SQL的基础应用语句你好!这是本人在大学自学Java时记录的SQL基础语句,希望可以对自学的小白们给与一定帮助,有错误也欢迎大家可以帮助纠正。
数据类型1.整数: int和bigint bigint等效Java中的long2.浮点数:double(m,d) m总长度 d小数长度 eg:double(5,3) 26.789decimal是一个超高精度的浮点数,精度远高于double,只有涉及到超高精度运算时才会使用到3.字符串:varchar(m) 可变长度(节省空间)最大字符长度65535但是超过255建议用text 可变长度字符串类型长度65535.char(m)不可变长度 char(5) “abc”占5 最大字符长度2554.日期类型:-date:只能保存年月日-time:只能保存时分秒-datetime:默认值null 最大值9999-12-31-timestamp:时间戳默认值当前系统时间 2038-1-19数据库相关1.查询所有数据库-格式:show databases;(分号不要忘)2.创建数据库-格式:create database 数据库名;-指定字符集格式:create database 数据库名 character set utf8/gbk;3.查看数据库详情-格式:show create database 数据库名;4.删除数据库-格式:drop database 数据库名;5.使用数据库-格式:use 数据库名;表相关-切记操作表和数据库时一定要保证已经使用了数据库,如下操作:create database db1;use db1;1.创建表-格式:create table 表名(字段1 字段1类型,字段2 字段2类型…)create table person(name varchar(10),age int)2.查询所有表-格式:show tables;3.查询表详情-格式:show create table 表名;4.创建表时指定字符集-格式:create table 表名(字段1 字段1类型,字段2 字段2类型…) charset=utf8/gbk create table t1(name varchar(10)) charset=gbk;5.查询表字段信息-格式:desc 表名;6.删除表-格式:drop table 表名;7.添加表字段-最后添加格式:alter table 表名 add 字段名类型;-最前添加格式:alter table 表名 add 字段名类型 first;-最xxx后面添加格式:alter table 表名 add 字段名类型 after xxx;8.删除表字段-格式:alter table 表名 drop 字段名;9.修改表字段-格式:alter table 表名 change 原名新名新类型;DML DataManiputlation Language数据操作语言(增删改查)1.插入数据-全表格式:insert into 表名 values(值1,值2,值3);-指定字段插入格式:insert into表名(字段1名,字段2名) values(值1,值2);-批量插入:insert into 表名 values(值1,值2,值3),(值1,值2,值3)…中文问题:insert into person values(3,‘Liang’,22),(4,‘刘德华’,26);如果执行上面代码出错则使用下面代码后执行set names gbk;mysql处理数据有两个地方需要进行编码和解码,每隔地方的编解码要保证字符集一致,网络数据传输有一对编解码,往磁盘中保存和读取数据有一对编解码,创建数据库和表时指定的字符集时服务于后者的,set names gbk是服务于前者的。
SQL常用基本语句及示例
SQL基本语句及示例1 . SQL SELECT 语句SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SQL SELECT 语法以及:2. SQL SELECT DISTINCT 语句在表中,可能会包含重复值。
这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词DISTINCT 用于返回唯一不同的值。
语法:使用DISTINCT 关键词如果要从"Company" 列中选取所有的值,我们需要使用SELECT 语句:现在,在结果集中,"W3School" 仅被列出了一次。
3. WHERE 子句如需有条件地从表中选取数据,可将WHERE 子句添加到SELECT 语句。
语法引号的使用请注意,我们在例子中的条件值周围使用的是单引号。
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
如果是数值,请不要使用引号。
文本值:数值:5. ORDER BY 语句ORDER BY语句用于对结果集进行排序实例4以逆字母顺序显示公司名称,并以数字顺序显示顺序号:6. INSERT INTO 语句INSERT INTO 语句用于向表格中插入新的行。
语法我们也可以指定所要插入数据的列:SQL 语句:SQL 语句:7. DELETE 语句DELETE 语句用于删除表中的行。
语法删除某行"Fred Wilson" 会被删除:删除所有行可以在不删除表的情况下删除所有的行。
这意味着表的结构、属性和索引都是完整的:1.SQL AVG() 语法例子1现在,我们希望计算"OrderPrice" 字段的平均值。
我们使用如下SQL 语句:例子2现在,我们希望找到OrderPrice 值高于OrderPrice 平均值的客户。
我们使用如下SQL 语句:2.SQL COUNT() 函数COUNT() 函数返回匹配指定条件的行数。
SQL常用基本语句及示例
SQL基本语句及示例1 . SQL SELECT 语句SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SQL SELECT 语法以及:2. SQL SELECT DISTINCT 语句在表中,可能会包含重复值。
这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词DISTINCT 用于返回唯一不同的值。
语法:使用DISTINCT 关键词如果要从"Company" 列中选取所有的值,我们需要使用SELECT 语句:现在,在结果集中,"W3School" 仅被列出了一次。
3. WHERE 子句如需有条件地从表中选取数据,可将WHERE 子句添加到SELECT 语句。
语法引号的使用请注意,我们在例子中的条件值周围使用的是单引号。
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
如果是数值,请不要使用引号。
文本值:数值:5. ORDER BY 语句ORDER BY语句用于对结果集进行排序实例4以逆字母顺序显示公司名称,并以数字顺序显示顺序号:6. INSERT INTO 语句INSERT INTO 语句用于向表格中插入新的行。
语法我们也可以指定所要插入数据的列:SQL 语句:SQL 语句:7. DELETE 语句DELETE 语句用于删除表中的行。
语法删除某行"Fred Wilson" 会被删除:删除所有行可以在不删除表的情况下删除所有的行。
这意味着表的结构、属性和索引都是完整的:1.SQL AVG() 语法例子1现在,我们希望计算"OrderPrice" 字段的平均值。
我们使用如下SQL 语句:例子2现在,我们希望找到OrderPrice 值高于OrderPrice 平均值的客户。
我们使用如下SQL 语句:2.SQL COUNT() 函数COUNT() 函数返回匹配指定条件的行数。
中国三级省市区sql
--请复制以下语句到mysql数据库,F9一键运行就可以了!-- 导出表db_menu.hat_area 结构CREATE TABLE IF NOT EXISTS `hat_area` (`ID` int(11) NOT NULL AUTO_INCREMENT,`AREA_ID` varchar(6) DEFAULT NULL,`AREA` varchar(50) DEFAULT NULL,`FATHER` varchar(6) DEFAULT NULL,PRIMARY KEY (`ID`)) ENGINE=InnoDB AUTO_INCREMENT=3145 DEFAULT CHARSET=utf8;-- 正在导出表db_menu.hat_area 的数据:~2,957 rows (大约) /*!40000 ALTER TABLE `hat_area` DISABLE KEYS */;INSERT INTO `hat_area` (`ID`, `AREA_ID`, `AREA`, `FATHER`) VALUES (1, '110101', '东城区', '110100'),(2, '110102', '西城区', '110100'),(3, '110103', '崇文区', '110100'),(4, '110104', '宣武区', '110100'),(5, '110105', '朝阳区', '110100'),(6, '110106', '丰台区', '110100'),(7, '110107', '石景山区', '110100'),(8, '110108', '海淀区', '110100'),(9, '110109', '门头沟区', '110100'),(10, '110111', '房山区', '110100'),(11, '110112', '通州区', '110100'),(12, '110113', '顺义区', '110100'),(13, '110114', '昌平区', '110100'),(14, '110115', '大兴区', '110100'),(15, '110116', '怀柔区', '110100'),(16, '110117', '平谷区', '110100'),(17, '110228', '密云县', '110200'),(18, '110229', '延庆县', '110200'),(19, '120101', '和平区', '120100'),(20, '120102', '河东区', '120100'),(21, '120103', '河西区', '120100'),(22, '120104', '南开区', '120100'),(23, '120105', '河北区', '120100'),(24, '120106', '红桥区', '120100'),(25, '120107', '塘沽区', '120100'),(26, '120108', '汉沽区', '120100'),(27, '120109', '大港区', '120100'),(28, '120110', '东丽区', '120100'),(29, '120111', '西青区', '120100'),(30, '120112', '津南区', '120100'),(32, '120114', '武清区', '120100'), (33, '120115', '宝坻区', '120100'), (34, '120221', '宁河县', '120200'), (35, '120223', '静海县', '120200'), (36, '120225', '蓟县', '120200'), (38, '130102', '长安区', '130100'), (39, '130103', '桥东区', '130100'), (40, '130104', '桥西区', '130100'), (41, '130105', '新华区', '130100'), (42, '130107', '井陉矿区', '130100'), (43, '130108', '裕华区', '130100'), (44, '130121', '井陉县', '130100'), (45, '130123', '正定县', '130100'), (46, '130124', '栾城县', '130100'), (47, '130125', '行唐县', '130100'), (48, '130126', '灵寿县', '130100'), (49, '130127', '高邑县', '130100'), (50, '130128', '深泽县', '130100'), (51, '130129', '赞皇县', '130100'), (52, '130130', '无极县', '130100'), (53, '130131', '平山县', '130100'), (54, '130132', '元氏县', '130100'), (55, '130133', '赵县', '130100'), (56, '130181', '辛集市', '130100'), (57, '130182', '藁城市', '130100'), (58, '130183', '晋州市', '130100'), (59, '130184', '新乐市', '130100'), (60, '130185', '鹿泉市', '130100'), (62, '130202', '路南区', '130200'), (63, '130203', '路北区', '130200'), (64, '130204', '古冶区', '130200'), (65, '130205', '开平区', '130200'), (66, '130207', '丰南区', '130200'), (67, '130208', '丰润区', '130200'), (68, '130223', '滦县', '130200'), (69, '130224', '滦南县', '130200'), (70, '130225', '乐亭县', '130200'), (71, '130227', '迁西县', '130200'), (72, '130229', '玉田县', '130200'), (73, '130230', '唐海县', '130200'), (74, '130281', '遵化市', '130200'), (75, '130283', '迁安市', '130200'), (77, '130302', '海港区', '130300'),(79, '130304', '北戴河区', '130300'), (80, '130321', '青龙满族自治县', '130300'), (81, '130322', '昌黎县', '130300'),(82, '130323', '抚宁县', '130300'),(83, '130324', '卢龙县', '130300'),(85, '130402', '邯山区', '130400'),(86, '130403', '丛台区', '130400'),(87, '130404', '复兴区', '130400'),(88, '130406', '峰峰矿区', '130400'), (89, '130421', '邯郸县', '130400'),(90, '130423', '临漳县', '130400'),(91, '130424', '成安县', '130400'),(92, '130425', '大名县', '130400'),(93, '130426', '涉县', '130400'),(94, '130427', '磁县', '130400'),(95, '130428', '肥乡县', '130400'),(96, '130429', '永年县', '130400'),(97, '130430', '邱县', '130400'),(98, '130431', '鸡泽县', '130400'),(99, '130432', '广平县', '130400'), (100, '130433', '馆陶县', '130400'), (101, '130434', '魏县', '130400'), (102, '130435', '曲周县', '130400'), (103, '130481', '武安市', '130400'), (105, '130502', '桥东区', '130500'), (106, '130503', '桥西区', '130500'), (107, '130521', '邢台县', '130500'), (108, '130522', '临城县', '130500'), (109, '130523', '内丘县', '130500'), (110, '130524', '柏乡县', '130500'), (111, '130525', '隆尧县', '130500'), (112, '130526', '任县', '130500'), (113, '130527', '南和县', '130500'), (114, '130528', '宁晋县', '130500'), (115, '130529', '巨鹿县', '130500'), (116, '130530', '新河县', '130500'), (117, '130531', '广宗县', '130500'), (118, '130532', '平乡县', '130500'), (119, '130533', '威县', '130500'), (120, '130534', '清河县', '130500'), (121, '130535', '临西县', '130500'), (122, '130581', '南宫市', '130500'), (123, '130582', '沙河市', '130500'),(126, '130603', '北市区', '130600'), (127, '130604', '南市区', '130600'), (128, '130621', '满城县', '130600'), (129, '130622', '清苑县', '130600'), (130, '130623', '涞水县', '130600'), (131, '130624', '阜平县', '130600'), (132, '130625', '徐水县', '130600'), (133, '130626', '定兴县', '130600'), (134, '130627', '唐县', '130600'), (135, '130628', '高阳县', '130600'), (136, '130629', '容城县', '130600'), (137, '130630', '涞源县', '130600'), (138, '130631', '望都县', '130600'), (139, '130632', '安新县', '130600'), (140, '130633', '易县', '130600'), (141, '130634', '曲阳县', '130600'), (142, '130635', '蠡县', '130600'), (143, '130636', '顺平县', '130600'), (144, '130637', '博野县', '130600'), (145, '130638', '雄县', '130600'), (146, '130681', '涿州市', '130600'), (147, '130682', '定州市', '130600'), (148, '130683', '安国市', '130600'), (149, '130684', '高碑店市', '130600'), (151, '130702', '桥东区', '130700'), (152, '130703', '桥西区', '130700'), (153, '130705', '宣化区', '130700'), (154, '130706', '下花园区', '130700'), (155, '130721', '宣化县', '130700'), (156, '130722', '张北县', '130700'), (157, '130723', '康保县', '130700'), (158, '130724', '沽源县', '130700'), (159, '130725', '尚义县', '130700'), (160, '130726', '蔚县', '130700'), (161, '130727', '阳原县', '130700'), (162, '130728', '怀安县', '130700'), (163, '130729', '万全县', '130700'), (164, '130730', '怀来县', '130700'), (165, '130731', '涿鹿县', '130700'), (166, '130732', '赤城县', '130700'), (167, '130733', '崇礼县', '130700'), (169, '130802', '双桥区', '130800'), (170, '130803', '双滦区', '130800'),(171, '130804', '鹰手营子矿区', '130800'), (172, '130821', '承德县', '130800'),(173, '130822', '兴隆县', '130800'),(174, '130823', '平泉县', '130800'),(175, '130824', '滦平县', '130800'),(176, '130825', '隆化县', '130800'),(177, '130826', '丰宁满族自治县', '130800'), (178, '130827', '宽城满族自治县', '130800'), (179, '130828', '围场满族蒙古族自治县', '130800'), (181, '130902', '新华区', '130900'),(182, '130903', '运河区', '130900'),(183, '130921', '沧县', '130900'),(184, '130922', '青县', '130900'),(185, '130923', '东光县', '130900'),(186, '130924', '海兴县', '130900'),(187, '130925', '盐山县', '130900'),(188, '130926', '肃宁县', '130900'),(189, '130927', '南皮县', '130900'),(190, '130928', '吴桥县', '130900'),(191, '130929', '献县', '130900'),(192, '130930', '孟村回族自治县', '130900'), (193, '130981', '泊头市', '130900'),(194, '130982', '任丘市', '130900'),(195, '130983', '黄骅市', '130900'),(196, '130984', '河间市', '130900'),(198, '131002', '安次区', '131000'),(199, '131003', '广阳区', '131000'),(200, '131022', '固安县', '131000'),(201, '131023', '永清县', '131000'),(202, '131024', '香河县', '131000'),(203, '131025', '大城县', '131000'),(204, '131026', '文安县', '131000'),(205, '131028', '大厂回族自治县', '131000'), (206, '131081', '霸州市', '131000'),(207, '131082', '三河市', '131000'),(209, '131102', '桃城区', '131100'),(210, '131121', '枣强县', '131100'),(211, '131122', '武邑县', '131100'),(212, '131123', '武强县', '131100'),(213, '131124', '饶阳县', '131100'),(214, '131125', '安平县', '131100'),(215, '131126', '故城县', '131100'),(216, '131127', '景县', '131100'),(217, '131128', '阜城县', '131100'),(219, '131182', '深州市', '131100'), (221, '140105', '小店区', '140100'), (222, '140106', '迎泽区', '140100'), (223, '140107', '杏花岭区', '140100'), (224, '140108', '尖草坪区', '140100'), (225, '140109', '万柏林区', '140100'), (226, '140110', '晋源区', '140100'), (227, '140121', '清徐县', '140100'), (228, '140122', '阳曲县', '140100'), (229, '140123', '娄烦县', '140100'), (230, '140181', '古交市', '140100'), (232, '140202', '城区', '140200'), (233, '140203', '矿区', '140200'), (234, '140211', '南郊区', '140200'), (235, '140212', '新荣区', '140200'), (236, '140221', '阳高县', '140200'), (237, '140222', '天镇县', '140200'), (238, '140223', '广灵县', '140200'), (239, '140224', '灵丘县', '140200'), (240, '140225', '浑源县', '140200'), (241, '140226', '左云县', '140200'), (242, '140227', '大同县', '140200'), (244, '140302', '城区', '140300'), (245, '140303', '矿区', '140300'), (246, '140311', '郊区', '140300'), (247, '140321', '平定县', '140300'), (248, '140322', '盂县', '140300'), (250, '140402', '城区', '140400'), (251, '140411', '郊区', '140400'), (252, '140421', '长治县', '140400'), (253, '140423', '襄垣县', '140400'), (254, '140424', '屯留县', '140400'), (255, '140425', '平顺县', '140400'), (256, '140426', '黎城县', '140400'), (257, '140427', '壶关县', '140400'), (258, '140428', '长子县', '140400'), (259, '140429', '武乡县', '140400'), (260, '140430', '沁县', '140400'), (261, '140431', '沁源县', '140400'), (262, '140481', '潞城市', '140400'), (264, '140502', '城区', '140500'), (265, '140521', '沁水县', '140500'), (266, '140522', '阳城县', '140500'),(268, '140525', '泽州县', '140500'), (269, '140581', '高平市', '140500'), (271, '140602', '朔城区', '140600'), (272, '140603', '平鲁区', '140600'), (273, '140621', '山阴县', '140600'), (274, '140622', '应县', '140600'), (275, '140623', '右玉县', '140600'), (276, '140624', '怀仁县', '140600'), (278, '140702', '榆次区', '140700'), (279, '140721', '榆社县', '140700'), (280, '140722', '左权县', '140700'), (281, '140723', '和顺县', '140700'), (282, '140724', '昔阳县', '140700'), (283, '140725', '寿阳县', '140700'), (284, '140726', '太谷县', '140700'), (285, '140727', '祁县', '140700'), (286, '140728', '平遥县', '140700'), (287, '140729', '灵石县', '140700'), (288, '140781', '介休市', '140700'), (290, '140802', '盐湖区', '140800'), (291, '140821', '临猗县', '140800'), (292, '140822', '万荣县', '140800'), (293, '140823', '闻喜县', '140800'), (294, '140824', '稷山县', '140800'), (295, '140825', '新绛县', '140800'), (296, '140826', '绛县', '140800'), (297, '140827', '垣曲县', '140800'), (298, '140828', '夏县', '140800'), (299, '140829', '平陆县', '140800'), (300, '140830', '芮城县', '140800'), (301, '140881', '永济市', '140800'), (302, '140882', '河津市', '140800'), (304, '140902', '忻府区', '140900'), (305, '140921', '定襄县', '140900'), (306, '140922', '五台县', '140900'), (307, '140923', '代县', '140900'), (308, '140924', '繁峙县', '140900'), (309, '140925', '宁武县', '140900'), (310, '140926', '静乐县', '140900'), (311, '140927', '神池县', '140900'), (312, '140928', '五寨县', '140900'), (313, '140929', '岢岚县', '140900'), (314, '140930', '河曲县', '140900'),(316, '140932', '偏关县', '140900'), (317, '140981', '原平市', '140900'), (319, '141002', '尧都区', '141000'), (320, '141021', '曲沃县', '141000'), (321, '141022', '翼城县', '141000'), (322, '141023', '襄汾县', '141000'), (323, '141024', '洪洞县', '141000'), (324, '141025', '古县', '141000'), (325, '141026', '安泽县', '141000'), (326, '141027', '浮山县', '141000'), (327, '141028', '吉县', '141000'), (328, '141029', '乡宁县', '141000'), (329, '141030', '大宁县', '141000'), (330, '141031', '隰县', '141000'), (331, '141032', '永和县', '141000'), (332, '141033', '蒲县', '141000'), (333, '141034', '汾西县', '141000'), (334, '141081', '侯马市', '141000'), (335, '141082', '霍州市', '141000'), (337, '141102', '离石区', '141100'), (338, '141121', '文水县', '141100'), (339, '141122', '交城县', '141100'), (340, '141123', '兴县', '141100'), (341, '141124', '临县', '141100'), (342, '141125', '柳林县', '141100'), (343, '141126', '石楼县', '141100'), (344, '141127', '岚县', '141100'), (345, '141128', '方山县', '141100'), (346, '141129', '中阳县', '141100'), (347, '141130', '交口县', '141100'), (348, '141181', '孝义市', '141100'), (349, '141182', '汾阳市', '141100'), (351, '150102', '新城区', '150100'), (352, '150103', '回民区', '150100'), (353, '150104', '玉泉区', '150100'), (354, '150105', '赛罕区', '150100'), (355, '150121', '土默特左旗', '150100'), (356, '150122', '托克托县', '150100'), (357, '150123', '和林格尔县', '150100'), (358, '150124', '清水河县', '150100'), (359, '150125', '武川县', '150100'), (361, '150202', '东河区', '150200'), (362, '150203', '昆都仑区', '150200'),(364, '150205', '石拐区', '150200'),(365, '150206', '白云矿区', '150200'),(366, '150207', '九原区', '150200'),(367, '150221', '土默特右旗', '150200'),(368, '150222', '固阳县', '150200'),(369, '150223', '达尔罕茂明安联合旗', '150200'), (371, '150302', '海勃湾区', '150300'),(372, '150303', '海南区', '150300'),(373, '150304', '乌达区', '150300'),(375, '150402', '红山区', '150400'),(376, '150403', '元宝山区', '150400'),(377, '150404', '松山区', '150400'),(378, '150421', '阿鲁科尔沁旗', '150400'),(379, '150422', '巴林左旗', '150400'),(380, '150423', '巴林右旗', '150400'),(381, '150424', '林西县', '150400'),(382, '150425', '克什克腾旗', '150400'),(383, '150426', '翁牛特旗', '150400'),(384, '150428', '喀喇沁旗', '150400'),(385, '150429', '宁城县', '150400'),(386, '150430', '敖汉旗', '150400'),(388, '150502', '科尔沁区', '150500'),(389, '150521', '科尔沁左翼中旗', '150500'), (390, '150522', '科尔沁左翼后旗', '150500'), (391, '150523', '开鲁县', '150500'),(392, '150524', '库伦旗', '150500'),(393, '150525', '奈曼旗', '150500'),(394, '150526', '扎鲁特旗', '150500'),(395, '150581', '霍林郭勒市', '150500'),(396, '150602', '东胜区', '150600'),(397, '150621', '达拉特旗', '150600'),(398, '150622', '准格尔旗', '150600'),(399, '150623', '鄂托克前旗', '150600'),(400, '150624', '鄂托克旗', '150600'),(401, '150625', '杭锦旗', '150600'),(402, '150626', '乌审旗', '150600'),(403, '150627', '伊金霍洛旗', '150600'),(405, '150702', '海拉尔区', '150700'),(406, '150721', '阿荣旗', '150700'),(407, '150722', '莫力达瓦达斡尔族自治旗', '150700'), (408, '150723', '鄂伦春自治旗', '150700'),(409, '150724', '鄂温克族自治旗', '150700'), (410, '150725', '陈巴尔虎旗', '150700'),(411, '150726', '新巴尔虎左旗', '150700'), (412, '150727', '新巴尔虎右旗', '150700'), (413, '150781', '满洲里市', '150700'), (414, '150782', '牙克石市', '150700'), (415, '150783', '扎兰屯市', '150700'), (416, '150784', '额尔古纳市', '150700'), (417, '150785', '根河市', '150700'), (419, '150802', '临河区', '150800'), (420, '150821', '五原县', '150800'), (421, '150822', '磴口县', '150800'), (422, '150823', '乌拉特前旗', '150800'), (423, '150824', '乌拉特中旗', '150800'), (424, '150825', '乌拉特后旗', '150800'), (425, '150826', '杭锦后旗', '150800'), (427, '150902', '集宁区', '150900'), (428, '150921', '卓资县', '150900'), (429, '150922', '化德县', '150900'), (430, '150923', '商都县', '150900'), (431, '150924', '兴和县', '150900'), (432, '150925', '凉城县', '150900'), (433, '150926', '察哈尔右翼前旗', '150900'), (434, '150927', '察哈尔右翼中旗', '150900'), (435, '150928', '察哈尔右翼后旗', '150900'), (436, '150929', '四子王旗', '150900'), (437, '150981', '丰镇市', '150900'), (438, '152201', '乌兰浩特市', '152200'), (439, '152202', '阿尔山市', '152200'), (440, '152221', '科尔沁右翼前旗', '152200'), (441, '152222', '科尔沁右翼中旗', '152200'), (442, '152223', '扎赉特旗', '152200'), (443, '152224', '突泉县', '152200'), (444, '152501', '二连浩特市', '152500'), (445, '152502', '锡林浩特市', '152500'), (446, '152522', '阿巴嘎旗', '152500'), (447, '152523', '苏尼特左旗', '152500'), (448, '152524', '苏尼特右旗', '152500'), (449, '152525', '东乌珠穆沁旗', '152500'), (450, '152526', '西乌珠穆沁旗', '152500'), (451, '152527', '太仆寺旗', '152500'), (452, '152528', '镶黄旗', '152500'), (453, '152529', '正镶白旗', '152500'), (454, '152530', '正蓝旗', '152500'), (455, '152531', '多伦县', '152500'), (456, '152921', '阿拉善左旗', '152900'),(457, '152922', '阿拉善右旗', '152900'), (458, '152923', '额济纳旗', '152900'), (460, '210102', '和平区', '210100'), (461, '210103', '沈河区', '210100'), (462, '210104', '大东区', '210100'), (463, '210105', '皇姑区', '210100'), (464, '210106', '铁西区', '210100'), (465, '210111', '苏家屯区', '210100'), (466, '210112', '东陵区', '210100'), (467, '210113', '新城子区', '210100'), (468, '210114', '于洪区', '210100'), (469, '210122', '辽中县', '210100'), (470, '210123', '康平县', '210100'), (471, '210124', '法库县', '210100'), (472, '210181', '新民市', '210100'), (474, '210202', '中山区', '210200'), (475, '210203', '西岗区', '210200'), (476, '210204', '沙河口区', '210200'), (477, '210211', '甘井子区', '210200'), (478, '210212', '旅顺口区', '210200'), (479, '210213', '金州区', '210200'), (480, '210224', '长海县', '210200'), (481, '210281', '瓦房店市', '210200'), (482, '210282', '普兰店市', '210200'), (483, '210283', '庄河市', '210200'), (485, '210302', '铁东区', '210300'), (486, '210303', '铁西区', '210300'), (487, '210304', '立山区', '210300'), (488, '210311', '千山区', '210300'), (489, '210321', '台安县', '210300'), (490, '210323', '岫岩满族自治县', '210300'), (491, '210381', '海城市', '210300'), (493, '210402', '新抚区', '210400'), (494, '210403', '东洲区', '210400'), (495, '210404', '望花区', '210400'), (496, '210411', '顺城区', '210400'), (497, '210421', '抚顺县', '210400'), (498, '210422', '新宾满族自治县', '210400'), (499, '210423', '清原满族自治县', '210400'), (501, '210502', '平山区', '210500'), (502, '210503', '溪湖区', '210500'), (503, '210504', '明山区', '210500'), (504, '210505', '南芬区', '210500'), (505, '210521', '本溪满族自治县', '210500'),(506, '210522', '桓仁满族自治县', '210500'), (508, '210602', '元宝区', '210600'),(509, '210603', '振兴区', '210600'),(510, '210604', '振安区', '210600'),(511, '210624', '宽甸满族自治县', '210600'), (512, '210681', '东港市', '210600'),(513, '210682', '凤城市', '210600'),(515, '210702', '古塔区', '210700'),(516, '210703', '凌河区', '210700'),(517, '210711', '太和区', '210700'),(518, '210726', '黑山县', '210700'),(519, '210727', '义县', '210700'),(520, '210781', '凌海市', '210700'),(521, '210782', '北宁市', '210700'),(523, '210802', '站前区', '210800'),(524, '210803', '西市区', '210800'),(525, '210804', '鲅鱼圈区', '210800'), (526, '210811', '老边区', '210800'),(527, '210881', '盖州市', '210800'),(528, '210882', '大石桥市', '210800'), (530, '210902', '海州区', '210900'),(531, '210903', '新邱区', '210900'),(532, '210904', '太平区', '210900'),(533, '210905', '清河门区', '210900'), (534, '210911', '细河区', '210900'),(535, '210921', '阜新蒙古族自治县', '210900'), (536, '210922', '彰武县', '210900'),(538, '211002', '白塔区', '211000'),(539, '211003', '文圣区', '211000'),(540, '211004', '宏伟区', '211000'),(541, '211005', '弓长岭区', '211000'), (542, '211011', '太子河区', '211000'), (543, '211021', '辽阳县', '211000'),(544, '211081', '灯塔市', '211000'),(546, '211102', '双台子区', '211100'), (547, '211103', '兴隆台区', '211100'), (548, '211121', '大洼县', '211100'),(549, '211122', '盘山县', '211100'),(551, '211202', '银州区', '211200'),(552, '211204', '清河区', '211200'),(553, '211221', '铁岭县', '211200'),(554, '211223', '西丰县', '211200'),(555, '211224', '昌图县', '211200'),(556, '211281', '调兵山市', '211200'),。
sqlite3 sql语句
sqlite3 sql语句SQLite3是一种轻量级的嵌入式关系型数据库管理系统,它支持SQL语言。
下面列举的是一些常用的SQLite3 SQL语句。
1. 创建表格:CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,...);2. 插入数据:INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);3. 查询数据:SELECT 列名1, 列名2, ... FROM 表名;4. 更新数据:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;5. 删除数据:DELETE FROM 表名 WHERE 条件;6. 创建索引:CREATE INDEX 索引名 ON 表名 (列名);7. 删除索引:DROP INDEX 索引名;8. 连接表格:SELECT 列名1, 列名2, ... FROM 表名1 INNER JOIN 表名2 ON 表名1.列名 = 表名2.列名;9. 排序数据:SELECT 列名1, 列名2, ... FROM 表名 ORDER BY 列名 ASC|DESC;10. 聚合函数:SELECT COUNT(列名) FROM 表名;SELECT SUM(列名) FROM 表名;SELECT AVG(列名) FROM 表名;SELECT MAX(列名) FROM 表名;SELECT MIN(列名) FROM 表名;11. 分组数据:SELECT 列名1, 聚合函数(列名2) FROM 表名 GROUP BY 列名1;12. 嵌套查询:SELECT 列名FROM 表名WHERE 列名IN (SELECT 列名FROM 表名 WHERE 条件);13. 事务处理:BEGIN TRANSACTION;SQL语句;COMMIT;14. 创建视图:CREATE VIEW 视图名AS SELECT 列名1, 列名2, ... FROM 表名WHERE 条件;15. 删除视图:DROP VIEW 视图名;以上是一些常用的SQLite3 SQL语句,可以通过它们来创建表格、插入、查询、更新和删除数据,创建和删除索引,连接表格,排序数据,进行聚合计算,分组数据,进行嵌套查询,处理事务以及创建和删除视图。
sql基础语句50条
sql基础语句50条 curdate() 获取当前⽇期年⽉⽇curtime() 获取当前时间时分秒sysdate() 获取当前⽇期+时间年⽉⽇时分秒*/order by bonus desclimit (页码-1)*每页显⽰记录数, 每页显⽰记录数*/foreign key dept_id references dept(id)--指定外键-- ------------------------------------- ⼀、创建建数据库、创建建数据表、查看数据库、查看数据表-- ------------------------------------- 01.查看mysql服务器中所有数据库show databases;-- 02.进⼊某⼀数据库(进⼊数据库后,才能操作库中的表和表记录)use (库名) tast;-- 查看已进⼊的库select database();-- 03.查看当前数据库中的所有表-- 04.删除mydb1库-- 语法:drop database 库名;drop database (库名) test;-- 思考:当删除的表不存在时,如何避免错误产⽣?drop database (库名) if exists test;-- 05.重新创建mydb1库,指定编码为utf8-- 语法:create database 库名 charset 编码;create database mubatis12 charset utf8;-- 如果不存在则创建mydb1;create database if not exists mubatis12 charset utf8;-- 06.查看建库时的语句(并验证数据库库使⽤的编码)-- 语法:show create database 库名;show create database mybatis1;-- 07.进⼊mydb1库,删除stu学⽣表(如果存在)-- 语法:drop table 表名;drop table if exists stu;-- 08.创建stu学⽣表(编号[数值类型]、姓名、性别、出⽣年⽉、考试成绩[浮点型])/* 建表的语法:create table 表名(列名数据类型,列名数据类型,...); */create table stu(id int primary key auto_increment,name varchar(20),gender varchar(20),birthday date,score double );-- 09.查看stu学⽣表结构show create table stu;desc stu;-- ------------------------------------- ⼆、新增、修改、删除表记录 **********-- ------------------------------------- 10.往学⽣表(stu)中插⼊记录(数据)-- 插⼊记录:insert into 表名(列1,列2,列3...) values(值1,值2,值3...);insert into stu (id,name,gender,birthday,score) values(1,'Tony','⼥','1998-07-02',99.5);insert into stu values(2,'Ben','男','1998-07-03',90);insert into stu values(4,'张三','男','1998-07-08',70);insert into stu values(5,'李四','男','1998-07-09',59);insert into stu values(6,'桂花','⼥','1998-07-09',80);insert into stu values(7,'秀芹','⼥','1998-07-10',50);insert into stu values(8,'海燕','⼥','1999-5-4',91);/* 提⽰:设置编码:set names gbk;查看MySQL数据库使⽤的编码:show variables like 'char%';mysql --default-character-set=gbk -uroot -proot */-- 11.查询stu表所有学⽣的信息select*from stu;-- 12.修改stu表中所有学⽣的成绩,加10分特长分-- 修改语法: update 表名 set 列=值,列=值,列=值...;update stu set score=score+10;-- 13.修改stu表中王海涛的成绩,将成绩改为88分。
计算机三级数据库辅导:SQLServer中Orderby不能直接在union子句中使用
有⼀个表,表中有很多数据,其中有个字段type,希望从表中随机取出10条记录,其中有5条type=1另外5条type=0,⽐如下图这样: 每个取top 5,既然是随机的取,那么就order by newid()就是了三,然后把所有数据union起来就得了。
所以我⽴即给出了答案: select top 5 * from xxx where type=1 order by newid() union select top 5 * from xxx where type=0 order by newid() 但是那个兄弟说不对,语法有错,我乍⼀看,好像没有问题把,于是让他把表定义发给我,我在本机试⼀下,表定义是: CREATE TABLE [dbo].[Question]( [id] [int] IDENTITY(1,1) NOT NULL, [question] [varchar](50) NOT NULL, [answer] [varchar](50) NOT NULL, [type] [bit] NOT NULL, CONSTRAINT [PK_Question] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]将语句输进SSMS,结果系统还真是报错了:Incorrect syntax near the keyword 'ORDER'. 怎么回事啊?于是单独执⾏ select top 5 * from dbo.Question where [type]=1 ORDER BY newid() 下⾯的半句也是⼀样的语法结构,也没有错误。
SQL数据库语句大全大全(完全整理版)
SQL语句大全--语句功能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据-数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域ALTER DOMAIN --改变域定义DROP DOMAIN --从数据库中删除一个域--数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限--事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08 when job_level = ’2’ then e_wage*1.07 when job_level = ’3’ then e_wage*1.06 else e_wage*1.05end--WHILE CONTINUE BREAK declare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句w aitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator value ex:(宿主)select * from stock_information where stockid = str(nid)stockname = 'str_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的范围)stockname like '[^F-M]%' --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber < 1000and stockindex = 24not stock*** = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π 即3.1415926535897936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值sql中的保留字action add aggregate allalter after and asasc avg avg_row_length auto_incrementbetween bigint bit binaryblob bool both bycascade case char characterchange check checksum columncolumns comment constraint createcross current_date current_time current_timestampdata database databases datedatetime day day_hour day_minuteday_second dayofmonth dayofweek dayofyeardec decimal default delayeddelay_key_write delete desc describedistinct distinctrow double dropend else escape escapedenclosed enum explain existsfields file first floatfloat4 float8 flush foreignfrom for full functionglobal grant grants grouphaving heap high_priority hourhour_minute hour_second hosts identifiedignore in index infileinner insert insert_id intinteger interval int1 int2int3 int4 int8 intoif is isam joinkey keys kill last_insert_idleading left length likelines limit load locallock logs long longbloblongtext low_priority max max_rowsmatch mediumblob mediumtext mediumintmiddleint min_rows minute minute_secondmodify month monthname myisamnatural numeric no notnull on optimize optionoptionally or order outeroutfile pack_keys partial passwordprecision primary procedure processprocesslist privileges read realreferences reload regexp renamereplace restrict returns revokerlike row rows secondselect set show shutdownsmallint soname sql_big_tables sql_big_selectssql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_joinstarting status string tabletables temporary terminated textthen time timestamp tinyblobtinytext tinyint trailing totype use using uniqueunlock unsigned update usagevalues varchar variables varyingvarbinary with write whenwhere year year_month zerofill查看全文常用SQL命令和ASP编程在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL 语句,如下:SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表where 字段名=字段值order by 字段名[desc]"sql="select * from 数据表where 字段名like %字段值% order by 字段名[desc]"sql="select top 10 * from 数据表where 字段名order by 字段名[desc]"sql="select * from 数据表where 字段名in (值1,值2,值3)"sql="select * from 数据表where 字段名between 值1 and 值2"(2) 更新数据记录:sql="update 数据表set 字段名=字段值where 条件表达式"sql="update 数据表set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名from 数据表where 条件表达式"set rs=conn.excute(sql)用rs("别名") 获取统的计值,其它函数运用同上。
数据库SQL查询语句大全
一、简单查询简单的SQL查询只包括选择列表、FROM子句和WHERE子句。
它们分别说明所查询列、查询的表或视图、以及搜索条件等。
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email 字段。
SELECT nickname,emailFROM testtableWHERE name='张三'(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列例如,下面语句显示testtable表中所有列的数据:SELECT *FROM testtable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:SELECT nickname,emailFROM testtable3、更改列标题在选择列表中,可重新指定列标题。
定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:SELECT 昵称=nickname,电子邮件=emailFROM testtable4、删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。
使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:SELECT TOP 2 *FROM testtableSELECT TOP 20 PERCENT *FROM testtable(二) FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。
数据库基本SQL语句大全
数据库基本_SQL语句大全学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下...其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作....一、基础1、说明:创建数据库Create DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\‘--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabnamecol1 type1 not null primary key,col2 type2 not null,..根据已有的表创建新表:A:create table tab_new like tab_old 使用旧表创建新表B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除;DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度;7、说明:添加主键:Alter table tabname add primary keycol说明:删除主键:Alter table tabname drop primary keycol8、说明:创建索引:create unique index idxname on tabnamecol….删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建;9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select from table1 where 范围插入:insert into table1field1,field2 valuesvalue1,value2删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料排序:select from table1 order by field1,field2 desc总数:select count as totalcount from table1求和:select sumfield1 as sumvalue from table1平均:select avgfield1 as avgvalue from table1最大:select maxfield1 as maxvalue from table1最小:select minfield1 as minvalue from table111、说明:几个高级查询运算词A:UNION 运算符UNION 运算符通过组合其他两个结果表例如TABLE1 和TABLE2并消去表中任何重复行而派生出一个结果表;当ALL 随UNION 一起使用时即UNION ALL,不消除重复行;两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2;B:EXCEPT 运算符EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表;当ALL 随EXCEPT 一起使用时EXCEPT ALL,不消除重复行;C:INTERSECT 运算符INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表;当ALL 随INTERSECT 一起使用时INTERSECT ALL,不消除重复行;注:使用运算词的几个查询结果行必须是一致的;12、说明:使用外连接A、left outer join:左外连接左连接:结果集几包括连接表的匹配行,也包括左连接表的所有行;SQL: select , , , , , from a LEFT OUT JOIN b ON =B:right outer join:右外连接右连接:结果集既包括连接表的匹配连接行,也包括右连接表的所有行;C:full outer join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录;二、提升1、说明:复制表只复制结构,源表名:a 新表名:b Access可用法一:select into b from a where 1<>1法二:select top 0 into b from a2、说明:拷贝表拷贝数据,源表名:a 目标表名:b Access可用insert into ba, b, c select d,e,f from b;3、说明:跨数据库之间表的拷贝具体数据使用绝对路径Access可用insert into ba, b, c select d,e,f from b in ‘具体数据库’ where 条件例子:..from b in ‘"&"."&"\" &"‘ where..4、说明:子查询表名1:a 表名2:bselect a,b,c from a where a IN select d from b 或者: select a,b,c from a where a IN 1,2,35、说明:显示文章、提交人和最后回复时间select ,, from table a,select maxadddate adddate from table where = b6、说明:外连接查询表名1:a 表名2:bselect , , , , , from a LEFT OUT JOIN b ON =7、说明:在线视图查询表名1:aselect from Select a,b,c FROM a T where > 1;8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值29、说明:in 的使用方法select from table1 where a not in ‘值1’,’值2’,’值4’,’值6’10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists select from table2 where =11、说明:四表联查问题:select from a left inner join b on = right inner join c on = inner join d on = where .....12、说明:日程安排提前五分钟提醒SQL: select from 日程安排where datediff‘minute‘,f开始时间,getdate>513、说明:一条sql 语句搞定数据库分页select top 10 b. from select top 20 主键字段,排序字段from 表名order by 排序字段desc a,表名b where b.主键字段= a.主键字段order by a.排序字段14、说明:前10条记录select top 10 form table1 where 范围15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.select a,b,c from tablename ta where a=select maxa from tablename tb where =16、说明:包括所有在TableA 中但不在TableB和TableC 中的行并消除所有重复行而派生出一个结果表select a from tableA except select a from tableB except select a from tableC 17、说明:随机取出10条数据select top 10 from tablename order by newid18、说明:随机选择记录select newid19、说明:删除重复记录Delete from tablename where id not in select maxid from tablename group by col1,col2,...20、说明:列出数据库里所有的表名select name from sysobjects where type=‘U‘21、说明:列出表里的所有的sele ct name from syscolumns where id=object_id‘TableName‘22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case;select type,sumcase vender when ‘A‘ then pcs else 0 end,sumcase vender when ‘C‘ then pcs else 0 end,sumcase vender when ‘B‘ then pcs else 0 end FROM tablename group by type显示结果:type vender pcs电脑A 1电脑A 1光盘B 2光盘A 2手机B 3手机C 323、说明:初始化表table1TRUNCATE TABLE table124、说明:选择从10到15的记录select top 5 from select top 15 from table order by id asc table_别名order by id desc三、技巧1、1=1,1=2的使用,在SQL语句组合时用的较多“where 1=1” 是表示选择全部“where 1=2”全部不选,如:if strWhere =‘beginset strSQL = ‘select count as Total from ‘ + tblName + ‘ where ‘ + strWhere endelsebeginset strSQL = ‘select count as Total from ‘ + tblName + ‘‘end我们可以直接写成set strSQ L = ‘select count as Total from ‘ + tblName + ‘ where 1=1 安定‘+ strWhere2、收缩数据库--重建索引DBCC REINDEXDBCC INDEXDEFRAG--收缩数据和日志DBCC SHRINKDBDBCC SHRINKFILE3、压缩数据库dbcc shrinkdatabasedbname4、转移数据库给新用户以已存在用户权限exec sp_change_users_login ‘update_one‘,‘newname‘,‘oldname‘go5、检查备份集RESTORE VERIFYONLY from disk=‘E:\‘6、修复数据库Alter DATABASE dvbbs SET SINGLE_USERGODBCC CHECKDB‘dvbbs‘,repair_allow_data_loss WITH TABLOCKGOAlter DATABASE dvbbs SET MULTI_USERGO7、日志清除SET NOCOUNT ONDECLARE LogicalFileName sysname,MaxMinutes INT,NewSize INTUSE tablename -- 要操作的数据库名Select LogicalFileName = ‘tablename_log‘, -- 日志文件名MaxMinutes = 10, -- Limit on time allowed to wrap log.NewSize = 1 -- 你想设定的日志文件的大小M-- Setup / initializeDECLARE OriginalSize intSelect OriginalSize = sizeFROM sysfilesWhere name = LogicalFileNameSelect ‘Original Size of ‘ + db_name + ‘ LOG is ‘ + CONVERTVARCHAR30,OriginalSize + ‘ 8K pages or ‘ + CONVERTVARCHAR30,OriginalSize8/1024 + ‘MB‘FROM sysfilesWhere name = LogicalFileNameCreate TABLE DummyTransDummyColumn char 8000 not nullDECLARE Counter INT,StartTime DATETIME,TruncLog VARCHAR255Select StartTime = GETDATE,TruncLog = ‘BACKUP LOG ‘ + db_name + ‘ WITH TRUNCATE_ONLY‘DBCC SHRINKFILE LogicalFileName, NewSizeEXEC TruncLog-- Wrap the log if necessary.WHILE MaxMinutes > DATEDIFF mi, StartTime, GETDATE -- time has not expiredAND OriginalSize = Select size FROM sysfiles Where name = LogicalFileNameAND OriginalSize 8 /1024 > NewSizeBEGIN -- Outer loop.Select Counter = 0WHILE Counter < OriginalSize / 16 AND Counter < 50000 BEGIN -- updateInsert DummyTrans VALUES ‘Fill Log‘Delete DummyTransSelect Counter = Counter + 1ENDEXEC TruncLogENDSelect ‘Final Size of ‘ + db_name + ‘ LOG is ‘ + CONVERTVARCHAR30,size + ‘ 8K pages or ‘ + CONVERTVARCHAR30,size8/1024 + ‘MB‘FROM sysfilesWhere name = LogicalFileNameDrop TABLE DummyTransSET NOCOUNT OFF8、说明:更改某个表exec sp_changeobjectowner ‘tablename‘,‘dbo‘9、存储更改全部表Create PROCEDUREOldOwner as NVARCHAR128,NewOwner as NVARCHAR128ASDECLARE Name as NVARCHAR128DECLARE Owner as NVARCHAR128DECLARE OwnerName as NVARCHAR128 DECLARE curObject CURSOR FORselect ‘Name‘ = name,‘Owner‘ = user_nameuidfrom sysobjectswhere user_nameuid=OldOwnerorder by nameOPEN curObjectFETCH NEXT FROM curObject INTO Name, Owner WHILEFETCH_STATUS=0BEGINif Owner=OldOwnerbeginset OwnerName = OldOwner + ‘.‘ + rtrimNameexec sp_changeobjectowner OwnerName, NewOwnerend-- select name,NewOwner,OldOwnerFETCH NEXT FROM curObject INTO Name, Owner ENDclose curObjectdeallocate curObjectGO10、SQL SERVER中直接循环写入数据declare i intset i=1while i<30begininsert into test userid valuesiset i=i+1end。
sql常用语句大全
sql常用语句大全以下是SQL中常用的语句:1. 查询语句:用于从数据库中检索数据。
- SELECT语句:用于从表中选择数据。
- FROM语句:用于从表中选择数据。
- WHERE语句:用于筛选数据。
- ORDER BY语句:用于排序数据。
- BY语句:用于对查询结果进行分组和排序。
2. 更新语句:用于更新数据库中的数据。
- UPDATE语句:用于在表中更新数据。
- WHERE语句:用于指定更新条件。
- SET语句:用于更新数据。
3. 删除语句:用于在数据库中删除数据。
- DELETE语句:用于从表中删除数据。
- WHERE语句:用于指定删除条件。
4. 创建语句:用于创建数据库、表、索引等。
-CREATE TABLE语句:用于创建一个表。
- AS语句:用于为表命名并提供别名。
- CONSTRAINT语句:用于为表创建约束条件。
5. 插入语句:用于向数据库中插入数据。
-INSERT INTO语句:用于向表中插入数据。
- VALUES语句:用于指定插入的数据。
6. 数据定义语句:用于定义数据库中的数据模型。
- PRIMARY KEY语句:用于为表创建主键。
- FOREIGN KEY语句:用于为表创建外键。
- KEY语句:用于为表创建索引。
7. 查询优化语句:用于优化查询性能。
- ANSI JOIN语句:用于连接两个表。
- NOT NULL语句:用于指定字段是否为非空。
- UNIQUE KEY语句:用于指定字段是否唯一。
8. 视图语句:用于简化复杂的查询。
- 视图定义语句:用于定义视图。
- 视图查询语句:用于查询视图中的数据。
9. 存储过程语句:用于执行复杂的操作并将结果存储回数据库中。
- 存储过程定义语句:用于定义存储过程。
- 存储过程执行语句:用于执行存储过程。
以上是SQL中常用的语句列表,SQL语句的使用可以极大地提高数据库的性能和灵活性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键:Alter table tabname drop primary key(col)8、说明:创建索引:create [uniqu e] index idxname on tabname(col….)删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where field1 like ‟%value1%‟ ---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc]总数:select count as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table111、说明:几个高级查询运算词A:UNION 运算符UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。
当ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。
两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。
B:EXCEPT 运算符EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。
当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C:INTERSECT 运算符INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
当ALL 随INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接A、left (outer) join:左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.cB:right (outer) join:右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full/cross (outer) join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:Group by:一张表,一旦分组完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据在selecte统计函数中的字段,不能和普通的字段放在一起;13、对数据库进行操作:分离数据库:sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名14.如何修改数据库的名称:sp_renamedb 'old_name', 'new_name'提升1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1(仅用于SQlServer)法二:select top 0 * into b from a2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)insert into b(a, b, c) selec t d,e,f from b in …具体数据库‟ where 条件例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..4、说明:子查询(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)5、说明:显示文章、提交人和最后回复时间select a.title,ername,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、说明:外连接查询(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c7、说明:在线视图查询(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1;8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值29、说明:in 的使用方法select * from table1 where a [not] in (…值1‟,‟值2‟,‟值4‟,‟值6‟)10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )11、说明:四表联查问题:select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....12、说明:日程安排提前五分钟提醒SQL: select * from 日程安排where datediff('minute',f开始时间,getdate())>513、说明:一条sql 语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段from 表名order by 排序字段desc) a,表名b where b.主键字段= a.主键字段order by a.排序字段具体实现:关于数据库分页:declare @start int,@end int@sql nvarchar(600)set @sql=‟select top‟+str(@end-@start+1)+‟+from T where rid not in(selecttop‟+str(@str-1)+‟Rid from T where Rid>-1)‟exec sp_executesql @sql注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。
Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。
因为这样可以避免top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引)技巧1、1=1,1=2的使用,在SQL语句组合时用的较多“where 1=1” 是表示选择全部“where 1=2”全部不选,如:if @strWhere !=''beginset @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhereendelsebeginset @strSQL = 'select count(*) as Total from [' + @tblName + ']'end我们可以直接写成set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定'+@strWhere2、收缩数据库--重建索引DBCC REINDEXDBCC INDEXDEFRAG--收缩数据和日志DBCC SHRINKDBDBCC SHRINKFILE3、压缩数据库dbcc shrinkdatabase(dbname)4、转移数据库给新用户以已存在用户权限exec sp_change_users_login 'update_one','newname','oldname'go5、检查备份集RESTORE VERIFYONLY from disk='E:\dvbbs.bak'6、修复数据库ALTER DATABASE [dvbbs] SET SINGLE_USERGODBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCKGOALTER DATABASE [dvbbs] SET MULTI_USERGO7、日志清除SET NOCOUNT ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INTUSE tablename -- 要操作的数据库名SELECT @LogicalFileName = 'tablename_log', -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log.@NewSize = 1 -- 你想设定的日志文件的大小(M)Setup / initializeDECLARE @OriginalSize intSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameSELECT 'Original Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameCREATE TABLE DummyTrans(DummyColumn char (8000) not null)DECLARE @Counter INT,@StartTime DATETIME,@TruncLog VARCHAR(255)SELECT @StartTime = GETDATE(),@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'DBCC SHRINKFILE (@LogicalFileName, @NewSize)EXEC (@TruncLog)-- Wrap the log if necessary.WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expiredAND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) AND (@OriginalSize * 8 /1024) > @NewSizeBEGIN -- Outer loop.SELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))BEGIN -- updateINSERT DummyTrans VALUES ('Fill Log') DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT 'Final Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),size) + ' 8K pages or ' +CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF数据开发-经典1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多2.数据库加密:select encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同encrypt('原始密码') select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同3.取回表中字段:declare @list varchar(1000),@sql nvarchar(1000)select @list=@list+','+ from sysobjects a,syscolumns b where a.id=b.id and ='表A'set @sql='select '+right(@list,len(@list)-1)+' from 表A'exec (@sql)4.查看硬盘分区:EXEC master..xp_fixeddrives5.比较A,B表是否相等:if (select checksum_agg(binary_checksum(*)) from A)=(select checksum_agg(binary_checksum(*)) from B)print '相等'elseprint '不相等'6.杀掉所有的事件探察器进程:DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocessesWHERE program_name IN('SQL profiler',N'SQL 事件探查器')EXEC sp_msforeach_worker '?'7.记录搜索:开头到N条记录Select Top N * From 表-------------------------------N到M条记录(要有主索引ID)Select Top M-N * From 表Where ID in (Select Top M ID From 表) Order by ID Desc ----------------------------------N到结尾记录Select Top N * From 表Order by ID Desc案例例如1:一张表有一万多条记录,表的第一个字段RecID 是自增长字段,写一个SQL 语句,找出表的第31到第40个记录。