SQL语句 & 查询表结构

【group by】

对结果集进行分组,常与汇总函数一起使用。

SELECT column,SUM(column) FROM table GROUP BY column

HAVING 通常与 GROUP BY 子句同时使用。不使用 GROUP BY 时, HAVING 则与 WHERE 子句功能相似。

Company                          Amount

W3Schools                         5500

IBM                                       4500

W3Schools                         7100

按照 Company 字段进行分组,求出每个 Company 的 Amout 的合计在 10000 以上的数据:

SELECT Company,SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount)>10000

返回结果 :

Company                        SUM(Amount)

W3Schools                            12600

===============================================================

WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。

HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

===============================================================

SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer=‘Bush‘OR Customer=‘Adams‘GROUPBY Customer
HAVINGSUM(OrderPrice)>1500

===============================================================

订单总金额少于 2000 的客户。

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUPBY Customer
HAVINGSUM(OrderPrice)<2000

===============================================================

【as子句】

P52    更名运算

select custome_name, borrower, loan_number   as loan_id,amount

定义元组变量:

from borrower as T, loan as S

自身连接

select disitinct T.branch_name  form branch as T, branch as S

where T.assets > S.assets  and S.branch_city = ‘Brooklyn‘

【MySQL数据库中,如何查看一个表的表结构,如何查看其主键】

desc 表名; 有一个Key的字段,值为‘PRI‘的就是主键

一、简单描述表结构,字段类型

desc tabl_name;

显示表结构,字段类型,主键,是否为空等属性,但不显示外键。

二、查询表中列的注释信息

select * from information_schema.columns

where table_schema = ‘db‘  #表所在数据库

and table_name = ‘tablename‘ ; #你要查的表

三、只查询列名和注释

select  column_name, column_comment from information_schema.columns where table_schema =‘db‘  and table_name = ‘tablename‘ ;

四、#查看表的注释

select table_name,table_comment from information_schema.tables  where table_schema = ‘db‘ and table_name =‘tablename‘

ps:二~四是在元数据表中查看,我在实际操作中,常常不灵光,不知为什么,有了解的大侠请留印。

五、查看表生成的DDL:show create table table_name;表结构、类型,外键,备注全部显示出来。

【SQL 函数】

- AVG (平均)

- COUNT (计数)

- MAX (最大值)

- MIN (最小值)

- SUM (总合)

SELECT "函数名"("栏位名") FROM "表格名";

SELECT SUM(Sales) FROM Store_Information;

【count()函数】

http://www.jb51.net/w3school/sql/sql_func_count_ast.htm

本例返回 "Persons" 表中的行数:SELECT COUNT(*) FROM Persons

返回大于 20 岁的人数:SELECT COUNT(*) FROM Persons WHERE Age>20

SELECT COUNT (Store_Name) FROM Store_Information WHERE Store_Name IS NOT NULL;

SELECT COUNT (DISTINCT Store_Name) FROM Store_Information;

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

【http://www.w3school.com.cn/sql/】【根据已整理的资料,系统地学习】

【http://www.1keydata.com/cn/sql/】

首页

SQL 指令

-  SQL SELECT

SELECT Store_Name FROM Store_Information;

 

-  SQL DISTINCT

SELECT DISTINCT Store_Name FROM Store_Information;

 

-  SQL WHERE

SELECT Store_Name 
FROM Store_Information 
WHERE Sales > 1000;

 

-  SQL AND OR

SELECT Store_Name 
FROM Store_Information 
WHERE Sales > 1000 
OR (Sales < 500 AND Sales > 275);

 

-  SQL IN

SELECT * 
FROM Store_Information 
WHERE Store_Name IN (‘Los Angeles‘, ‘San Diego‘);

 

-  SQL BETWEEN

SELECT * 
FROM Store_Information 
WHERE Txn_Date BETWEEN ‘Jan-06-1999‘ AND ‘Jan-10-1999‘;

 

-  SQL LIKE

SELECT "栏位名" 
FROM "表格名" 
WHERE "栏位名" LIKE {套式};

{套式} 经常包括野卡 (wildcard). 以下是几个例子:

  • ‘A_Z‘: 所有以 ‘A‘ 起头,另一个任何值的字原,且以 ‘Z‘ 为结尾的字串。 ‘ABZ‘ 和 ‘A2Z‘ 都符合这一个模式,而 ‘AKKZ‘ 并不符合 (因为在 A 和 Z 之间有两个字原,而不是一个字原)。
  • ‘ABC%‘: 所有以 ‘ABC‘ 起头的字串。举例来说,‘ABCD‘ 和 ‘ABCABC‘ 都符合这个套式。
  • ‘%XYZ‘: 所有以 ‘XYZ‘ 结尾的字串。举例来说,‘WXYZ‘ 和 ‘ZZXYZ‘ 都符合这个套式。
  • ‘%AN%‘: 所有含有 ‘AN‘ 这个套式的字串。举例来说, ‘LOS ANGELES‘ 和 ‘SAN FRANCISCO‘ 都符合这个套式。

SELECT * 
FROM Store_Information 
WHERE Store_Name LIKE ‘%AN%‘;

 

-  SQL ORDER BY

SELECT "栏位名" 
FROM "表格名" 
[WHERE "条件"]
ORDER BY "栏位名" [ASC, DESC];

ORDER BY "栏位一" [ASC, DESC], "栏位二" [ASC, DESC]

SELECT Store_Name, Sales, Txn_Date 
FROM Store_Information 
ORDER BY Sales DESC;

在以上的例子中,我们用栏位名来指定排列顺序的依据。除了栏位名外,我们也可以用栏位的顺序 (依据 SQL 句中的顺序)。在 SELECT 后的第一个栏位为 1,第二个栏位为 2,以此类推。在上面这个例子中,我们打以下这一句 SQL 可以达到完全一样的效果:

SELECT Store_Name, Sales, Txn_Date 
FROM Store_Information 
ORDER BY 2 DESC;


-  SQL 函数

  • AVG (平均)
  • COUNT (计数)
  • MAX (最大值)
  • MIN (最小值)
  • SUM (总合)

SELECT "函数名"("栏位名") 
FROM "表格名";

SELECT SUM(Sales) FROM Store_Information;

除了函数的运用外,SQL 也可以做简单的数学运算,例如加 (+) 和减 (-)。对于文字类的资料,SQL 也有好几个文字处理方面的函数,例如文字相连 (concatenation),文字修整 (trim),以及子字串 (substring)。不同的数据库对这些函数有不同的语法,所以最好是参考您所用数据库的信息,来确定在那个数据库中,这些函数是如何被运用的。 

 

-  SQL COUNT

SELECT COUNT (Store_Name) 
FROM Store_Information 
WHERE Store_Name IS NOT NULL;

 

SELECT COUNT (DISTINCT Store_Name) 
FROM Store_Information;

-  SQL GROUP BY

SELECT "栏位1", SUM("栏位2") 
FROM "表格名" 
GROUP BY "栏位1";

SELECT Store_Name, SUM(Sales) 
FROM Store_Information 
GROUP BY Store_Name;

-  SQL HAVING

SELECT "栏位1", SUM("栏位2") 
FROM "表格名" 
GROUP BY "栏位1" 
HAVING (函数条件);

请读者注意: GROUP BY 子句并不是一定需要的。

SELECT Store_Name, SUM(Sales) 
FROM Store_Information 
GROUP BY Store_Name
HAVING SUM(sales) > 1500;

-  SQL ALIAS

SELECT "表格别名"."栏位1" "栏位别名" 
FROM "表格名" "表格别名";

SELECT A1.Store_Name Store, SUM(A1.Sales) ‘Total Sales‘ 
FROM Store_Information A1
GROUP BY A1.Store_Name;

-  SQL 表格连接 【Join】

SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES 
FROM Geography A1, Store_Information A2 
WHERE A1.Store_Name = A2.Store_Name 
GROUP BY A1.Region_Name;

在第一行中,我们告诉 SQL 去选出两个栏位:第一个栏位是 Geography 表格中的 Region_Name 栏位 (我们取了一个别名叫做 REGION);第二个栏位是 Store_Information 表格中的 Sales 栏位 (别名为 SALES)。请注意在这里我们有用到表格别名:Geography 表格的别名是 A1,Store_Information 表格的别名是 A2。若我们没有用表格别名的话, 第一行就会变成

SELECT Geography.Region_Name REGION, SUM(Store_Information.Sales) SALES

很明显地,这就复杂多了。在这里我们可以看到表格别名的功用:它能让 SQL 句容易被了解,尤其是这个 SQL 句含盖好几个不同的表格时。

接下来我们看第三行,就是 WHERE 子句。 这是我们阐述连接条件的地方。在这里,我们要确认Geography 表格中 Store_Name 栏位的值与 Store_Information 表格中 Store_Name 栏位的值是相等的。这个 WHERE 子句是一个连接的灵魂人物,因为它的角色是确定两个表格之间的连接是正确的。如果 WHERE 子句是错误的,我们就极可能得到一个笛卡儿连接 (Cartesian Join)。笛卡儿连接会造成我们得到所有两个表格每两行之间所有可能的组合。在这个例子中,笛卡儿连接会让我们得到 4 x 4 = 16 行的结果。

-  SQL 外部连接

之 前我们看到的左连接 (left join),又称内部连接 (inner join)。在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出。那如果我们想要列出一个表格中每一笔的资料,无论它的值在另一个表格中有没 有出现,那该怎么办呢?在这个时候,我们就需要用到 SQL OUTER JOIN (外部连接) 的指令。

我们需要知道每一间店的营业额。如果我们用一个普通的连接,我们将会漏失掉 ‘New York‘ 这个店,因为它并不存在于 Store_Information 这个表格。所以,在这个情况下,我们需要用外部连接来串联这两个表格:

SELECT A1.Store_Name, SUM(A2.Sales) SALES 
FROM Georgraphy A1, Store_Information A2 
WHERE A1.Store_Name = A2.Store_Name (+) 
GROUP BY A1.Store_Name;

我们在这里是使用了 Oracle 的外部连接语法。

请注意: 当第二个表格没有相对的资料时,SQL 会传回 NULL 值。在这一个例子中,‘New York‘ 并不存在于 Store_Information 表格,所以它的 "SALES" 栏位是 NULL。

-  SQL Subquery

我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构。 Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。

SELECT "栏位1" 
FROM "表格" 
WHERE "栏位2" [比较运算素] 
(SELECT "栏位1" 
FROM "表格"
WHERE "条件");

[比较运算素] 可以是相等的运算素,例如 =, >, <, >=, <=. 这也可以是一个对文字的运算素,例如 "LIKE"。

我们要运用 subquery 来找出所有在西部的店的营业额。我们可以用下面的 SQL 来达到我们的目的:

SELECT SUM(Sales) FROM Store_Information
WHERE Store_name IN
(SELECT store_name FROM Geography 
WHERE region_name = ‘West‘);

在这个例子中,我们并没有直接将两个表格连接起来,然后由此直接算出每一间西区店面的营业额。我们做的是先找出哪些店是在西区的,然后再算出这些店的营业额总共是多少。 

 

-  SQL UNION

UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION 这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。

[SQL 语句 1]
UNION
[SQL 语句 2];

SELECT Txn_Date FROM Store_Information
UNION
SELECT Txn_Date FROM Internet_Sales;

-  SQL UNION ALL

UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。

结果:

Txn_Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-08-1999
Jan-07-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999

-  SQL INTERSECT

和 UNION 指令类似,INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。UNION 是联集,而INTERSECT 是交集。

SELECT Txn_Date FROM Store_Information
INTERSECT
SELECT Txn_Date FROM Internet_Sales;

请注意,在 INTERSECT 指令下,不同的值只会被列出一次。

-  SQL MINUS

MINUS 指 令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。

SELECT Txn_Date FROM Store_Information
MINUS
SELECT Txn_Date FROM Internet_Sales;

 

-  SQL CONCATENATE

有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:

  • MySQL: CONCAT( )
  • Oracle: CONCAT( ), ||
  • SQL Server: +

Oracle 的 CONCAT( ) 只允许两个参数;换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用 ‘||‘ 来一次串连多个字串。

MySQL/Oracle:

SELECT CONCAT (Region_Name, Store_Name) FROM Geography 
WHERE Store_Name = ‘Boston‘;

Oracle:

SELECT Region_Name || ‘ ‘ || Store_Name FROM Geography 
WHERE Store_Name = ‘Boston‘;

结果:

‘East Boston‘

-  SQL SUBSTRING

  • MySQL: SUBSTR( ), SUBSTRING( )
  • Oracle: SUBSTR( )
  • SQL Server: SUBSTRING( )

SUBSTR (str, pos)

由 <str> 中,选出所有从第 <pos> 位置开始的字元。请注意,这个语法不适用于 SQL Server 上。

SUBSTR (str, pos, len)

由 <str> 中的第 <pos> 位置开始,选出接下去的 <len> 个字元。

SELECT SUBSTR (Store_Name, 3) 
FROM Geography 
WHERE Store_Name = ‘Los Angeles‘;

结果:

‘s Angeles‘

例2

SELECT SUBSTR (Store_Name, 2, 4) 
FROM Geography 
WHERE Store_Name = ‘San Diego‘;

结果:

‘an D‘

-  SQL TRIM

SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:

  • MySQL: TRIM( ), RTRIM( ), LTRIM( )
  • Oracle: RTRIM( ), LTRIM( )
  • SQL Server: RTRIM( ), LTRIM( )

各种 trim 函数的语法如下:

TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。

LTRIM(字串): 将所有字串起头的空白移除。

RTRIM(字串): 将所有字串结尾的空白移除。

例1

SELECT TRIM(‘   Sample   ‘);

结果:

‘Sample‘

例2

SELECT LTRIM(‘   Sample   ‘);

结果:

‘Sample   ‘

例3

SELECT RTRIM(‘   Sample   ‘);

结果:

‘   Sample‘

表格处理

-  SQL CREATE TABLE

CREATE TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date datetime);

 

-  SQL CREATE VIEW

CREATE VIEW V_Customer
AS SELECT First_Name, Last_Name, Country
FROM Customer;

 

我们就可以用以下的指令来建一个包括每个地区 (Region) 销售额 (Sales) 的视观表:

CREATE VIEW V_REGION_SALES
AS SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;

这就给我们有一个名为 V_REGION_SALES 的视观表。这个视观表包含不同地区的销售哦。如果我们要从这个视观表中获取资料,我们就打入,

SELECT * FROM V_REGION_SALES;

-  SQL CREATE INDEX

若我們要在 Last_Name 這個欄位上建一個索引,我們就打入以下的指令,

CREATE INDEX IDX_CUSTOMER_LAST_NAME
ON Customer (Last_Name);

若我们要在 Last_Name 这个栏位上建一个索引,我们就打入以下的指令,

CREATE INDEX IDX_CUSTOMER_LOCATION
ON Customer (City, Country);

-  SQL ALTER TABLE

ALTER TABLE "table_name"
[改变方式];

[改变方式] 的详细写法会依我们想要达到的目标而有所不同。再以上列出的改变中,[改变方式] 如下:

  • 加一个栏位: ADD "栏位 1" "栏位 1 资料种类"
  • 删去一个栏位: DROP "栏位 1"
  • 改变栏位名称: CHANGE "原本栏位名" "新栏位名" "新栏位名资料种类"
  • 改变栏位的资料种类: MODIFY "栏位 1" "新资料种类"

ALTER TABLE Customer ADD Gender char(1);

ALTER TABLE Customer CHANGE Address Addr char(50);

ALTER TABLE Customer MODIFY Addr char(30);

ALTER TABLE Customer DROP Gender;

 

-  SQL 主键

MySQL:

CREATE TABLE Customer 
(SID integer, 
Last_Name varchar(30), 
First_Name varchar(30), 
PRIMARY KEY (SID));

Oracle:

CREATE TABLE Customer 
(SID integer PRIMARY KEY, 
Last_Name varchar(30), 
First_Name varchar(30));

SQL Server:

CREATE TABLE Customer 
(SID integer PRIMARY KEY, 
Last_Name varchar(30), 
First_Name varchar(30));

以下则是以改变现有表格架构来设定主键的方式:

MySQL:

ALTER TABLE Customer ADD PRIMARY KEY (SID);

Oracle:

ALTER TABLE Customer ADD PRIMARY KEY (SID);

SQL Server:

ALTER TABLE Customer ADD PRIMARY KEY (SID);

请注意,在用 ALTER TABLE 语句来添加主键之前,我们需要确认被用来当做主键的栏位是设定为 『NOT NULL』 ;也就是说,那个栏位一定不能没有资料。

-  SQL 外来键

外来键是一个(或数个)指向另外一个表格主键的栏位。外来键的目的是确定资料的参考完整性 (referential integrity)。换言之,只有被准许的资料值才会被存入资料库内。

所有的订购资料中的顾客,都一定是要跟在 CUSTOMER 表格中存在。

我们就会在 ORDERS 表格中设定一个外来键,而这个外来键是指向 CUSTOMER 表格中的主键。这样一来,我们就可以确定所有在ORDERS 表格中的顾客都存在 CUSTOMER 表格中。换句话说,ORDERS 表格之中,不能有任何顾客是不存在于 CUSTOMER 表格中的资料。

MySQL:

CREATE TABLE ORDERS 
(Order_ID integer, 
Order_Date date, 
Customer_SID integer, 
Amount double, 
PRIMARY KEY (Order_ID), 
FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID));

Oracle:

CREATE TABLE ORDERS 
(Order_ID integer PRIMARY KEY, 
Order_Date date, 
Customer_SID integer REFERENCES CUSTOMER (SID), 
Amount double);

SQL Server:

CREATE TABLE ORDERS 
(Order_ID integer PRIMARY KEY, 
Order_Date datetime, 
Customer_SID integer REFERENCES CUSTOMER (SID), 
Amount double);

以下的例子则是藉着改变表格架构来指定外来键。这里假设 ORDERS 表格已经被建置,而外来键尚未被指定:

MySQL:

ALTER TABLE ORDERS 
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

Oracle:

ALTER TABLE ORDERS 
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

SQL Server:

ALTER TABLE ORDERS 
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

-  SQL DROP TABLE

DROP TABLE Customer;

 

-  SQL TRUNCATE TABLE

有时候我们会需要清除一个表格中的所有资料。要达到者个目的,一种方式是我们在 SQL DROP 那一页 看到 的 DROP TABLE 指令。不过这样整个表格就消失,而无法再被用了。另一种方式就是运用 TRUNCATE TABLE 的指令。在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。

-  SQL INSERT INTO

INSERT INTO "表格名" ("栏位1", "栏位2", ...)
VALUES ("值1", "值2", ...);

第二种 INSERT INTO 能够让我们一次输入多笔的资料。

INSERT INTO "表格1" ("栏位1", "栏位2", ...)
SELECT "栏位3", "栏位4", ...
FROM "表格2";

INSERT INTO Store_Information (Store_Name, Sales, Txn_Date)
SELECT store_name, Sales, Txn_Date
FROM Sales_Information
WHERE Year (Txn_Date) = 1998;

 

-  SQL UPDATE

UPDATE Store_Information
SET Sales = 500
WHERE Store_Name = ‘Los Angeles‘ 
AND Txn_Date = ‘Jan-08-1999‘;

在这个例子中,只有一笔资料符合 WHERE 子句中的条件。如果有多笔资料符合条件的话,每一笔符合条件的资料都会被修改的。

我们也可以同时修改好几个栏位。这语法如下:

UPDATE "表格"
SET "栏位1" = [值1], "栏位2" = [值2]
WHERE "条件";

-  SQL DELETE FROM

DELETE FROM Store_Information
WHERE Store_Name = ‘Los Angeles‘;

SQL 语法

SQL 指令的语法。简洁的 SQL 语法做为读者参考之用。

Select 
SELECT "栏位" FROM "表格名";

Distinct 
SELECT DISTINCT "栏位" 
FROM "表格名";

Where 
SELECT "栏位" 
FROM "表格名" 
WHERE "条件";

And/Or 
SELECT "栏位" 
FROM "表格名" 
WHERE "简单条件" 
{[AND|OR] "简单条件"}+;

In 
SELECT "栏位" 
FROM "表格名" 
WHERE "栏位" IN (‘值1‘, ‘值2‘, ...);

Between 
SELECT "栏位" 
FROM "表格名" 
WHERE "栏位" BETWEEN ‘值1‘ AND ‘值2‘;

Like 
SELECT "栏位" 
FROM "表格名" 
WHERE "栏位" LIKE {模式};

Order By 
SELECT "栏位" 
FROM "表格名" 
[WHERE "条件"]
ORDER BY "栏位" [ASC, DESC];

Count 
SELECT COUNT("栏位") 
FROM "表格名";

Group By 
SELECT "栏位1", SUM("栏位2") 
FROM "表格名" 
GROUP BY "栏位1";

Having 
SELECT "栏位1", SUM("栏位2") 
FROM "表格名" 
GROUP BY "栏位1" 
HAVING (栏位);

Create Table 
CREATE TABLE "表格名"
("栏位 1" "栏位 1 资料种类",
"栏位 2" "栏位 2 资料种类",
... );

Drop Table 
DROP TABLE "表格名";

Truncate Table 
TRUNCATE TABLE "表格名";

Insert Into 
INSERT INTO "表格名" ("栏位1", "栏位2", ...)
VALUES ("值1", "值2", ...);

Update
UPDATE "表格名"
SET "栏位1" = [新值]
WHERE "条件";

Delete From 
DELETE FROM "表格名"
WHERE "条件";

时间: 2024-10-18 14:26:57

SQL语句 & 查询表结构的相关文章

SQL语句查询表结构

SQL语句查询表结构 刚刚在做一个小项目,数据库中一张表有20来个字段,用我以前做的一个.NET实体类生成器一个一个的输入还是闲麻烦,于是打算找个时间来重新的改造一个那个.NET实体类,能够通过选择的数据库及用户表自动生成实体类,而且该实体类还有注释,即字段的说明字段,然后再加一个功能,生成数据库文档,其实也就是把字段字,类型,字段说明输出一个漂亮的表格而已,只要能获取出来生成HTML表格就比较容易了,上网找了一下,得到如下有用的SQL语句: -- 查询非系统数据库 Select name FR

Sql 2000系统表 语句查询表结构

SQL2000系统表的应用 –1:获取当前数据库中的所有用户表 select Name from sysobjects where xtype='u' and status>=0 –2:获取某一个表的所有字段 select name from syscolumns where id=object_id('表名') –3:查看与某一个表相关的视图.存储过程.函数 select a.* from sysobjects a, syscomments b where a.id = b.id and b.

sql server 查询表结构

--查询表结构start SELECT 序号 = a.colorder,字段名称 = a.name,字段描述 = f.value, 标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity') = 1 then '√' else '' end, 主键 = case when exists(SELECT 1 FROM sysobjects where xtype = 'PK' and parent_obj = a.id and name in (

sql语句查询表中重复字段以及显示字段重复条数

今天跟大家分享两条SQL语句,是关于查询某表中重复字段以及显示该字段的重复条数. 1.select * from 表名 where 列名 in (select 列名 from 表名 group by 列名 having COUNT(*)>1) order by 列名 运行结果: 注*将表中某列下所有重复的字段查询出来,如果想查询该列中重复条数>=n的话,只需将sql语句中的">1"改为"n-1"即可. 2.select 列名,count(*) CO

使用SQL语句查询表及表字段类型说明

今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来. 经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用. SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE '' END ) N'表名' , ( CASE WHEN a.colorder = 1 THEN ISNULL(( SELECT TOP 1 value FROM sys.extended_prope

MySQL SQL语句

关系数据库: MySql ,Oracle, sql server , db2 ,sqlite,非关系数据库: redis mongodb SQL语句:结构化语句 规范: 1.不区分大小写(命令建议大写) 2.以分号作为结束符号 3 注释 -- /* */ 数据库的操作 SHOW DATABASES; --查看所有的数据库 CREATE DATABASE database_name --创建数据库 SHOW CREATE DATABASE database_name--查看创建数据库信息 DROP

一些经典===&gt;&gt;用SQL语句操作数据

用SQL语句操作数据 结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统:同时也是数据库脚本文件的扩展名. 01.SQL语句书写规范 1.在SQL Sever中,SQL语句不区分大小写(数据库名,表名,列名,关键字) ,SQL编译器都识别 2.对表进行操作的时候,一定要使先用use关键字切换到对应的数

sql语句优化方案

怎么加快查询速度,优化查询效率,主要原则就是应尽量避免全表扫描,应该考虑在where及order by 涉及的列上建立索引. 建立索引不是建的越多越好,原则是: 第一:一个表的索引不是越多越好,也没有一个具体的数字,根据以往的经验,一个表的索引最多不能超过6个,因为索引越多,对update和insert操作也会有性能的影响,涉及到索引的新建和重建操作. 第二:建立索引的方法论为: 1.多数查询经常使用的列:2.很少进行修改操作的列:3.索引需要建立在数据差异化大的列上 利用以上的基础我们讨论一下

经典案例:如何优化Oracle使用DBlink的SQL语句

转自 https://blog.csdn.net/Enmotech/article/details/78788083 作者介绍 赵全文 就职于太极计算机股份有限公司,在中央电化教育馆做Oracle DBA的驻场运维工作.具有3年左右的Oracle工作经验,目前擅长Oracle数据库的SQL脚本编写.故障诊断和性能优化,并且乐于分享Oracle技术. 一般在DBLINK的SQL语句中,将调用远程表的in-line view结果集返回的数据尽量减少,进而达到通过网络传输的数据减少的目的,而且也不会将