2021年SQL语句大全实例

合集下载

sql常用语句100例

sql常用语句100例

--update phoneinfo set cityname = '克孜勒苏柯尔克孜' where cityname = '克孜勒苏柯尔克孜州'--update phoneinfo set cityname = '湘西' where pad1 = '湖南&nbsp;吉首'select * from dbo.PhoneInfo--update dbo.PhoneInfo set provincename=b.provincename,cityname=b.cityname from dbo.PhoneInfo a,PhoneInfo_hl b--where a.phonebound=b.phonebound--select * from dbo.UnknowPhoneBound--select * from dbo.Area--select * from phoneinfo a, phoneinfo_old b, phoneinfo_hl c where a.phonebound = b.phonebound and a.phonebound = c.phonebound and (a.cityname <> b.cityname or a.cityname <> c.cityname)--select * from phoneinfo a, phoneinfo_hl b where a.phonebound = b.phonebound and a.cityname <> b.citynameselect * from phoneinfo a, phoneinfo_old b where a.phonebound = b.phonebound and a.cityname <> b.cityname--select * into phoneinfo_bak from phoneinfo--select * from phoneinfo_bakselect * from phoneinfo a, phoneinfo_old b where a.phonebound = b.phonebound and a.cityname <> b.cityname--select * from dbo.PhoneInfo_Telecom--update PhoneInfo_Telecom set provincename = '内蒙古' where pad1 = '内蒙兴安盟'update PhoneInfo set cityname = '酒泉' where pad1 = '甘肃&nbsp;酒泉嘉峪关'--update dbo.PhoneInfo_old set provincename=b.provincename,cityname=b.cityname from dbo.PhoneInfo_old a,PhoneInfo_Telecom b--where a.phonebound=b.phoneboundcreate table client_allasselect t2.mobilephone,t2.clientName,t2.sex,t2.birthdayyear,t2.birthdaymonth,t2.birthdaydate,t2.cardtype,t2.FundPurchaseTotalFee,t2.InsurePurchaseTotalFee,t2.FundSource,t2.InsureSource,t2.BankSourcefrom (select mobilephone,clientName,Sex,birthdayyear,birthdaymonth,birthdaydate,cardtype,fund_sum_fee FundPurchaseTotalFee,insure_sum_fee InsurePurchaseTotalFee,case when sourceindustry = '±£ÏÕ'then'±£ÏÕ'end as FundSource,case when sourceindustry = '»ù½ð'then'»ù½ð'end as InsureSource,case when sourceindustry = 'ÒøÐÐ'then'ÒøÐÐ'end as BankSource from (select c.*, f.fund_sum_fee, insure_sum_feefrom client_55 cleft join (select sum(cast(fee as float)) fund_sum_fee,mobilephonefrom fund_client_behavior_55group by mobilephone) f on c.mobilephone =f.mobilephoneleft join (select sum(cast(fee as float)) insure_sum_fee,mobilephonefrom client_purchase_55group by mobilephone) i on i.mobilephone =c.mobilephone) t) t2。

sql语句并列条件

sql语句并列条件

sql语句并列条件SQL语句的并列条件是指在WHERE子句中使用多个条件来筛选数据。

下面是符合题目要求的10个SQL语句示例:1. 查询员工表中薪水大于5000并且职位为经理的员工:```SELECT * FROM 员工表 WHERE 薪水 > 5000 AND 职位 = '经理'; ```2. 查询订单表中订单状态为已发货或已完成的订单:```SELECT * FROM 订单表 WHERE 订单状态 = '已发货' OR 订单状态 = '已完成';```3. 查询学生表中年龄大于18且性别为女的学生:```SELECT * FROM 学生表 WHERE 年龄 > 18 AND 性别 = '女';```4. 查询商品表中价格大于100且库存小于50的商品:```SELECT * FROM 商品表 WHERE 价格 > 100 AND 库存 < 50;```5. 查询客户表中国家为中国或美国的客户:```SELECT * FROM 客户表 WHERE 国家 = '中国' OR 国家 = '美国'; ```6. 查询员工表中工资大于平均工资并且职位不是实习生的员工:```SELECT * FROM 员工表WHERE 工资> (SELECT AVG(工资) FROM 员工表) AND 职位 != '实习生';```7. 查询订单表中订单日期为2021年1月1日至2021年3月31日之间的订单:```SELECT * FROM 订单表WHERE 订单日期BETWEEN '2021-01-01' AND '2021-03-31';```8. 查询学生表中年龄大于等于18或性别为男的学生:```SELECT * FROM 学生表 WHERE 年龄 >= 18 OR 性别 = '男';```9. 查询商品表中价格大于100并且品牌为苹果或三星的商品:```SELECT * FROM 商品表 WHERE 价格 > 100 AND (品牌 = '苹果' OR 品牌 = '三星');```10. 查询客户表中注册日期在2020年之前并且国家不是中国的客户:```SELECT * FROM 客户表 WHERE 注册日期 < '2020-01-01' AND 国家 != '中国';```以上是10个SQL语句的示例,通过并列条件的使用,我们可以更灵活地筛选出符合特定条件的数据。

SQL数据库语句大全大全(完全整理版)之欧阳引擎创编

SQL数据库语句大全大全(完全整理版)之欧阳引擎创编

SQL语句大全欧阳引擎(2021.01.01)--语句功能--数据操作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.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @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 语句waitfordelay ’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 valueex:(宿主)select * fromstock_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 and100stocknumber 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, table2 where 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 =(selectmax(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 newtablefromoldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>,<expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值sql中的保留字action add aggregate all alter after and as asc avgavg_row_length auto_increment between bigint bit binary blob bool both by cascade case char character change check checksum column columns comment constraint create cross current_date current_time current_timestamp data database databases date datetime dayday_hour day_minute day_second dayofmonth dayofweek dayofyear dec decimal default delayed delay_key_write delete desc describe distinct distinctrow double drop end else escape escaped enclosed enum explain exists fields file first float float4 float8 flush foreign from for full function global grant grants group having heaphigh_priority hour hour_minute hour_second hosts identified ignore in index infile inner insert insert_id int integer interval int1 int2 int3 int4 int8 into if is isam join key keys kill last_insert_id leading left length like lines limit load local lock logs long longblob longtext low_priority max max_rows match mediumblob mediumtext mediumint middleint min_rows minute minute_second modify month monthname myisam natural numeric no not null on optimize option optionally or order outer outfile pack_keys partial password precision primary procedure process processlist privileges read realreferences reload regexp rename replace restrict returns revoke rlike row rows second select set show shutdown smallint sonamesql_big_tables sql_big_selects sql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_resultsql_warnings straight_join starting status string table tables temporary terminated text then time timestamp tinyblob tinytext tinyint trailing to type use using unique unlock unsigned update usage values varchar variables varying varbinary with write when where 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语句练习及参考答案(2021年整理精品文档)

SQL语句练习及参考答案(2021年整理精品文档)

SQL语句练习及参考答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(SQL语句练习及参考答案)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为SQL语句练习及参考答案的全部内容。

SQL 语句练习1。

设学生选课数据库有关系S (sno ,sname ,age ,sex )、SC (sno ,cno ,grade )和C (cno,cname,teacher ),分别表示学生、选课和课程,sno 代表学号,sname 代表学生姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。

试完成表示下列查询。

(1)检索年龄大于21的男学生学号(sno )和姓名(sname)。

(2)建立性别只能为“男”、“女"的约束。

(3)创建一个视图v1,该视图用来查询学生的选课情况,要求包含:学生姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。

(4)检索选修课程号为k1和k5的学生学号(sno ). (5)检索全部学生都选修的课程的课程号(cno)和课程名(cname )。

(6)删除所有男同学的选课记录。

1。

(1)select sno ,snae from s where sex=’男' and age 〉21(2)alter table s add constraint c1 check sex in (‘男’,’女')(3)create view v1 as select sname ,cname,teacher,grade from s ,sc ,c where s 。

常用经典SQL语句大全完整版

常用经典SQL语句大全完整版

常用经典SQL语句大全完整版--详解+实例下列语句部分是Mssql语句,不可以在access中使用。

SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句:1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXECsp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.d at’--- 开始备份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 [unique] index idxname on tabname(col….)删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。

SQL查询语句大全(集锦经典)

SQL查询语句大全(集锦经典)

SQL查询语句大全集锦MYSQL查询语句大全集锦一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。

它们分别说明所查询列、查询的表或视图、以及搜索条件等。

例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。

复制内容到剪贴板代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三'(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

1、选择所有列例如,下面语句显示testtable表中所有列的数据:复制内容到剪贴板代码:SELECT * FROM testtable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。

例如:复制内容到剪贴板代码:SELECT nickname,email FROM testtable3、更改列标题在选择列表中,可重新指定列标题。

定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:复制内容到剪贴板代码:SELECT 昵称=nickname,电子邮件=email FROM testtable4、删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。

使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。

例如:复制内容到剪贴板代码:SELECT TOP 2 * FROM `testtable`复制内容到剪贴板代码:SELECT TOP 20 PERCENT * FROM `testtable`(二) FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。

sql查询语句大全及实例

sql查询语句大全及实例

sql查询语句大全及实例1.提取查询(SELECT)SELECT 语句用于从数据库表中提取数据:实例:从"Persons"表中提取数据:SELECT * FROM Persons3.排序(ORDER BY)ORDER BY 语句用于在查询结果中对取出的数据排序:实例:依据金额(Amount)和日期(OrderDate)字段,对"Orders"表中的记录进行从高到低(desc)排序:SELECT * FROM Orders ORDER BY Amount DESC, OrderDate4.过滤(WHERE)WHERE 子句通常用于在 SELECT、UPDATE 和 DELETE 语句中来过滤选择的数据:5.上下文过滤(HAVING)HAVING 子句仅对聚合函数(AVG,COUNT,SUM 等)出现的结果进行过滤:实例:从"Orders"表中选择超过 5000 的订单:SELECT * FROM OrdersHAVING SUM(Amount) > 50006.插入(INSERT)INSERT 语句用于向数据库插入新记录:实例:向"Persons"表中插入一条新记录:INSERT INTO Persons (firstname, lastname, age, address, city)VALUES ('Glenn', 'Quagmire', 33, 'Coolsville', 'Anchorage');7.更新(UPDATE)UPDATE 语句用于更新数据库中的记录:9.创建数据库(CREATE DATABASE)CREATE DATABASE 语句用于创建新的数据库:实例:创建新的数据库“MyDataBase”:CREATE DATABASE MyDataBase实例:在“MyDataBase”中创建一个新表“Persons”:CREATE TABLE Persons(PersonID int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255))。

数据库sql语句大全实例

数据库sql语句大全实例

数据库sql语句大全实例以下是一些常见的数据库SQL语句实例:1. 创建表:CREATE TABLE 表名 (列1 数据类型,列2 数据类型,...);例如:CREATE TABLE students (id INT,name VARCHAR(50),age INT);2. 插入数据:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);例如:INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20);INSERT INTO students (id, name, age) VALUES (2, 'Bob', 22);3. 查询数据:SELECT 列1, 列2, ... FROM 表名 WHERE 条件;例如:SELECT * FROM students;SELECT name, age FROM students WHERE age > 20;4. 更新数据:UPDATE 表名 SET 列 = 值 WHERE 条件;例如:UPDATE students SET age = 21 WHERE name = 'Alice';5. 删除数据:DELETE FROM 表名 WHERE 条件;例如:DELETE FROM students WHERE age < 22;6. 创建索引:CREATE INDEX 索引名 ON 表名 (列1, 列2, ...);例如:CREATE INDEX idx_students_age ON students (age);7. 删除索引:DROP INDEX 索引名 ON 表名;例如:DROP INDEX idx_students_age ON students;以上是一些常见的数据库SQL语句实例,具体使用时需要根据具体的数据库类型和表结构进行调整。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL语句实例欧阳光明(2021.03. 07)表操作例1对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTS(SNO NUMERIC (6, 0) NOT NULLSNAME CHAR (8) NOT NULLAGE NUMERIC(3,0)SEX CHAR(2)BPLACE CHAR(20)PRIMARY KEY(SNO))例2对于表的教学管理数据库中的表ENROLLS ,可以定义如下:CREATE TABLE ENROLLS(SNO NUMERIC(6,0) NOT NULLCNO CHAR(4) NOT NULLGRADE INTPRIMARY KEY(SNO,CNO)FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO)FOREIGN KEY(CNO) REFERENCES COURSES(CNO)*欧阳光明*创编2021.03.07CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)))例3根据表的STUDENTS表,建立一个只包含学号.姓名.年龄的女学生表。

CREATE TABLE GIRLAS SELECT SNO, SNAME, AGEFROM STUDENTSWHERE SEX=女•;例4删除教师表TEACHER。

DROP TABLE TEACHER例5在教师表中增加住址列。

ALTER TABLE TEACHERSADD (ADDR CHAR(50))例6把STUDENTS表中的BPLACE列删除,并且把引用BPLACE列的所有视图和约束也一起删除。

ALTER TABLE STUDENTSDROP BPLACE CASCADE例7补充定义ENROLLS表的主关键字。

ALTER TABLE ENROLLSADD PRIMARY KEY (SNO,CNO);视图操作(虚表)例9建立一个只包括教师号.姓名和年龄的视图FACULTY。

(在视图定义中不能包含ORDER BY子句)*欧阳光明*创编2021.03.07CREATE VIEW FACULTYAS SELECT TNO, TNAME, AGEFROM TEACHERS例10从学生表.课程表和选课表中产生一个视图GRADE_TABLE,它包括学生姓名.课程名和成绩。

CREATE VIEW GRADE_TABLEAS SELECT SNAME,CNAME,GRADEFROM STUDENTS,COURSES,ENROLLSWHERE STUDENTS.SNO = ENROLLS.SNO ANDO=O例11删除视图GRADE_TABLEDROP VIEW GRADE_TABLE RESTRICT 索引操作例12在学生表中按学号建立索引。

CREATE UNIQUE INDEX STON STUDENTS (SNO,ASC)例13删除按学号所建立的索引。

DROP INDEX ST数据库模式操作例14创建一个简易教学数据库的数据库模式TEACHING.DB ,属主为ZHANG。

CREATE SCHEMATEACHING_DB AUTHRIZATION ZHANG*欧阳光明*创编2021.03.07例15删除简易教学数据库模式TEACHING_DB。

((1)选用CASCADE ,即当删除数据库模式时,则本数据库模式和其下属的基本表.视图.索引等全部被删除。

(2)选用RESTRICT,即本数据库模式下属的基本表.视图.索引等事先己清除,才能删除本数据库模式,否则拒绝删除。

)DROP SCHEMA TEACHING_DB CASCADE单表操作例16找出3个学分的课程号和课程名。

SELECT CNO, CNAMEFROM COURSESWHERE CREDIT = 3例17查询年龄大于22岁的学生情况。

SELECT *FROM STUDENTSWHERE AGE > 22例18找出籍贯为河北的男生的姓名和年龄。

SELECT SNAME, AGEFROM STUDENTSWHERE BPLACE ='河北’AND SEX ='男’例19找出年龄在20 一23岁之间的学生的学号、姓名和年龄,并按年龄升序排序。

(ASC (升序)或DESC (降序)声明排序的方式,缺省为升序。

)SELECT SNO, SNAME, AGE*欧阳光明*创编FROM STUDENTSWHERE AGE BETWEEN 20 AND 23ORDER BY AGE例20找出年龄小于23岁.籍贯是湖南或湖北的学生的姓名和性别。

(条件比较运算符V和逻辑运算符AND (与),此外还可以使用的运算符有: > (大于). >=(大于等于). <=(小于等于). <> (不等于).NOT (非).OR (或)等。

谓词LIKE只能与字符串联用,常常是“V列名> LIKE pattern-的格式。

特殊字符和“%”作为通配符。

谓词IN表示指定的属性应与后面的集合(括号中的值集或某个查询子句的结果)中的某个值相匹配,实际上是一系列的OR (或)的缩写。

谓词NOT IN表示指定的属性不与后面的集合中的某个勺相匹配。

谓词BETWEEN是“包含于…之中”的意思。

)SELECT SNAME, SEXFROM STUDENTSWHERE AGE < 23 AND BPLACE LIKE'湖%或SELECT SNAME, SEXFROM STUDENTSWHERE AGE < 23 AND BPLACE IN (* 湖南1, * 湖北1)例22找出学生表中籍贯是空值的学生的姓名和性别。

(在SQL 中不能使用条件:V列名> =NULL。

在SQL中只有一个特殊的查询条件允许查询NULL值:)SELECT SNAME, SEXFROM STUDENTSWHERE BPLACE IS NULL多表操作例23找出成绩为95分的学生的姓名。

(子查询)SELECT SNAMEFROM STUDENTSWHERE SNO =(SELECT SNOFROM ENROLLSWHERE GRADE = 95)例24找出成绩在90分以上的学生的姓名。

SELECT SNAMEFROM STUDENTSWHERE SNO IN(SELECT SNOFROM ENROLLSWHERE GRADE > 90)或SELECT SNAME*欧阳光明*创编2021.03.07*欧阳光明*创编2021.03.07FROM STUDENTSWHERE SNO = ANY(SELECT SNOFROM ENROLLSWHERE GRADE > 90)例25查询全部学生的学生名和所学课程号及成绩。

(连接查询)SELECT SNAME, CNO, GRADEFROM STUDENTS, ENROLLSWHERE STUDENTS.SNO = ENROLLS.SNO例26找出籍贯为山西或河北,成绩为90分以上的学生的姓名. 籍贯和成绩。

(当构造多表连接查询命令时,必须遵循两条规则。

第一,连接条件数正好比表数少1 (若有三个表,就有两个连接条件);第二,若一个表中的主关键字是由多个列组成,则对此主关键字中的每一个列都要有一个连接条件(也有少数例外情况))SELECT SNAME, BPLACE, GRADEFROM STUDENTS, ENROLLSWHERE BPLACE IN C山西5 , 4河北J AND GRADE > =90 AND STUDENTS.SNO=ENROLLS.SNO例28查出课程成绩在80分以上的女学生的姓名.课程名和成绩。

(FROM子句中的子查询)SELECT SNAME,CNAME, GRADEFROM (SELECT SNAME, CNAME , GRADEFROM STUDENTS, ENROLLS,COURSES*欧阳光明*创编2021.03.07*欧阳光明*创编WHERE SEX ='女')AS TEMP (SNAME, CNAME,GRADE)WHERE GRADE > 80表达式与函数的使用例29查询各课程的学时数。

(算术表达式宙算术运算符+ ./与列名或数值常量所组成。

)SELECT CNAME,COURSE_TIME = CREDIT* 16FROM COURSES例30找出教师的最小年龄。

(内部函数:SQL标准中只使用COUNT. SUM、AVG. MAX. MIN函数,称之为聚集函数(Set Function )。

COUNT函数的结果是该列统计值的总数目,SUM函数求该列统计值之和,AVG函数求该列统计值之平均值, MAX函数求该列最大值,MIN函数求该列最小值。

) SELECT MIN(AGE)FROM TEACHERS例31统计年龄小于等于22岁的学生人数。

(统计)SELECT COUNT(*)FROM STUDENTSWHERE AGE < = 22例32找出学生的平均成绩和所学课程门数。

SELECT SNO, AVG(GRADE), COURSES = COUNT(*)FROM ENROLLS GROUP BY SNO*欧阳光明*创编*欧阳光明*创编2021.03.07例34找出年龄超过平均年龄的学生姓名。

SELECT SNAMEFROM STUDENTSWHERE AGE >(SELECT AVG(AGE)FROM STUDENTS)例35找出各课程的平均成绩,按课程号分组,且只选择学生超过3人的课程的成绩。

(GROUP BY与HAVINGGROUP BY子句把一个表按某一指定列(或一些列)上的值相等的原则分组,然后再对每组数据逬行规定的操作。

GROUP BY子句总是跟在WHERE子句后面,当WHERE子句缺省时,它跟在FROM子句后面。

HAVING子句常用于在计算出聚集之后对行的查询逬行控制。

)SELECT CNO, AVG(GRADE), STUDENTS = COUNT(*)FROM ENROLLSGROUP BY CNOHAVING COUNTS) >= 3相关子查询例37查询没有选任何课程的学生的学号和姓名。

(当一个子查询涉及到一个来自外部查询的列肘,称为相关子查询(Correlated Subquery)o相关子查询要用到存在测试谓词EXISTS和NOT EXISTS ,以及ALL . ANY ( SOME )等。

)*欧阳光明*创编2021.03.07SELECT SNO, SNAMEFROM STUDENTSWHERE NOT EXISTS(SELECT *FROM ENROLLSWHERE ENROLLS.SNO=STUDENTS.SNO)例38查询哪些课程只有男生选读。

相关文档
最新文档