SQL语法整理

合集下载

mssql 查询语法

mssql 查询语法

mssql 查询语法
MSSQL(Microsoft SQL Server)是一种关系型数据库管理系统,其查询语法与标准SQL(Structured Query Language)类似。

以下是常用的MSSQL查询语法:
1. SELECT语句:用于从表中检索数据。

示例:SELECT 列名1, 列名2 FROM 表名WHERE 条件;
2. INSERT语句:用于向表中插入新的行数据。

示例:INSERT INTO 表名(列名1, 列名2) VALUES (值1, 值
2);
3. UPDATE语句:用于更新表中现有行的数据。

示例:UPDATE 表名SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;
4. DELETE语句:用于从表中删除行数据。

示例:DELETE FROM 表名WHERE 条件;
5. JOIN语句:用于合并多个表的数据。

示例:SELECT 列名FROM 表名1 INNER JOIN 表名2 ON 表名1.列名= 表名2.列名;
6. GROUP BY语句:用于对结果进行分组统计。

示例:SELECT 列名, COUNT(*) FROM 表名GROUP BY 列名;
7. ORDER BY语句:用于对结果进行排序。

示例:SELECT 列名FROM 表名ORDER BY 列名
ASC/DESC;
8. WHERE语句:用于筛选满足条件的数据。

示例:SELECT 列名FROM 表名WHERE 条件;
以上是一些常用的MSSQL查询语法,希望对您有帮助。

如果有更具体的问题,请提供详细信息以便给出更精确的答案。

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语法(整理自w3school)

SQL语法(整理自w3school)

SQL SELECT 语法SELECT 列名称 FROM 表名称以及:SELECT * FROM 表名称SQL SELECT 实例 如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表) , 请使用类似这样的 SELECT 语句:SELECT LastName,FirstName FROM Persons"Persons" 表:Id 1 2 3 LastName Adams Bush Carter FirstName John George Thomas Address Oxford Street Fifth Avenue Changan Street City London New York Beijing结果:LastName Adams Bush Carter FirstName John George ThomasSQL SELECT * 实例 现在我们希望从 "Persons" 表中选取所有的列。

请使用符号 * 取代列的名称,就像这样:SELECT * FROM Persons如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:SELECT DISTINCT Company FROM Orders现在,在结果集中,"W3School" 仅被列出了一次。

WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

语法SELECT 列名称 FROM 表名称 WHERE 列 运算符 值使用 WHERE 子句 如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:SELECT * FROM Persons WHERE City='Beijing'"Persons" 表LastName Adams Bush Carter Gates FirstName John George Thomas Bill Address Oxford Street Fifth Avenue Changan Street Xuanwumen 10 City London New York Beijing Beijing Year 1970 1975 1980 1985结果:LastName Carter Gates FirstName Thomas Bill Address Changan Street Xuanwumen 10 City Beijing Beijing Year 1980 1985引号的使用 请注意,我们在例子中的条件值周围使用的是单引号。

sql完整语法(SQLcompletesyntax)

sql完整语法(SQLcompletesyntax)

sql完整语法(SQL complete syntax)When ALL is used with EXCEPT (EXCEPT ALL), the duplicate rows are not eliminated.C:INTERSECT operatorThe INTERSECT operator derives a result table by including only rows in TABLE1 and TABLE2 and eliminating all duplicate rows. When ALL is used with INTERSECT (INTERSECT ALL), the duplicate rows are not eliminated.Note: several query results lines using arithmetic words must be consistent.12: Instructions: use of external connectionsA, left, outer, join:Left outer join (left join): the result set consists of the matching rows of the connection table, and all the rows of the left join table.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:Join (the right connection): the result set includes the matching connection connection table, including all the right connection table.C:full outer join:Full outer join: not only includes the matching rows of the symbolic join table, but also all the records in the two connection tables.Next, let's look at some nice SQL statements1. Note: copy table (copy only structure, source table name:a new table name: b) (Access available)Law 1: select * into B from a where 1<>1Method two: select top 0 * into B from a2: Description: copy table (copy data, source table name: a target table name: b) (Access available)Insert, into, B (a, B, c), select, D, e, F, from, b;3: Instructions: cross database table copy (specific data using absolute path) (Access available)Insert, into, B (a, B, c), select, D, e, F, from, B, in, specific database 'where' conditionsExample:..from, B, in ',' &Server.MapPath '(') '&' \data.mdb '&' where.. '4, note: the sub query (table name 1: a 2:b)Select, a, B, C, from, a, where, a, IN (select, D, from, b) or: select, a, B, C, from,, a, where, a, IN (1,2,3)5: Instructions: show the article, the author and the last reply timeSelect, a.title, ername, b.adddate, from, table, a, (select, max (adddate), adddate, from, table, where,table.title=a.title) B6, note: outer join (table name 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: Instructions: online view query (table name 1:a)Select * from (SELECT, a, B, C, FROM, a), T, where, T.A > 1;8: Description: between usage, between limit query data range, including the boundary value, not, between does not includeSelect * from, table1, where, time, between, time1, and, time2Select, a, B, C, from, table1, where, a, not, between, value 1, and, value 29, Description: in usageSelect * from, table1, where, a, [not], in, (` 1 ',' 2 ',' 4 ',' worth ')10 note: two tables, delete the main table already in the secondary table does not have the informationDelete, from, table1, where, not, exists (select * from, table2, where, table1.field1=table2.field1)11, note: four table joint search problem:Select *, from, a, left, join, B, on, a.a=b.b, right, inner, join, C, on, a.a=c.c, inner, join, inner, D, on, a.a=d.d, where,...12: Instructions: five minutes ahead of schedule reminderSQL: select * from schedule, where, DateDiff ('minute', F, start time, getdate ()) >513: Instructions: a SQL statement to achieve Database Paging选择前10 B *(选择前20主键字段,排序字段由排序字段DESC表名阶),表名B,B主键字段= A主键字段秩序的排序字段14、说明:前10条记录选择前10 *表表1,范围15、说明:选择在每一组B值相同的数据中对应的一最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等。

sql语法规则

sql语法规则

sql语法规则
SQL语法规则是用来指导书写SQL语句的一系列规则和约定。

以下是一些常见的SQL语法规则:
1. 关键字和函数名不区分大小写,但是一般习惯使用大写字母表示关键字,小写字母表示表名和列名。

2. SQL语句以分号(;)结尾。

在一些数据库管理系统中可以
省略分号,但是建议在每个语句后面加上分号以增加可读性和可维护性。

3. 一个SQL语句可以跨越多行,并使用缩进或换行来增加可
读性。

4. 在表名和列名中可以使用字母、数字和下划线,但是不能以数字开头。

5. 字符串可以用单引号(')或双引号(")括起来。

在使用引
号时要注意匹配使用。

6. 注释可以用两个减号(--)或者斜杠星号(/* */)表示,可以
用于注释单行或多行代码。

7. SQL语句可以使用通配符来模糊匹配数据,常用的通配符
有百分号(%)和下划线(_)。

8. SQL语句的关键字一般包括SELECT、FROM、WHERE、GROUP BY、ORDER BY等等,这些关键字的顺序对于SQL
语句的执行有重要的影响。

9. SQL语句可以使用逻辑运算符(AND、OR、NOT)和比较
运算符(=、<、>、<=、>=、<>)来组合和过滤数据。

10. SQL语句可以使用函数来对数据进行计算、转换或聚合。

以上只是SQL语法规则的一部分,不同的数据库管理系统可
能会有些许差异,具体的规则还需要根据所使用的数据库来确定。

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("别名") 获取统的计值,其它函数运用同上。

SQL基础语法与规则

SQL基础语法与规则

SQL基础语法与规则1.SQL语句使⽤分号(;)结尾2.SQL语句不区分⼤⼩写1. 不区分关键字的⼤⼩写,如select 或者 SELECT 都⼀样。

2. 但是插⼊到表中的数据是区分⼤⼩。

3.常数的书写⽅式是固定的1. 字符串、⽇期常数需要使⽤单引号(')括起来。

2. 数字常数⽆需单引号(直接书写数字即可)。

4.单词需要⽤半⾓空格或者换⾏来分割CREATE TABLE Product数据库的创建create database <数据库名称>;表的创建 create table <表名>;表的删除 drop table <表名>;保留表,删除全部数据 delete from <表名>;列的删除 alter table<表名> drop <列名>;表定义的更新 alter table <表名> add <列名>;如: alter table 表 add 列 varchar(100);数据的插⼊ insert into <表名> {列1,列2,列3} values {值1,值2,值};删除重复⾏ select distinct <列名> from <表名> ;列的查询 select <列名>,...from <表名>;数据的更新 update <表名> set <列名>= 新值 where <列名>= 旧值如:update class set fenshu=90 where name='王五' null记录的选取提供了专门⽤来判断是否为 NULL 的 IS NULL 运算符。

Group by ⼦句对表分组,GROUP BY就像是切分表的⼀把⼑,在 GROUPBY ⼦句中指定的列称为聚合键或者分组列。

SQL常用语句整理

SQL常用语句整理

SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL 语句操作。

一、基础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 typ e注:列增加后将不能删除。

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语句的基本语法一.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基本语法格式SQL的基本语法格式如下:1. SELECT语句:用于查询数据```sqlSELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;```2. INSERT语句:用于插入数据```sqlINSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);```3. UPDATE语句:用于更新数据```sqlUPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件; ```4. DELETE语句:用于删除数据```sqlDELETE FROM 表名 WHERE 条件;```5. CREATE TABLE语句:用于创建表```sqlCREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,...);```6. ALTER TABLE语句:用于修改表结构```sqlALTER TABLE 表名 ADD 列名数据类型;ALTER TABLE 表名 MODIFY 列名新数据类型;ALTER TABLE 表名 DROP 列名;```7. CREATE INDEX语句:用于创建索引```sqlCREATE INDEX 索引名 ON 表名 (列名);```8. DROP TABLE语句:用于删除表```sqlDROP TABLE 表名;```注意:以上语法格式仅为示例,并不包括所有的SQL语句和语法规则。

不同的数据库在具体的语法细节上可能会有所差异,具体的语法规则应根据使用的数据库类型进行查阅。

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拼接函数。

.sql文件 语法

.sql文件 语法

.sql文件通常包含一系列用于操作数据库的SQL(Structured Query Language)命令。

SQL是一种用于管理和操作关系型数据库的标准编程语言。

以下是SQL文件中常见的一些基本语法元素:
1.数据定义语言(DDL):用于定义或修改数据库结构。

包括CREATE、ALTER
和DROP命令。

o CREATE TABLE:用于创建新表。

o ALTER TABLE:用于修改现有表的结构。

o DROP TABLE:用于删除表。

2.数据操纵语言(DML):用于插入、查询、更新或删除数据库中的数据。


括INSERT、SELECT、UPDATE和DELETE命令。

o INSERT INTO:用于插入新记录。

o SELECT:用于查询数据。

o UPDATE:用于更新现有记录。

o DELETE:用于删除记录。

3.事务控制语言(TCL):用于控制事务处理,如COMMIT和ROLLBACK。

o COMMIT:用于提交事务。

o ROLLBACK:用于回滚事务。

4.其他命令:如SET、SHOW等,用于设置会话变量或显示信息。

5.注释:可以使用两种方式进行注释:--后跟注释内容或/* */包围注释
内容。

这些只是SQL的基础语法,实际上SQL还包括更复杂的功能和子句,如JOIN操作、子查询、存储过程等。

使用SQL时,应根据具体需求和所使用的数据库系统(如MySQL、PostgreSQL、Oracle等)来选择合适的语法和命令。

超详细的sql查询语法

超详细的sql查询语法

超详细的sql查询语法SQL查询语法详解一、SELECT语句SELECT语句是最常用的SQL查询语句,用于从数据库中检索数据。

其基本语法如下:SELECT 列名FROM 表名[WHERE 条件][ORDER BY 列名 [ASC|DESC]][LIMIT 数字]1. 列名:指定需要检索的列,可以使用通配符“*”代表所有列。

2. 表名:指定要查询的表名。

3. WHERE条件:可选项,用于筛选满足条件的记录。

4. ORDER BY子句:可选项,用于按指定列对查询结果进行排序,ASC表示升序,DESC表示降序。

5. LIMIT子句:可选项,用于限制查询结果的数量。

例如,查询员工表中所有员工的姓名和工资:SELECT 姓名, 工资FROM 员工表;二、WHERE条件WHERE条件用于筛选满足特定条件的记录。

常用的条件运算符有:1. 等于(=):用于判断两个值是否相等。

2. 不等于(<>或!=):用于判断两个值是否不相等。

3. 大于(>)和小于(<):用于判断一个值是否大于或小于另一个值。

4. 大于等于(>=)和小于等于(<=):用于判断一个值是否大于等于或小于等于另一个值。

5. BETWEEN...AND...:用于判断一个值是否在某个范围内。

6. LIKE:用于模糊匹配,可以使用通配符“%”表示任意字符,使用“_”表示单个字符。

例如,查询员工表中工资大于5000的员工:SELECT *FROM 员工表WHERE 工资 > 5000;三、ORDER BY子句ORDER BY子句用于对查询结果进行排序。

可以按照一个或多个列进行排序,可以指定升序(ASC)或降序(DESC)。

例如,查询员工表中的员工按照工资降序排列:SELECT *FROM 员工表ORDER BY 工资 DESC;四、LIMIT子句LIMIT子句用于限制查询结果的数量。

可以指定返回的记录数量。

例如,查询员工表中薪资前5名的员工:SELECT *FROM 员工表ORDER BY 薪资 DESCLIMIT 5;五、使用聚合函数聚合函数用于对数据进行统计和计算。

基础sql语句汇总

基础sql语句汇总

基础sql语句(1)数据记录筛选:#sql="select * from 数据表where 字段名=字段值order by 字段名"sql="select * from 数据表where 字段名like ‘%字段值%‘ order by 字段名"sql="select top 10 * from 数据表where 字段名order by 字段名"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数据库语句大全大全(完全整理版)

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。

超详细的SQL语句语法汇总

超详细的SQL语句语法汇总

超详细的SQL语句语法汇总1.INSERT (往数据表⾥插⼊记录的语句)INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);INSERT INTO 表名(字段名1, 字段名2, ……) SELECT 字段名1, 字段名2, …… FROM 另外的表名;字符串类型的字段值必须⽤单引号括起来, 例如: 'GOOD DAY'如果字段值⾥包含单引号' 需要进⾏字符串转换, 我们把它替换成两个单引号''.字符串类型的字段值超过定义的长度会出错, 最好在插⼊前进⾏长度校验.⽇期字段的字段值可以⽤当前数据库的系统时间SYSDATE, 精确到秒或者⽤字符串转换成⽇期型函数TO_DATE(‘2001-08-01','YYYY-MM-DD')TO_DATE()还有很多种⽇期格式, 可以参看ORACLE DOC.年-⽉-⽇⼩时:分钟:秒的格式YYYY-MM-DD HH24:MI:SSINSERT时最⼤可操作的字符串长度⼩于等于4000个单字节, 如果要插⼊更长的字符串, 请考虑字段⽤CLOB类型,⽅法借⽤ORACLE⾥⾃带的DBMS_LOB程序包.INSERT时如果要⽤到从1开始⾃动增长的序列号, 应该先建⽴⼀个序列号CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最⼤的值按字段的长度来定, 如果定义的⾃动增长的序列号 NUMBER(6) , 最⼤值为999999INSERT 语句插⼊这个字段值为: 序列号的名称.NEXTVAL2.DELETE (删除数据表⾥记录的语句)DELETE FROM表名 WHERE 条件;如果确实要删除⼀个⼤表⾥的全部记录, 可以⽤ TRUNCATE 命令, 它可以释放占⽤的数据块表空间TRUNCATE TABLE 表名;此操作不可回退.3.UPDATE (修改数据表⾥记录的语句)UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进⾏⾮空校验;值N超过定义的长度会出错, 最好在插⼊前进⾏长度校验..1.CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)ORACLE常⽤的字段类型有CHAR 固定长度的字符串VARCHAR2 可变长度的字符串NUMBER(M,N) 数字型M是位数总长度, N是⼩数的长度DATE ⽇期类型创建表时要把较⼩的不为空的字段放在前⾯, 可能为空的字段放在后⾯创建表时可以⽤中⽂的字段名, 但最好还是⽤英⽂的字段名创建表时可以给字段加上默认值, 例如 DEFAULT SYSDATE这样每次插⼊和修改时, 不⽤程序操作这个字段都能得到动作的时间创建表时可以给字段加上约束条件例如不允许重复 UNIQUE, 关键字 PRIMARY KEY2.ALTER (改变表, 索引, 视图等)改变表的名称ALTER TABLE 表名1 TO 表名2;在表的后⾯增加⼀个字段ALTER TABLE表名 ADD 字段名字段名描述;修改表⾥字段的定义描述ALTER TABLE表名 MODIFY字段名字段名描述;给表⾥的字段加上约束条件ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名);ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名);把表放在或取出数据库的内存区ALTER TABLE 表名 CACHE;ALTER TABLE 表名 NOCACHE;3.DROP (删除表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)删除表和它所有的约束条件DROP TABLE 表名 CASCADE CONSTRAINTS;4.TRUNCATE (清空表⾥的所有记录, 保留表的结构)TRUNCATE 表名;SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 条件;字段名可以带⼊函数例如: COUNT(*), MIN(字段名), MAX(字段名), AVG(字段名), DISTINCT(字段名),TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS')NVL(EXPR1, EXPR2)函数DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数LPAD(char1,n,char2)函数字段名之间可以进⾏算术运算例如: (字段名1*字段名1)/3查询语句可以嵌套例如: SELECT …… FROM(SELECT …… FROM表名1, [表名2, ……] WHERE 条件) WHERE 条件2;两个查询语句的结果可以做集合操作例如: 并集UNION(去掉重复记录), 并集UNION ALL(不去掉重复记录), 差集MINUS, 交集INTERSECT 分组查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] GROUP BY字段名1[HAVING 条件] ;两个以上表之间的连接查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名 = 表名2. 字段名 [ AND ……] ;SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名 = 表名2. 字段名(+) [ AND ……] ;有(+)号的字段位置⾃动补空值查询结果集的排序操作, 默认的排序是升序ASC, 降序是DESCSELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……]ORDER BY字段名1, 字段名2 DESC;字符串模糊⽐较的⽅法INSTR(字段名, ‘字符串')>0字段名 LIKE ‘字符串%' [‘%字符串%']每个表都有⼀个隐含的字段ROWID, 它标记着记录的唯⼀性.1.索引 (INDEX)CREATE INDEX 索引名ON 表名 ( 字段1, [字段2, ……] );ALTER INDEX 索引名 REBUILD;⼀个表的索引最好不要超过三个 (特殊的⼤表除外), 最好⽤单字段索引, 结合SQL语句的分析执⾏情况,也可以建⽴多字段的组合索引和基于函数的索引ORACLE8.1.7字符串可以索引的最⼤长度为1578 单字节ORACLE8.0.6字符串可以索引的最⼤长度为758 单字节ORACLE DOC上说字符串最⼤可以建索引的长度约是:数据块的⼤⼩(db_block_size)*40%2.视图 (VIEW)CREATE VIEW 视图名AS SELECT …. FROM …..;ALTER VIEW视图名 COMPILE;视图仅是⼀个SQL查询语句, 它可以把表之间复杂的关系简洁化.3.同义词 (SYNONMY)CREATE SYNONYM同义词名FOR 表名;CREATE SYNONYM同义词名FOR 表名@数据库链接名;4.数据库链接 (DATABASE LINK)CREATE DATABASE LINK数据库链接名CONNECT TO ⽤户名 IDENTIFIED BY 密码 USING ‘数据库连接字符串';数据库连接字符串可以⽤NET8 EASY CONFIG或者直接修改TNSNAMES.ORA⾥定义.数据库参数global_name=true时要求数据库链接名称跟远端数据库名称⼀样数据库全局名称可以⽤以下命令查出SELECT * FROM GLOBAL_NAME;查询远端数据库⾥的表SELECT …… FROM 表名@数据库链接名;1.GRANT 赋于权限常⽤的系统权限集合有以下三个:CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理)常⽤的数据对象权限有以下五个:ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名,DELETE ON 数据对象名, INSERT ON 数据对象名, ALTER ON 数据对象名GRANT CONNECT, RESOURCE TO ⽤户名;GRANT SELECT ON 表名 TO ⽤户名;GRANT SELECT, INSERT, DELETE ON表名 TO ⽤户名1, ⽤户名2;2.REVOKE 回收权限REVOKE CONNECT, RESOURCE FROM ⽤户名;REVOKE SELECT ON 表名 FROM ⽤户名;REVOKE SELECT, INSERT, DELETE ON表名 FROM ⽤户名1, ⽤户名2;。

sql常用语句大全

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语句的使用可以极大地提高数据库的性能和灵活性。

SQL语法大全及实例

SQL语法大全及实例

selec‎t的用法--每个员工的‎所有信息selec‎t * from emp;--每个人的部‎门编号,姓名,薪水selec‎t empno‎, ename‎, sal from emp;--每个人的年‎薪selec‎t ename‎, sal*12 from emp;--计算2*3的值selec‎t 2*3 from emp;--计算2*3的值(dual)selec‎t 2*3 from dual;--得到当前时‎间selec‎t sysda‎t e from dual;--可以给列起‎别名,比如求每个‎人的年薪selec‎t ename‎, sal*12 annua‎l_sal‎from emp;--如果别名中‎有空格,需要用双引‎号selec‎t ename‎, sal*12 "annua‎l sal" from emp;--如果没有内‎容,则为空selec‎t ename‎, sal, comm from emp; /*null*/--当空字段参‎与计算,则结果是n‎u ll--例如:计算每个人‎的全年的收‎入包括月薪‎和年终奖selec‎t ename‎, sal * 12 + comm from emp;--可以将多个‎字符串拼在‎一起。

比如:求每个人的‎薪水,格式为sm‎i th-sal-123selec‎t ename‎|| '-' || sal || '-' || comm from emp;--如果字符串‎中有单引号‎,需要用另外‎一个单引号‎转义,比如:这样一个字‎符串:he's frien‎d selec‎t ename‎|| 'he''s frien‎d' from emp;disti‎n ct 关键词的用‎法--求有哪些个‎部门selec‎t deptn‎o from emp;selec‎t disti‎n ct deptn‎o from emp;--可以用来修‎饰多个字段‎--求有哪些个‎部门和jo‎b的组合selec‎t deptn‎o , job from emp;selec‎t disti‎n ct deptn‎o , job from emp;--------------------------------------------------------where‎关键词的用‎法--可以是数值‎类型的等值‎判断。

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

用SQL进行表单查询现把整理和积累的SQL常用语句公开给大家,以方便大家在日常工作中使用.同时也希望各位同僚,继续提出宝贵建议,作出补充.显示数据表的结构:desc 数据表名查询所有记录:select * from 数据表查询所有记录的某些字段:select 字段名1,字段名2 from 数据表select name,age from 数据表查询某些字段的不同记录:select distinct job from 数据表在显示时去除相同的记录单条件查询:select * from数据表 where sal <= 2500select * from数据表where job != ‘MANAGER’select * from数据表where job ^= ‘MANAGER’select * from数据表where job <> ‘MANAGER’select * from 数据表 where sal ^= 1000select * from 数据表 where sal in(2000,1000,3000) / not in select * from 数据表where job in(‘MANAGER’,’CLERK’)select * from 数据表 where sal between 2000 and 3000 / not between select * from 数据表where job between ‘MANAGER’ and ’CLERK’select * from 数据表where job like ‘M%’ / not likeselect * from 数据表where job like ‘M_’like 和 not like 适合字符型字a段的查询,%代表任意长度的字符串,_代表一个任意的字符。

Like ‘m%’代表 m 开头的任意长度的字符串,like ‘m__’代表 m 开头的长度为3 的字符串select * from 数据表 where sal is null / not nullselect * from 数据表 where job is null组合条件的查询:逻辑与组合查询结果select * from 数据表where job >= ’CLERK’ and sal <= 2000逻辑或组合查询结果select * from 数据表where job >= ’CLERK’ or sal <= 2000逻辑非组合查询结果not job = ‘CLERK’ 等价于job <> ‘CLERK’select * from 数据表where not job = ‘CLERK排序查询:select * from 数据表where job <= ‘CLERK’ order by job asc, sal descselect * from 数据表 order by job asc, sal descorder by 可以指定查询结果如何排序,形式为字段名排序关键词;asc 代表升序排列,desc 代表降序排列,多个排序字段之间通过逗号分割。

若有 where 查询条件, order by 要放在 where 语句后面分组查询:将查询结果按照字段分组select empno, ename, job, sal from scott.emp group by job, empno, ename,sal having sall <= 2000select empne, ename, job, sal from scott.emp where sal <=2000 group by job, empno, ename, sal注:group by 后的字段必须与前面select 后的字段相对应where 检查每条记录是否符合条件,having 是检查分组后的各组是否满足条件。

having 语句只能配合 group by 语句使用,没有 group by 时不能使用 having ,但可以使用 where字段运算查询:select empno , ename , sal , mgr , sal + mgr from 数据表利用算术运算仅仅适合多个数值型字段或字段与数字之间的运算变换查询显示:select empno 编号, ename 姓名, job 工作, sal 薪水, from 数据表用SQL进行多表查询无条件多表查询:select emp.empno, emp.ename, emp.deptno, dept.dname, dept.locfrom scott.emp, scott.dept等值多表查询:select emp.empno, emp.ename, em.deptno, dept.dname, dept.locfrom scott.emp, scott.deptwhere scott.emp.deptno = scott.dept.deptno 等值多表查询将按照等值的条件查询多个数据表中关联的数据。

要求关联的多个数据表的某些字段具有相同的属性,即具有相同的数据类型,宽度和取值范围。

非等值多表查询:select emp.empno, emp.ename, em.deptno, dept.dname, dept.locfrom scott.emp, scott.deptwhere scott.emp.deptno != scott.dept.deptno and scott.emp.deptno = 10用SQL进行嵌套查询简单嵌套查询:select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal >= (select sal from scott.emp where ename = ‘WARD’)在这段代码中,子查询select sal from scott.emp where ename = ‘WARD’的含义是从emp数据表中查询姓名为WARD的员工的薪水,父查询的含义是要找出emp数据表中薪水大于等于WARD的薪水的员工。

带in 的嵌套查询:select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal in (select sal from scott.emp where ename = ‘WARD’)查询薪水和WARD相等的员工,也可以使用 not in 来查询带 any 的嵌套查询:select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal > any(select sal from scott.emp where job =‘MANAGER’)等价于:select sal from scott.emp where job = ‘MANAGER’查询结果为:1000,2500select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal > 1000 or sal > 2500带 some 的嵌套查询:select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal = some (select sal from scott.emp where job =‘MANAGER’)等价于:select sal from scott.emp where job = ‘MANAGER’查询结果为:1000,2500select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal = 1000 or sal = 2500带 all 的嵌套查询:select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal > all (select sal from scott.emp where job = ‘MANAGER’)等价于:select sal from scott.emp where job = ‘MANAGER’查询结果为:1000,2500select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal > 1000 and sal > 2500带 exists 的嵌套查询:select emp.empno, emp.ename, emp.job, emp.salfrom scott.emp, scott.deptwhere exists (select * from scott.emp where scott.emp.deptno = scott.dept.deptno)等价于:select sal from scott.emp where job = ‘MANAGER’查询结果为:1000,2500select emp.empno, emp.ename, emp.job, emp.salfrom scott.empwhere sal = 1000 and sal = 2500并操作的嵌套查询:并操作就是集合中并集的概念。

属于集合A 或集合B的元素总和就是并集。

(select deptno from scott.emp)union(select deptno from scott.dept)交操作的嵌套查询:交操作就是集合中交集的概念。

属于集合A 且属于集合B的元素总和是并集。

(select deptno from scott.emp)intersect(select deptno from scottdept)差操作的嵌套查询:差操作就是差集的概念。

属于集合A 且不属于集合B的元素总和是并集。

(select deptno from scott.emp)minus(select deptno from scottdept)用SQL进行函数查询ceil 函数:select mgr,mgr/100,ceil(mgr/100) from scott.empceil(n),取大于等于数值n的最小整数。

floor 函数:select mgr, mgr/100,floor(mgr/100) from scott.empfloor(n),取小于等于数值Nde 最大整数。

相关文档
最新文档