SQL语法语句

一.SQL语句语法

1.ALTER TABLE

  ALTER TABLE 用来更新已存在表的结构。

ALTER TABLE tablename
(ADD|DROP     column     datatype     [NULL|NOT NULL]    [CONSTRAINTS],
...
 );
 

2.COMMIT

  COMMIT 用来将事物写入数据库。

COMMIT [TRANSACTION];

3.CREATE INDEX

  CREATE INDEX 用于在一个或多个列上创建索引。

CREATE INDEX indexname
ON    tableanme (column,...);

4.CREATE PROCEDURE

  CREATE PROCEDURE 用于创建存储过程。

CREATE PROCEDURE
AS
SQL statement;

5.CREATE TABLE

  CREATE TABLE 用于创建新数据库表。更新已经存在的表的结构,使用ALTER TABLE。

CREATE TABLE tablename
(
        column      datatype      [NULL|NOT  NULL]    [CONSTRAINS],
        column      datatype      [NULL|NOT  NULL]    [CONSTRAINS],                

         ...
 );         

6.CREATE VIEW

  CREATTE VIEW 用于创建一个或多个表上的新视图。

CREATE    VIEW    viewname    AS
SELECT    columns, ...
FROM    tables, ...
[WHERE ...]
[GROUP    BY ...]
[HAVING ...];

7.DELETE

  DELETE 从表中删除一行多多行。

DELETE    FROM    tablename
[WHERE ...];

8.DROP

  DROP 永久删除数据库对象(表,视图,索引等)。

DROP    INDEX|PROCEDURE|TABLE|VIEW
indexname|procedurename|tablename|viewname;

9.INSERT

  INSERT 为表添加一行。

INSERT    INTO    tablename[(columns, ...)]
VALUES (values, ...);

10.INSERT SELECT

  INSERT SELECTT 将SELECT结果插入到一个表。

INSERT     INTO    tablename    [(columns, ...)]
SELECT    columns, ...    FROM    tablename, ...
[WHERE ...];

11.ROLLBACK

  ROLLBACK 用于撤销一个事物块。

ROLLBACK    [TO    savepointname];

12.SELECT

  SELECT 用于从一个或多个表(视图)中检索数据。

SELECT    columnname, ...
FROM    tablename, ...
[WHERE ...]
[UNION ...]
[GROUP    BY ...]
[HAVING ...]
[ORDER    BY ...];

13.UPDATE

  UPDATE 更新表中的一行或多行。

UPDATE    tablename
SET    columnname = value, ...
[WHERE ...];

二.SQL语句

1.检索数据

  SELECT语句后面跟要检索的列,FROM后跟要检索的表,WHERE用于过滤需要的条件。ORDER BY用于排序(DESC用于降序,ASC用于升序)。SELECT *表示检索所有的列。

SELECT colunmname_1, columnname_2, clunmname_3, ...
FROM    tablename
[WHERE ...]
[ORDER BY ... ASC|DESC];

2.过滤数据

  WHERE用于过滤数据,后面可跟字句操作符,后跟 NOT 用于否定,后跟AND、OR和IN(完成与OR相同的功能)用于过滤多个条件,后跟LIKE用于通配符过滤(%表示任意字符出现任意次数,_表示匹配单个字符,[]用来指定一个字符集)。例如:

SELECT    prod_id, prod_name, prod_price
FROM    Products
WHERE  NOT  prod_price BETWEN 3.44 AND 5.88    AND    prod_name LIKE ‘[JM]%‘;

  下表为WHERE字句操作符:

  

3.拼接字段

  MySQL数据库中用Concat来进行拼接字段。AS来取一个别名。RTRIM()来去掉字符串右边的空格,LTRIM()来去掉字符串左边的空格,TRIM()来去掉字符串左右两边的空格。例如:

SELECT    Concat( vend_name, ‘(‘ ,RTRIM(vend_country), ‘)‘ )
                AS    vend_title
FROM    Vendors
ORDER BY  vend_name;

4.数据函数

  常用数据的处理、汇总函数如下:

  例如:

SELECT    COUNT(*)    AS    num_cust
FROM    Customers;

5.子查询

  子查询,即嵌套在其他查询中的查询。例如:

SELECT    cust_name,cust_state,
                (SELECT    COUNT(*)
                    FROM        Orders
                    WHERE    Orders.cust_id=Customer.cust_id)    AS    orders
FROM    Customers
ORDER    BY    cust_name;

  

6.联结表

  SQL最强大的功能之一就是能在数据查询的执行中联结(join)表。联结是利用SQL的SELECT能执行的最重要的操作,很好的理解联结及其语法是学习SQL的极为重要的部分。创建联结表非常简单,指定要联结的所有表及关联它们的方式即可。例如:

SELECT    vend_name,prod_name,prod_price
FROM    Vendors, Products
WHERE    Vendors.vend_id=Products.vend_id;

  以上使用的联结称为内联结,也称为等值联结,它基于两个表之间的相等测试。下面的SELECT语句返回与前面例子完全相同的数据:

SELECT    vend_name,prod_name,prod_price
FROM    Vendor    INNER    JOIN    Products
ON    Vendor.vend_id=Products.vend_id;

7.组合查询

  可用UNION操作符来组合多条SQL语句,在各条语句之间放上关键字UNION。UNION从查询结果集中自动去除重复的行,如果显示所有可用UNION  ALL表示返回所有的匹配行。例如:

SELECT cust_name, cust_contact,cust_email
FROM        Customers
WHERE    cust_state    IN(‘IL‘, ‘IN‘ ,‘MI‘)
UNION
SELECT cust_name, cust_contact,cust_email
FROM        Customers
WHERE    cust_name =‘JACK‘;

8.插入数据

  可用INSERT操作符对标进行插入操作,后面的INTO是可选的(建议加上)。例如:

INSERT INTO Students(id,name,age,tel)
VALUES(
  ‘001‘,
  ‘JACK‘ ,
  ‘21‘ ,
  ‘8612345‘;
)

  以上是SQL相关的常用语法及语句结构,详情可查看相关文档。

参考文献

《SQL必知必会》,Ben Forta ,人民邮电出版社。

时间: 2024-07-29 19:44:42

SQL语法语句的相关文章

MySQL 最基本的SQL语法/语句

MySQL 最基本的SQL语法/语句 MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下. DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop databa

最基本的SQL语法/语句

DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE mas

MySQL 最基本的SQL语法/语句(转发)

DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE mas

SQL Server常语法语句操作

SQL Server语句操作 --1.获取表的主键字段SELECT name FROM SysColumns WHERE id=Object_Id('表名') and colid=(select top 1 colid from sysindexkeys where id=Object_Id('表名')) select A.COLUMN_NAME  from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE A join(select * from sysob

SQL UPDATE 语句:更新表中的记录语法及案例剖析

SQL UPDATE 语句 UPDATE 语句用于更新表中的记录. SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录. SQL UPDATE 语法 UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value; 请注意 SQL UPDATE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要更新.如果您省略了 WHERE 子句,所有的记录都将被

SQL DELETE 语句:删除表中的记录语法及案例剖析

SQL DELETE 语句 DELETE 语句用于删除表中的记录. SQL DELETE 语句 DELETE 语句用于删除表中的行. SQL DELETE 语法 DELETE FROM table_name WHERE some_column=some_value; 请注意 SQL DELETE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要删除.如果您省略了 WHERE 子句,所有的记录都将被删除! 演示数据库 在本教程中,我们将使用 样本数据库. 下面是选自 "W

LINQ To SQL 语法及实例大全

LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c

SQL语法详解

ALTER DATABASE修改数据库全局特性 ALTER DATABASE实际上是修改数据库目录中的dp.opt文件 ALTER TABLE修改表的结构 ALTER TABLE对表进行增删列,创建取消索引,重命名列或者表 CREATE DATABASE创建数据库 CREATE INDEX创建索引 CREATE TABLE建表 DROP DATABASE删除数据库 DROP TABLE删表 RANAME TABLE重命名表 数据库的增删改查 INSERT DELETE UPDATE SELECT

Hibernate 关于执行sql查询语句(转)

原文  http://www.yshjava.cn/post/543.html 主题 SQLHibernate Hibernate对原生SQL查询的支持和控制是通过SQLQuery接口实现的.通过Session接口,我们能够很方便的创建一个SQLQuery(SQLQuery是一个接口,在Hibernate4.2.2之前,默认返回的是SQLQuery的实现类--SQLQueryImpl对象,在下文中出现的SQLQuery如非注明,都是指该子类)对象来进行原生SQL查询: session.creat