SQL基础语法集合

合集下载

sql 基础语法

sql 基础语法

sql 基础语法
摘要:
1.SQL 简介
2.SQL 的基本语法
2.1 数据定义
2.2 数据操作
2.3 数据查询
2.4 数据控制
正文:
【1.SQL 简介】
SQL(Structured Query Language,结构化查询语言)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL 是高级的非过程化编程语言,可以使程序员忽略系统的具体实现细节,只需指定数据的存储位置和存储方式,而不需要指定具体的存储方式和存取路径。

【2.SQL 的基本语法】
SQL 的基本语法包括数据定义、数据操作、数据查询和数据控制。

【2.1 数据定义】
数据定义主要是对数据库中的表进行定义,包括表名、列名、数据类型、主键和外键等。

数据定义的常用SQL 语句有CREATE TABLE、ALTER TABLE 和DROP TABLE 等。

【2.2 数据操作】
数据操作主要是对数据库中的数据进行添加、修改和删除等操作。

数据操作的常用SQL 语句有INSERT、UPDATE 和DELETE 等。

【2.3 数据查询】
数据查询是SQL 语言中最重要的功能之一,可以查询数据库中的数据,包括SELECT 语句和子查询等。

SELECT 语句是最基本的数据查询语句,可以查询表中的所有数据或者某一列的数据,也可以使用WHERE 子句进行条件查询。

【2.4 数据控制】
数据控制主要是对数据库中的数据进行控制,包括数据的访问权限、数据的备份和恢复等。

数据控制的常用SQL 语句有GRANT、REVOKE 和BACKUP 等。

基础sql语句

基础sql语句

基础sql语句1. SELECT: 用于查询表中的数据,可以使用通配符(*)表示所有列或者指定列名。

例子:SELECT * FROM table_name;2. FROM: 用于指定查询的数据来源,即需要查询哪张表。

例子:SELECT * FROM table_name;3. WHERE: 用于筛选满足条件的数据行,可以使用比较运算符(>,<,=,!=,>=,<=)等。

例子:SELECT * FROM table_name WHEREcolumn_name >= 10;4. ORDER BY: 用于将查询结果按照某个列进行排序,可以指定升序或降序(ASC或DESC)。

例子:SELECT * FROM table_name ORDER BYcolumn_name ASC;5. GROUP BY: 用于将查询结果按照某个列进行分组,通常使用聚合函数(SUM,COUNT,AVG,MAX,MIN)进行数据计算。

例子:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;6. LIMIT: 用于限制查询结果的数量,只返回前几条数据。

例子:SELECT * FROM table_name LIMIT 10;7. JOIN: 用于将多张表按照共同的字段进行连接,可以有多种连接方式(INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOIN)。

例子:SELECT * FROM table1 LEFT JOIN table2 ONtable1.column_name = table2.column_name.。

SQL语句大全(很全)sql语句用法

SQL语句大全(很全)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.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 语句waitfor 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 valueex:(宿主)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_name select 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.97936RAND([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_timestamp data database databases datedatetime day day_hour day_minute day_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查看全文分类: ( 一般分类 ) :: 评论 (0) :: 静态网址 :: 引用 (0)常用SQL命令和ASP编程发表人:kendy517 | 发表时间: 2007年二月09日, 11:57在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的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("别名") 获取统的计值,其它函数运用同上。

sqlwhich语法

sqlwhich语法

sqlwhich语法摘要:1.SQL 的基础语法2.SELECT 语句3.FROM 语句4.WHERE 语句5.GROUP BY 语句6.HAVING 语句7.ORDER BY 语句8.LIMIT 和OFFSET 语句9.JOIN 语句10.UNION 和UNION ALL 语句11.INSERT 语句12.UPDATE 语句13.DELETE 语句14.DDL 语句15.DML 语句正文:SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的编程语言。

它主要用于查询、插入、更新和删除数据库中的数据,还可以用于定义和管理数据库表结构。

SQL 具有丰富的语法,下面我们来详细了解一下。

1.SQL 的基础语法SQL 语句通常由SELECT、FROM、WHERE 等子句组成,它们共同构成了一个完整的SQL 查询语句。

在编写SQL 语句时,我们需要遵循一定的语法规则,例如使用关键字、分隔符和括号等。

2.SELECT 语句SELECT 语句用于查询数据库中的数据。

它可以选择一个或多个表中的列,并返回查询结果。

SELECT 语句的基本语法如下:```SELECT column1, column2,...FROM table_nameWHERE condition;```3.FROM 语句FROM 语句用于指定查询数据的来源,即数据库表。

在FROM 子句中,我们可以使用多个表名,用逗号分隔。

4.WHERE 语句WHERE 语句用于指定查询数据的条件。

在WHERE 子句中,我们可以使用各种比较运算符(如=、<>、>、<等)和逻辑运算符(如AND、OR、NOT 等)来组合条件。

5.GROUP BY 语句GROUP BY 语句用于对查询结果进行分组。

它可以根据一个或多个列对查询结果进行分组,并返回每个分组的汇总数据。

6.HAVING 语句HAVING 语句用于对分组后的查询结果进行筛选。

常用经典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 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 [unique] index idxname on tabname(col….)删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。

qrtz 基础sql

qrtz 基础sql

qrtz 基础sql摘要:1.SQL 概述2.SQL 的基本语法3.查询数据4.更新数据5.删除数据6.创建和修改表7.总结正文:1.SQL 概述SQL 是Structured Query Language 的缩写,中文意思是结构化查询语言。

SQL 是一种用于管理关系型数据库的编程语言,它可以用于查询、更新、删除和创建数据库中的数据。

SQL 具有丰富的功能和高度的灵活性,是数据库管理员和开发人员必备的技能。

2.SQL 的基本语法SQL 的基本语法包括以下几部分:- SELECT:用于查询数据- INSERT:用于插入数据- UPDATE:用于更新数据- DELETE:用于删除数据- CREATE:用于创建表- DROP:用于删除表- ALTER:用于修改表3.查询数据查询数据是SQL 中最基本的操作之一。

使用SELECT 语句可以选择表中的特定数据。

例如,假设有一个名为“students”的表,我们可以使用以下语句查询所有学生的姓名和年龄:```SELECT name, age FROM students;```4.更新数据更新数据是指修改数据库中已有的数据。

使用UPDATE 语句可以实现这个功能。

例如,假设我们要将“students”表中年龄大于18 的学生的年龄增加1 岁,可以使用以下语句:```UPDATE students SET age = age + 1 WHERE age > 18;```5.删除数据删除数据是指从数据库中移除特定的数据。

使用DELETE 语句可以实现这个功能。

例如,假设我们要删除“students”表中年龄大于20 的学生记录,可以使用以下语句:```DELETE FROM students WHERE age > 20;```6.创建和修改表创建表是指在数据库中新建一个表,而修改表则是指对已有的表进行调整。

使用CREATE 和ALTER 语句可以实现这两个功能。

SQL语句的基本语法

SQL语句的基本语法

SQL语句的基本语法一.SELECT语句的完整语法为:SELECT[ALL∣DISTINCT DISTINCTROW≡TOP]{* talbe. * [table. ]fieldl [AS aliasl] [, [table. ]field2[AS alias2] [, ∙∙∙]]} FROM tableexpression [, ∙∙∙] [IN external database][WHERE-][GROUP BY-][HAVING-][ORDER BY-][WITH OWNERACCESS OPTION]说明:用中括号(口)括起来的部分表示是可选的,用大括号({})括起来的部分是表示务必从中选择其中的一个。

1FRoM子句FROM子句指定了 SELECT语句中字段的来源。

FROM子句后面是包含一个或者多个的表达式(由逗号分开),其中的表达式可为单一表名称、已储存的查询或者由INNERJOIN、LEFT JOIN或者RIGHT JOIN得到的复合结果。

假如表或者查询存储在外部数据库,在IN子句之后指明其完整路径。

例:下列SQL语句返回所有有定单的客户:SELECT OrderID, Customer. CustomerIDFROM Orders CustomersWHERE Orders, CustomerID=Customers. CustomeersID2ALL、DISTINCT> DISTINCTROW> TOP 谓词(1)ALL返回满足SQL语句条件的所有记录。

假如没有指明这个谓词,默认为ALL 例:SELECT ALL FirstName, LastNameFROM Employees(2)DISTINCT假如有多个记录的选择字段的数据相同,只返回一个。

(3)DISTlNCTROW假如有重复的记录,只返回一个(4)TOP显示查询头尾若干记录。

也可返回记录的百分比,这是要用TOP N PERCENT子句(其中N表示百分比)例:返回5%定货额最大的定单SELECT TOP 5 PERCENT*FROM [ Order Details]ORDER BY UnitPrice*Quantity*(I-Discount) DESC3用AS子句为字段取别名假如想为返回的列取一个新的标题,或者者,通过对字段的计算或者总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。

SQL常用语法大全

SQL常用语法大全

SQL常⽤语法⼤全⼀、 Table 增加列1.增加列:alter table tableName add columnName varchar(30)1.2. 修改列类型:alter table tableName alter column columnName varchar(4000)1.3 修改列的名称:EXEC sp_rename 'tableName.column1' , 'column2' (把表名为tableName的column1列名修改为column2)1.4 删除列名ALTER TABLE At_StaffDailyRangeDetail DROP COLUMN column_name1.5 根据字段名查询表名SELECT as TableName, as columnname From syscolumns a INNER JOIN sysobjects b ON a.id=b.id AND b.type='U' AND ='Roles字段名'⼆、库转库:----insert into 库名1.dbo.表名(字段) select (字段) 库名2.dbo.表名三、case when :3.1 select (case Gender when 1 then '男' when 2 then '⼥' else '其他' end) as Gender from Table13.2 SELECT lft.FSName_Chinese, lft.fSNO,(CASE lft.FSNO WHEN 0 THEN '全天' WHEN 1 THEN '上半天' WHEN 2 THEN '下半天' ELSE '其它' end) as 休假类型 FROM leave_fitshift lft四、修改数据库字段空格UPDATE hr_Staff SET StaffName = RTRIM(LTRIM(StaffName))五、Excel拼接函数。

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

数据库和表--1、给数据库重命名alter database STUDENTmodify name=可爱的人----2、查看数据库信息EXECUTE sp_helpdb可爱的人----3、删除数据库DROP DATABASE可爱的人----4、创建数据库和表CREATE DATABASE STUDENTUSE STUDENTGOCREATE TABLE CJ(学号char(10)not null PRIMARY KEY, 课程号char(4)not null,成绩numeric)----5、查看表的结构信息execute sp_help CJ----6、向表中添加列ALTER table CJADD年龄char(4)null----7、修改列属性ALTER TABLE CJALTER COLUMN年龄char(10)NULL----8、修改列名EXEC sp_rename'CJ.年龄','岁数'----9、删除列ALTER TABLE CJDROP COLUMN岁数----10、向CJ表中插入记录USE STUDENTGOINSERT CJ(学号,课程号,成绩,岁数)VALUES(2006030101,'王林','89','18')----11、修改表中的数据(将CJ表中uoyou男生主那也名称改为"信息技术")UPDATE CJSET专业='信息技术'WHERE性别='男'数据约束和规则---12、在建表的同时,创建所需约束。

约束要求如下:()将学号设置为主键,主键名为pk_xuehao。

()为姓名添加惟一约束,约束名为uk_xymy。

()为性别添加默认约束,默认名称df_xybx,其值为“男”。

()为出生日期添加CHECK约束,约束名为ck_csrq,其检查条件为(出生日期>’/01/1986’)。

USE STUDENTGOCREATE TABLE STU1(学号CHAR(12)CONSTRAINT pk_xuehao PRIMARY KEY, 姓名CHAR(8)CONSTRAINT uk_xymy UNIQUE,性别CHAR(2)CONSTRAINT df_xybx DEFAULT'男',出生日期SMALLDATETIME CONSTRAINT ck_csrq check(出生日期>'01/01/1986'),家庭住址CHAR(30)NOT NULL,备注TEXT)GO----13.创建一个qqlx_rule规则,将其绑定到JBQK表的缺勤类型字段上,保证输入的缺勤类型只能是“”、“”、“”或“”。

create rule ru_HHAH as @num in('1,2,3,4')绑定规则sp_bindrule'ru_HHAH','JBQK.缺勤类型'sp_unbindrule'JBQK.缺勤类型'----14.删除qqlx_rule规则(注意:规则已绑定到JBQK表的缺勤类型字段上)。

drop rule ru_HHAH---15.创建一个qqly_def默认对象,将其绑定到JBQK表的缺勤理由字段上,使其默认值为“事假”。

create default理由as'事假'---16、删除默认对象qqly_def(注意:默认对象已绑定到JBQK 表的缺勤理由字段上)。

sp_bindefault'理由','JBQK.缺勤理由'sp_unbindefault'JBQK.缺勤理由'drop default理由alter table JBQKadd constraint fk_qqlx foreign key(缺勤类型) references QQLx(缺勤类型)---17、为YGKQ数据库中的JBQK表添加外键约束,要求如下:将缺勤类型设置为外键,其引用表为QQLX,外键名称为fk_qqlx。

alter table JBQKdrop constraint fk_qqlx数据查询(一)----18、查询XSDA表中所有学生的学号和总学分,并按总学分由高到低排序use xsgoSELECT学号,总学分FROM XSDAORDER BY总学分DESC----19、求学号为“”的学生选修课程的平均分数use xsgoSELECT选修课程的平均分数=AVG(成绩)FROM XSCJWHERE学号='200501'----20、求学号为“”的学生选修课程的最高分和最低分use xsgoSELECT最高分=MAX(成绩),最低分=MIN(成绩)FROM XSCJWHERE学号='200501'----21、求XSDA表中信息系学生的总人数use xsgoSELECT'信息系学生总人数'=COUNT(*)FROM XSDAWHERE系名='信息'----22、求XSCJ表中选修了课程的学生的总人数use xsgoSELECT'选修课程总人数'=COUNT(DISTINCT学号)FROM XSCJ----23、求XSDA表中男女生人数use xsgoSELECT性别,COUNT(*)AS'总人数'FROM XSDAGROUP BY性别GO----24) 查询所有学生的详细信息与选课信息。

SELECT*FROM sc right join student on sc.sno = student.sno ----25) 分别使用连接查询和子查询的方式检索所有选修了号课程的学生的姓名。

---连接查询select sname as姓名,cno AS课程编号from sc inner join student on sc.sno = student.sno and o ='2'----子查询select sname as姓名,cno AS课程编号from sc,studentwhere sc.sno = student.sno and o =(select cnofrom coursewhere cno = 2)----26) 分别使用连接查询和子查询的方式检索所有与“刘琳”在一个系学习的学生的姓名。

---连接查询select b.sname AS姓名from student a,student bWHERE a.sname ='刘琳'and b.sdept = a.sdept and b.sname <>'刘琳'----子连接select sname AS姓名from studentwhere sdept=(select sdeptfrom studentwhere sname ='刘琳')and sname <>'刘琳'---27) 查询其它系中比IS系任意一个学生年龄小的学生的姓名和年龄。

select sdept,sname,sagefrom studentwhere sdept !='is'and sage <all(select sagefrom studentwhere sdept ='is')----28) 查询其它系中比IS系所有学生年龄大的学生的姓名和年龄。

select sdept,sname,sagefrom studentwhere sdept !='is'and sage >any(select sagefrom studentwhere sdept ='is')----29) 将以上两个示例转换为MAX或MIN集函数的形式。

(4)select sdept,sname,sagefrom studentwhere sdept !='is'and sage <all(select min(sage)from studentwhere sdept ='is')(5)select sdept,sname,sagefrom studentwhere sdept !='is'and sage >any(select max(sage)from studentwhere sdept ='is')数据查询(二)----30) 使用EXISTS谓词查询所有选修了号课程的学生姓名。

select snamefrom studentwhere EXISTS(select*from scwhere sno.student = sc.sno and o ='1')----31、查询所有学生的详细信息。

use studentgoselect*from student----32、查询年龄在~23岁(包括岁和岁)之间的学生的姓名、系别和年龄。

select sname AS'姓名',sdept AS'系别',sage AS'年龄'from studentwhere sage between 20 and 23----33、查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

select sname AS'姓名',ssex AS'性别'from studentwhere sdept in('IS','MA','CS')----34、查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。

select sname AS'姓名',ssex AS'性别'from studentWHERE sdept NOT in('is','MA','CS')----35、查询所有姓刘学生的姓名、学号和性别。

select sname AS'姓名',sno AS'学号',ssex AS'性别' from studentWHERE sname LIKE'刘%'----36、查询名字中含有"阳"字的学生的姓名和学号。

select sname AS'姓名',sno AS'学号'from studentWHERE sname LIKE'%阳%'----37、在XSCJ表中求每门课成绩大于分的人数,并显示统计的明细select*from XSCJwhere成绩> 80order by课程编号COMPUTE COUNT(课程编号)BY课程编号----38、查找信息系所有男生的学号、姓名、性别和系名,并产生一个学生总人数行。

相关文档
最新文档