常用SQL语句详解

简介:
到今天为止,人们对关系数据库做了大量的研究,并开发出关系数据语言,为操作关系数据库提供了方便的用户接口。关系数据语言目前有几十种,具有增加、删除、修改、查询、数据定义与控制等完整的数据库操作功能。通常把它们分为两类:关系代数类和关系演算类。
在这些语言中,结构化查询语言SQL以其强大的数据库操作功能、口语化、易学易用等特点,受到广泛的应用,成为数据库应用程序开发的一柄利剑。在数据库应用程序开发过程中,巧妙地使用SQL语句,可以简化编程,起到事半功倍的效果,本书中有些实例也大量使用了SQL语句。它由两部分组成,数据定义语言(DDL)和数据操作语言(DML)。 
(1) 数据定义语言(DDL) 
数据定义语言用来定义数据库的各级模式。常用关键字有:Create(建立数据表)、Alter(更改数据表)、Drop(删除数据表)。 
建立数据表 
CREATE TABLE table_name( 
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], 
column2 DATATYPE [NOT NULL], 
... 

说明:上面的DATATYPE 指的是字段的类型,NUT NULL 指是否为空,PRIMARY KEY 指本表的主键。 
建立索引  
CREATE INDEX index_name ON table_name (column_name) 
说明:为数据表格的某个字段建立索引以增加查询时的速度。 
更改数据表  
ALTER TABLE table_name ADD COLUMN column_name DATATYPE 
说明:增加一个字段。 
ALTER TABLE table_name ADD PRIMARY KEY (column_name) 
说明:将某个字段设为主键。 
ALTER TABLE table_name DROP PRIMARY KEY (column_name) 
说明:将某个字段的主键定义取消。 
删除数据表 
DROP table_name 
DROP index_name 
(2) 数据操作语言(DML) 
数据操作语言(DML)用于操作数据表,如增加、删除、查询、修改等。常用关键字有:Insert(插入数据)、Delete(删除数据)、Select(查询数据)和Updata(修改数据)。 
插入数据 
INSERT INTO table_name(column1,column2,...) VALUES 
(value1,value2, ...) 
说明:在插入语句中,若不指明要插入字段则,按表中的字段顺序依次插入。另外,插入数据的类型应和所插入字段的类型相匹配。 
INSERT INTO table_name (column1,column2,...) SELECT 
columnx,columny,... 
FROM another_table 
说明:通过一个子查询将别的表格相应字段的值插入该表格。 
删除数据 
DELETE FROM table_name WHERE conditions 
说明:删除符合条件的记录。 
查询数据 
SELECT column1,columns2,... FROM table_name 
说明:把table_name 的相应字段查询出来。 
SELECT * FROM table_name WHERE column1 = x AND column2 > y 
说明:这是一个带有条件的查询语句,‘*‘表示查询所有的字段,WHERE 之后是条件表达式。 
SELECT column1,column2 FROM table_name ORDER BY column2 
[DESC] 
说明:ORDER BY 是指定以某个字段排序,[DESC]是指从大到小排列,若没有指明,则是从小到大排列。 
SELECT * FROM table1,table2 WHERE 
table1.colum1=table2.column1 
说明:这是一个组合查询,查询两个表格中 column1 
字段具有相同值的记录。作为两个表中建立关系的字段,其类型必须匹配。 
SELECT COUNT (*) FROM table_name WHERE column_name = x 
说明:查询符合条件的记录数。 
SELECT SUM(column1) FROM table_name 
说明:计算column1字段的数据总和。除了SUM之外,还可以用AVG()计算平均值 
、用MAX()计算最大值、用MIN()计算最小值。 
SELECT * FROM table_name1 WHERE EXISTS (SELECT * FROM 
table_name2 WHERE 
conditions) 
说明:这条查询语句用一个子查询语句作为该查询语句的条件。EXISTS指是否存在。 
SELECT * FROM table_name1 WHERE column1 IN (SELECT column1 
FROM 
table_name2 WHERE conditions ) 
说明:IN后面接的是一个集合,表示将column1字段的值在集合中的所有记录从table_name1表中选出来。 
SELECT * FROM table_name1 WHERE column1 LIKE ‘x%‘ 
说明:该语句为模糊查询。这里的“%”是一个通配符,表示将column1字段中以x开头的所有记录选出来。 
SELECT * FROM table_name1 WHERE column1 BETWEEN x AND y 
说明:BETWEEN 表示 column1 的值介于 x 和 y之间。 
更改资料 
UPDATE table_name SET column1=‘x‘ WHERE conditions 
说明:该语句表示在某种条件下将column1字段的值改为x。若不加条件,则默认该字段全部更改。 
以上是最基本的SQL语法知识,若想更深层次的了解,请参阅数据库方面的书籍


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/193761,如需转载请自行联系原作者
相关文章
|
SQL XML Oracle
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
373 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
|
SQL 存储 缓存
一文搞懂MySQL中一条SQL语句是如何执行的
一文搞懂MySQL中一条SQL语句是如何执行的
|
SQL 程序员 开发工具
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
440 0
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
|
SQL 关系型数据库 MySQL
SQL语句优化方法
SQL语句优化方法
137 0
|
SQL 数据库 数据安全/隐私保护
使用SQL语句 查询电话号码 加密显示
使用SQL语句 查询电话号码 加密显示
181 0
使用SQL语句 查询电话号码 加密显示
|
SQL 存储 安全
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
|
SQL 存储 关系型数据库
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(2)
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(2)
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(2)
|
存储 SQL 缓存
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(1)
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(1)
数据库语句执行过程理解,存储引擎的学习,字符集的理解,加各种sql数据类型理解介绍加之SQL各种数据查询分析和题目专练(1)
|
SQL 关系型数据库 MySQL
SQL常用语句
SQL常用语句
112 0
SQL常用语句