用途: 从指定表中取出指定的列的数据 语法:
解释: 从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。SELECT 陈述式的完整语法相当复杂,但主要子句可摘要为: SELECT select_list 例: “Persons” 表中的数据有 LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger 选出字段名” LastName”、” FirstName” 的数据 返回结果: LastName FirstName Hansen Ola Svendson Tove Pettersen Kari 选出所有字段的数据 返回结果:
LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger
用途: 被用来规定一种选择查询的标准 语法: 下面的操作符能被使用在WHERE中: =,<>,>,<,>=,<=,BETWEEN,LIKE 注意: 在某些SQL的版本中不等号< >能被写作为!= 解释: SELECT语句返回WHERE子句中条件为true的数据 例: 从” Persons”表中选出生活在” Sandnes” 的人 "Persons" 表中的数据有: LastName FirstName Address City Year Hansen Ola Timoteivn 10 Sandnes 1951 Svendson Tove Borgvn 23 Sandnes 1978 Svendson Stale Kaivn 18 Sandnes 1980 Pettersen Kari Storgt 20 Stavanger 1960 返回结果: LastName FirstName Address City Year Hansen Ola Timoteivn 10 Sandnes 1951 Svendson Tove Borgvn 23 Sandnes 1978 Svendson Stale Kaivn 18 Sandnes 1980
用途: 在WHERE子句中AND和OR被用来连接两个或者更多的条件 解释: AND在结合两个布尔表达式时,只有在两个表达式都为 TRUE 时才传回 TRUE OR在结合两个布尔表达式时,只要其中一个条件为 TRUE 时,OR便传回 TRUE 例: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Svendson Stephen Kaivn 18 Sandnes 用AND运算子来查找"Persons" 表中FirstName为”Tove”而且LastName为” Svendson”的数据 返回结果: LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes 用OR运算子来查找"Persons" 表中FirstName为”Tove”或者LastName为” Svendson”的数据 返回结果: LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes Svendson Stephen Kaivn 18 Sandnes 你也能结合AND和OR (使用括号形成复杂的表达式),如: 返回结果: LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes Svendson Stephen Kaivn 18 Sandnes
用途: 指定需返回数据的范围 语法: 例: “Persons”表中的原始数据 LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Nordmann Anna Neset 18 Sandnes Pettersen Kari Storgt 20 Stavanger Svendson Tove Borgvn 23 Sandnes 用BETWEEN…AND返回LastName为从”Hansen”到”Pettersen”的数据: 返回结果: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Nordmann Anna Neset 18 Sandnes Pettersen Kari Storgt 20 Stavanger
为了显示指定范围之外的数据,也可以用NOT操作符: 返回结果: LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes
用途: DISTINCT关键字被用作返回唯一的值 语法: 解释: 当column-name(s)中存在重复的值时,返回结果仅留下一个 例: “Orders”表中的原始数据 Company OrderNumber Sega 3412 W3Schools 2312 Trio 4678 W3Schools 6798 用DISTINCT关键字返回Company字段中唯一的值: 返回结果: Company Sega W3Schools Trio
用途: 指定结果集的排序 语法: 解释: 指定结果集的排序,可以按照ASC(递增方式排序,从最低值到最高值)或者DESC(递减方式排序,从最高值到最低值)的方式进行排序,默认的方式是ASC 例: “Orders”表中的原始数据: Company OrderNumber Sega 3412 ABC Shop 5678 W3Schools 2312 W3Schools 6798 按照Company字段的升序方式返回结果集: 返回结果: Company OrderNumber ABC Shop 5678 Sega 3412 W3Schools 6798 W3Schools 2312 按照Company字段的降序方式返回结果集: 返回结果: Company OrderNumber W3Schools 6798 W3Schools 2312 Sega 3412 ABC Shop 5678
用途: 对结果集进行分组,常与汇总函数一起使用。 语法: 例: “Sales”表中的原始数据: Company Amount W3Schools 5500 IBM 4500 W3Schools 7100 按照Company字段进行分组,求出每个Company的Amout的合计: 返回结果: Company SUM(Amount) W3Schools 12600 IBM 4500
用途: 指定群组或汇总的搜寻条件。 语法: 解释: HAVING 通常与 GROUP BY 子句同时使用。不使用 GROUP BY 时,HAVING 则与 WHERE 子句功能相似。 例: “Sales”表中的原始数据: Company Amount W3Schools 5500 IBM 4500 W3Schools 7100 按照Company字段进行分组,求出每个Company的Amout的合计在10000以上的数据: 返回结果: Company SUM(Amount) W3Schools 12600
用途: 当你要从两个或者以上的表中选取结果集时,你就会用到JOIN。 例: “Employees”表中的数据如下,(其中ID为主键): ID Name 01 Hansen, Ola 02 Svendson, Tove 03 Svendson, Stephen 04 Pettersen, Kari “Orders”表中的数据如下: ID Product 01 Printer 03 Table 03 Chair 用Employees的ID和Orders的ID相关联选取数据: 返回结果: Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair 或者你也可以用JOIN关键字来完成上面的操作: INNER JOIN的语法: 解释: INNER JOIN返回的结果集是两个表中所有相匹配的数据。
LEFT JOIN的语法: 用”Employees”表去左外联结”Orders”表去找出相关数据: 返回结果: Name Product Hansen, Ola Printer Svendson, Tove Svendson, Stephen Table Svendson, Stephen Chair Pettersen, Kari 解释: LEFT JOIN返回”first_table”中所有的行尽管在” second_table”中没有相匹配的数据。
RIGHT JOIN的语法: 用”Employees”表去右外联结”Orders”表去找出相关数据: 返回结果: Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair 解释: RIGHT JOIN返回” second_table”中所有的行尽管在”first_table”中没有相匹配的数据。
用途: 可用在表、结果集或者列上,为它们取一个逻辑名称 语法: 给列取别名: 给表取别名: 例: “Persons”表中的原始数据: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger 运行下面的SQL: 返回结果: Family Name Hansen Ola Svendson Tove Pettersen Kari 运行下面的SQL: 返回结果: Employees中的数据有: LastName FirstName Hansen Ola Svendson Tove Pettersen Kari
用途: 在表中插入新行 语法: 插入一行数据 插入一行数据在指定的字段上 例: “Persons”表中的原始数据: LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger 运行下面的SQL插入一行数据: 插入后”Persons”表中的数据为: LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes 运行下面的SQL插入一行数据在指定的字段上: 插入后”Persons”表中的数据为: LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes Rasmussen Storgt 67
用途: 更新表中原有数据 语法: 例: “Person”表中的原始数据: LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Storgt 67 运行下面的SQL将Person表中LastName字段为”Rasmussen”的FirstName更新为”Nina”: 更新后”Person”表中的数据为: LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Storgt 67 同样的,用UPDATE语句也可以同时更新多个字段: 更新后”Person”表中的数据为: LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger
用途: 删除表中的数据 语法: 例: “Person”表中的原始数据: LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger 删除Person表中LastName为”Rasmussen”的数据: 执行删除语句后”Person”表中的数据为: LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger
用途: 建立新的资料表。 语法: 例: 创建一张叫“Person”的表,该表有4个字段"LastName", "FirstName", "Address", "Age": 如果想指定字段的最大存储长度,你可以这样: 下表中列出了在SQL的一些数据类型: Data Type Description integer(size) Hold integers only. The maximum number of digits are specified in parenthesis. decimal(size,d) Hold numbers with fractions. The maximum number of digits are specified in "size". The maximum number of digits to the right of the decimal is specified in "d". char(size) Holds a fixed length string (can contain letters, numbers, and special characters). The fixed size is specified in parenthesis. varchar(size) Holds a variable length string (can contain letters, numbers, and special characters). The maximum size is specified in parenthesis. date(yyyymmdd) Holds a date
用途: 在已经存在的表中增加后者移除字段 语法: 注意:某些数据库管理系统不允许移除表中的字段
例: “Person”表中的原始数据: LastName FirstName Address Pettersen Kari Storgt 20
在Person表中增加一个名为City的字段: 增加后表中数据如下: LastName FirstName Address City Pettersen Kari Storgt 20
移除Person表中原有的Address字段: 移除后表中数据如下: LastName FirstName City Pettersen Kari
用途: 在数据库中移除一个数据表定义及该数据表中的所有资料、索引、触发程序、条件约束及权限指定。 语法:
用途: 建立新的数据库. 语法:
用途: 移除原有的数据库 语法:
用途: 传回选取的结果集中行的数目。 语法: 例: “Persons”表中原始数据如下: Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari 19 选取记录总数: 执行结果:
用途: 以表达式传回所有值的总和,或仅 DISTINCT 值。SUM 仅可用于数值资料行。已忽略 Null 值。 语法: 例: “Persons”表中原始数据如下: Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari 19 选取”Persons”表中所有人的年龄总和: 执行结果: 选取”Persons”表中年龄超过20岁的人的年龄总和: 执行结果:
用途: 传回选取的结果集中值的平均值。已忽略 Null 值。 语法: 例: “Persons”表中原始数据如下: Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari 19 选取”Persons”表中所有人的平均年龄: 执行结果: 选取”Persons”表中年龄超过20岁的人的平均年龄: 执行结果:
用途: 传回选取的结果集中值的最大值。已忽略 Null 值。 语法: 例: “Persons”表中原始数据如下: Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari 19 选取”Persons”表中的最大年龄: 执行结果:
用途: 传回选取的结果集中值的最小值。已忽略 Null 值。 语法: 例: “Persons”表中原始数据如下: Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari 19 选取”Persons”表中的最小年龄: 执行结果:
用途: 传回指定数值表达式 (Numeric Expression) 的绝对正值。 语法: 例: 执行结果:
用途: 传回大于等于给定数值表达式的最小整数。 语法: 例: 执行结果:
用途: 传回小于或等于给定数值表达式的最大整数。 语法: 例: 执行结果:
用途: 在指定表达式中传回指定角度 (以弪度为单位) 的三角余弦值的数学函数。 语法: 例: 执行结果:
用途: 传回以弧度为单位的角度值,其余弦为指定的 float 表达式,也称为反余弦。 语法: 例: 执行结果:
用途: 以近似的数值 (float) 表达式传回给定角度 (以弧度) 之三角正弦函数 (Trigonometric Sine)。 语法: 例: 执行结果:
用途: 传回以弪度为单位的角度,其正弦为指定的 float 表达式 (也称为反正弦)。 语法: 例: 执行结果:
用途: 传回输入表达式的正切函数。 语法: 例: 执行结果:
用途: 传回以弪度为单位的角度,其正切为指定的 float 表达式 (也称为反正切)。 语法: 例: 执行结果:
用途: 传回给定的 float 表达式的指数 (Exponential) 值。 语法: 例: 执行结果:
用途: 传回给定的 float 表达式之自然对数。 语法: 例: 执行结果:
用途: 传回给定表达式指定乘幂的值。 语法: 例: 执行结果:
用途: 传回给定的表达式之正 (+1)、零 (0) 或负 (-1) 号。 语法: 例: 执行结果:
用途: 传回给定表达式的平方。 语法: 例: 执行结果:
Select
SELECT column_name(s) FROM table_name
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
SELECT LastName,FirstName FROM Persons
SELECT * FROM Persons
Where
SELECT column FROM table WHERE column condition valueSELECT * FROM Persons WHERE City='Sandnes'
And & Or
"Persons" 表中的原始数据:
SELECT * FROM PersonsWHERE FirstName='Tove'AND LastName='Svendson'
SELECT * FROM PersonsWHERE firstname='Tove'OR lastname='Svendson'
SELECT * FROM Persons WHERE(FirstName='Tove' OR FirstName='Stephen')AND LastName='Svendson'
Between…And
SELECT column_name FROM table_nameWHERE column_nameBETWEEN value1 AND value2
SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen'
SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Hansen' AND 'Pettersen'
Distinct
SELECT DISTINCT column-name(s) FROM table-name
SELECT DISTINCT Company FROM Orders
Order by
SELECT column-name(s) FROM table-name ORDER BY { order_by_expression [ ASC | DESC ] }
SELECT Company, OrderNumber FROM OrdersORDER BY Company
SELECT Company, OrderNumber FROM OrdersORDER BY Company DESC
Group by
SELECT column,SUM(column) FROM table GROUP BY column
SELECT Company,SUM(Amount) FROM SalesGROUP BY Company
Having
SELECT column,SUM(column) FROM tableGROUP BY columnHAVING SUM(column) condition value
SELECT Company,SUM(Amount) FROM SalesGROUP BY Company HAVING SUM(Amount)>10000
Join
SELECT Employees.Name, Orders.ProductFROM Employees, OrdersWHERE Employees.ID = Orders.ID
SELECT Employees.Name, Orders.ProductFROM EmployeesINNER JOIN OrdersON Employees.ID = Orders.IDSELECT field1, field2, field3FROM first_tableINNER JOIN second_tableON first_table.keyfield = second_table.foreign_keyfieldSELECT field1, field2, field3FROM first_tableLEFT JOIN second_tableON first_table.keyfield = second_table.foreign_keyfieldSELECT Employees.Name, Orders.ProductFROM EmployeesLEFT JOIN OrdersON Employees.ID = Orders.ID
SELECT field1, field2, field3FROM first_tableRIGHT JOIN second_tableON first_table.keyfield = second_table.foreign_keyfieldSELECT Employees.Name, Orders.ProductFROM EmployeesRIGHT JOIN OrdersON Employees.ID = Orders.ID
Alias
SELECT column AS column_alias FROM tableSELECT column FROM table AS table_alias
SELECT LastName AS Family, FirstName AS NameFROM Persons
SELECT LastName, FirstNameFROM Persons AS Employees
Insert Into
INSERT INTO table_nameVALUES (value1, value2,....)INSERT INTO table_name (column1, column2,...)VALUES (value1, value2,....)
INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')
INSERT INTO Persons (LastName, Address)VALUES ('Rasmussen', 'Storgt 67')
Update
UPDATE table_name SET column_name = new_valueWHERE column_name = some_value
UPDATE Person SET FirstName = 'Nina'WHERE LastName = 'Rasmussen'
UPDATE PersonSET Address = 'Stien 12', City = 'Stavanger'WHERE LastName = 'Rasmussen'
Delete
DELETE FROM table_name WHERE column_name = some_value
DELETE FROM Person WHERE LastName = 'Rasmussen'
Create Table
CREATE TABLE table_name(column_name1 data_type,column_name2 data_type,.......)CREATE TABLE Person (LastName varchar,FirstName varchar,Address varchar,Age int)CREATE TABLE Person (LastName varchar(30),FirstName varchar(30),Address varchar(120),Age int(3) )
int(size)
smallint(size)
tinyint(size)
numeric(size,d)
Alter Table
ALTER TABLE table_name ADD column_name datatypeALTER TABLE table_name DROP COLUMN column_name
ALTER TABLE Person ADD City varchar(30)
ALTER TABLE Person DROP COLUMN Address
Drop Table
DROP TABLE table_nameCreate Database
CREATE DATABASE database_nameDrop Database
DROP DATABASE database_name聚集函数
count
SELECT COUNT(column_name) FROM table_name
SELECT COUNT(Name) FROM Persons3sum
SELECT SUM(column_name) FROM table_name
SELECT SUM(Age) FROM Persons98SELECT SUM(Age) FROM Persons WHERE Age>2079avg
SELECT AVG(column_name) FROM table_name
SELECT AVG(Age) FROM Persons32.67SELECT AVG(Age) FROM Persons WHERE Age>2039.5max
SELECT MAX(column_name) FROM table_name
SELECT MAX(Age) FROM Persons45min
SELECT MIN(column_name) FROM table_name
SELECT MIN(Age) FROM Persons19算术函数
abs
ABS(numeric_expression)
ABS(-1.0) ABS(0.0) ABS(1.0)1.0 0.0 1.0ceil
CEIL(numeric_expression)
CEIL(123.45) CEIL(-123.45)124.00 -123.00floor
FLOOR(numeric_expression)
FLOOR(123.45) FLOOR(-123.45)123.00 -124.00cos
COS(numeric_expression)
COS(14.78)-0.599465cosh
COSH(numeric_expression)
COSH(-1)3.14159sin
SIN(numeric_expression)
SIN(45.175643)0.929607sinh
SINH(numeric_expression)
SINH(-1.00)-1.5708tan
TAN(numeric_expression)
TAN(3.14159265358979/2)1.6331778728383844E+16tanh
TANH(numeric_expression)
TANH(-45.01)-1.54858exp
EXP(numeric_expression)
EXP(378.615345498)2.69498e+164 log
LOG(numeric_expression)
LOG(5.175643)1.64396 power
POWER(numeric_expression,v)
POWER(2,6)64sign
SIGN(numeric_expression)
SIGN(123) SIGN(0) SIGN(-456)1 0 -1sqrt
SQRT(numeric_expression)
SQRT(10)100
博客围绕SQL数据库操作展开,涉及表操作、连接、插入等内容。SQL在数据库管理中至关重要,通过这些操作可实现数据的有效存储与管理。

512

被折叠的 条评论
为什么被折叠?



