1、查:SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。 sql select 语法
select 列 from table_name;
select * from table_name;
2、插:INSERT INTO 语句用于向表格中插入新的行。
sql insert 语法
insert into table_name values (值1,值2,...);
insert into table_name (列1,列2,...) values (值1,值2,...);
3、改:Update 语句用于修改表中的数据。
sql update 语法
update table_name set 列1 = 新值 where 列2 = 某值 # 列2指定谁修改,列1指定修改的内容
4、删:DELETE 语句用于删除表中的行。
sql delete 语法
delete from table_name where 列 = 值; # 删除某一行
delete from table_name; 或 delete * from table_name; #删除所有行(表的结构、属性和索引都是完整的)
sql truncate table 语法
truncate table table_name; # 与delete一样删除表中所有行,效率更快
5、top:TOP 子句用于规定要返回的记录的数目。
列(s) = *
sql top 语法
select top number|precent 列(s) from table_name; # 列(s) 表示 所有的列名称
top number例:select top 2 * from table_name; 或 select * from table_name limit 2;
top precent例:select top 50 precent * from table_name; # 选取表中50%的记录
6、like:LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
sql like 语法
select 列(s) from table_name where 列 like pattern;
例:select * from table_name where 列 like 'A%'(在表中搜寻以A开头的)|'%B'(以B结尾的)|'%AB%'(包含AB的);
7、in:IN 操作符允许我们在 WHERE 子句中规定多个值
sql in 语法
select * from table_name where 列 in(值1,值2,...);
8、between:操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
sql between 语法
select * from table_name where 列 between 值1 and 值2; # 范围取头不取尾
9、alias:为列名称和表名称指定别名(Alias)。
sql alias 语法
表:select * from table_name as alias_name;
表别名例:select p.列1,p.列2,p.列3 from table_name1 as p,table_name2 as po where p.列1='值1' and p.列2='值2';
列:select 列 as alias_name from table_name;
列别名例:select 列1 as alias_name1,列2 as alias_name2 from table_name;
10、join:用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
sql join 语法
select tb1.列1,tb1.列2,tb2.列 from tb1 inner join tb2 on tb1.列3=tb2.列3 order by tb1.列1;
或
select tb1.列1,tb1.列2,tb2.列 from tb1,tb2 where tb1.列3=tb2.列3;
备注:不同的 SQL JOIN
除了在上面的例子中使用的 INNER JOIN(内连接),还可以使用其他几种连接。
下面列出了可以使用的 JOIN 类型,以及它们之间的差异。
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
inner join 关键字语法:在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
select * from tb1 inner join tb2 on tb1.列=tb2.列; # inner join 与join是相同的
left join 关键字语法:LEFT JOIN 关键字会从左表(tb1)那里返回所有的行,即使在右表(tb2)中没有匹配的行。
select * from tb1 left join tb2 on tb1.列=tb2.列;
right join 关键字语法:RIGHT JOIN 关键字会右表(tb2)那里返回所有的行,即使在左表(tb1)中没有匹配的行。
select * from tb1 right join tb2 on tb1.列=tb2.列;
full join 关键字语法:只要其中某个表存在匹配,FULL JOIN 关键字就会返回行
select * from tb1 full join tb2 on tb1.列=tb2.列;
11、union:用于合并两个或多个 SELECT 语句的结果集(UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同)
sql union 与 union all 语法
select * from table_name1 union select * from table_name2;
select * from table_name1 union all select * from table_name2;
备注:默认地,union 选取不同的值,如果允许重复的值,就使用 union all(列出所有的值)
12、select into:从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份复件或者用于对记录进行存档。
sql select into 语法
select * into new_table_name [in externaldatabase] from old_table_name; # 所有列插入新表
select 列 into new_table_name [in externaldatabase] from old_table_name; # 某一列插入新表
例:备份某张表 select * into tb1_backup from tb1;
向另一个数据库中拷贝表 select * into tb1 in 'backup.mdb' from tb1;
多表查询存入到新表 select tb1.列1,tb2.列2 into new_table_name from tb1 inner join tb2 on tb1.列3=tb2.列3;
13、create database:用于创建数据库
sql create database 语法
create database database_name;
14、create table:用于创建数据库中的表
sql create table 语法
create table table_name(列1 数据类型,列2 数据类型,...)
备注:常用数据类型有 int(size)-整数、decimal(size,d)-带小数数字、char(size)-固定长度字符串、varchar(size)-可变长字符串
数据类型后续会继续补充
15、create index:用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
sql create index 语法
create index index_name on table_name(列); # 简单的索引,允许使用重复的值
create index index_name on table_name(列1 desc,列2); # 默认是升序,希望降序在列名称后添加保留字 desc,索引不止一个列可以逗号隔开
sql create unique index 语法 # 唯一的索引
create unique index index_name on table_name(列); # 唯一的索引意味着两个行不能拥有相同的索引值
16、DROP:删除索引、表以及数据库
sql drop 语法
删除索引:drop index index_name on table_name;
删除表:drop table table_name;
删除库:drop database database_name;
17、alter table : 语句用于在已有的表中添加、修改或删除列。