SQL语言

SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
SQLSever,Oracle,MySQL等各种数据库系统都采用SQL语言实现数据库操作。
 
 
建立表语句

CREATE TABLE TABLENAME (COL_NAME1 TYPE, COL_NAME2 TYPE, ……);

常用TYPE说明:

TYPE

说明

INT

整数

CHAR(LENGTH)

定长字符串,短于指定长度用空格填充

VARCHAR(LENGTH)

变长字符串

删除表语句

DROP TABLE TABLENAME;

CREAT TABLE语句例子
 

CREATE TABLE table1

(NAME VARCHAR(10),

SEX INT,

AGE INT,

CLASS VARCHAR(20));

CREAT TABLE语句,同时创建一个序列的例子
 

CREATE TABLE table2

(ID int(11) NOT NULL auto_increment, NAME varchar(20), AGE INT, PRIMARY KEY (ID))

查询数据语句

SELECT * FROM TABLENAME;

SELECT COL1,COL2,… FROM TABLENAME;

第一个SELECT语句表示查询指定表的所有字段。
第二个SELECT语句表示查询指定表的指定字段。
 
 
SELECT语句例子

SELECT * FROM table1;

SELECT NAME,AGE FROM table1;

返回指定行数的SELECT查询数据语句
LIMIT字句的语法
SELECT * FROM TABLENAME LIMIT m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条

SELECT * FROM table1 LIMIT 0,5

SELECT * FROM table1 LIMIT 6,3

带有条件的查询数据语句

SELECT COL1,COL2,… FROM TABLENAME WHERE CONDITIONAL;

WHERE字句后面是条件。
条件可以做逻辑判断组合
–AND---与;
–NOT---非;
–OR---或;
–=---等于;
–LIKE---通过"%"通配符匹配指定模式
–IN---包含子集
–<>---不等于;
–<---小于;
–<=---小于等于;
–>---大于;
–>=---大于等于;
 
 
SELECT语句WHERE子句例子

SELECT * FROM table1 WHERE NAME = ‘TOM’ AND AGE = 20;

SELECT * FROM table1 WHERE AGE = 21 OR AGE = 20;

SELECT语句WHERE子句like操作符例子

SELECT * FROM table1 WHERE NAME LIKE ‘tom%’; 

SELECT * FROM table1 WHERE NAME LIKE ‘%tom’;

SELECT * FROM table1 WHERE NAME LIKE ‘%tom%’;

别名
  –列别名
  •SELECT FIELDNAME ALIAS FROM TABLENAME
  –表别名;
  •SELECT ALIAS.FIELDNAME FROM TABLENAME ALIAS;
例如

SELECT name 姓名 FROM table1;

SELECT a.name FROM table1 a;

聚合函数
  –SUM([DISTINCT] FIELDNAME)
  •求指定列之和, [DISTINCT]选项表示剔除重复记录
  –例如:SELECT SUM(age) FROM TABLE1;
  –MAX([DISTINCT] FIELDNAME)
  •求指定列最大值
  –例如:SELECY MAX(age) FROM TABLE1;
  –MIN([DISTINCT] FIELDNAME)
  •求指定列最小值
  –COUNT([DISTINCT] FIELDNAME)
  •求指定列记录总数
  –AVG([DISTINCT] FIELDNAME)
  •求指定列平均值
 
GROUP BY子句
–将查询结果根据指定字段分组
–GROUP BY fieldname [DESC]

例如::SELECT name FROM table1 GROUP BY classid;

ORDER BY子句
–将查询结果根据指定字段排序
–ORDER BY fieldname [DESC]

例如:SELECT name FROM table1 ORDER BY classid DESC;

 
SELECT语句,查询多个表的WHERE子句例子

SELECT * FROM table1,table2 WHERE table1.AGE = table2.AGE;

SELECT * FROM table1,table2 WHERE (table1.NAME = table2.NAME) AND table1.AGE= 20;

CREATE INDEX 语句用于在表中创建索引。
  –在不读取整个表的情况下,索引使数据库应用程序可以更快地查找 数据。
索引
  –您可以在表中创建索引,以便更加快速高效地查询数据。
  –用户无法看到索引,它们只能被用来加速搜索/查询。
注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
CREATE INDEX 语法
  –在表上创建一个简单的索引。允许使用重复的值:

CREATE INDEX index_name

ON table_name (column_name)

  –注释:"column_name" 规定需要索引的列。
CREATE UNIQUE INDEX 语法
  –在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。

CREATE UNIQUE INDEX index_name

ON table_name (column_name)

CREATE INDEX 实例

本例会创建一个简单的索引,名为 “table1index",在 table1表的 NAME 列:

CREATE INDEX table1index

ON table1 (NAME)

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:

CREATE INDEX table1index

ON table1 (NAME DESC)

假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX table2index

ON table2 (NAME, AGE)

插入数据语句

INSERT INTO TABLENAME (COL1,COL2,….) VALUES (VAL1,VAL2,….);

向表插入一行数据,前面指定列名,后面是要插入的值。
 
INSERT INTO语句例子

INSERT INTO table1 (NAME,SEX,AGE,CLASS) VALUES (‘TOM’,1,20,’222’);

修改数据语句

UPDATE TABLENAME SET CAL1=VAL1,CAL2=VAL2,… WHERE CONDITIONAL

SET字句指定要修改的字段和所赋的值,WHERE字句指定要修改的行,如果没有WHERE字句,代表修改所有行。
 
UPDATE语句例子

UPDATE table1 SET CLASS = ‘333’ WHERE NAME = ‘TOM’;

删除数据语句

DELETE FROM TABLENAME WHERE CONDITIONAL

WHERE字句指定要删除的行,如果没有WHERE字句,代表删除所有行。
 
DELETE语句例子

DELETE FROM 'table1’ WHERE NAME = ‘TOM’;

原文地址:https://www.cnblogs.com/shichuan/p/4472767.html