1.通配符的使用
% 代表0个或多个字符
eg:
SELECT * FROM Persons WHERE City LIKE 'Ne%'
表示查询City 字段中开头为Ne的与之匹配的所有行
SELECT * FROM Persons WHERE City LIKE '%Ne'
表示查询City 字段中结尾为Ne的与之匹配的所有行
SELECT * FROM Persons WHERE City LIKE '%Ne%'
表示查询City 字段中存在'Ne'字符的所有行
'_' 仅代表一个字符
eg:
SELECT * FROM Persons WHERE City LIKE 'Ne_'
表示查询City 字段中长度为3个字符且'Ne'字符为开头的所有行
SELECT * FROM Persons WHERE City LIKE '_Ne'
表示查询City 字段中长度为3个字符且第一个字符之后为'Ne'的所有行
SELECT * FROM Persons WHERE City LIKE 'N_e'
表示查询City 字段中长度为3个字符且中间字符不确定,第一个和第三个字符为'N'何'e'的所有行
[charlist]字符列中任意单一字符
SELECT * FROM Persons WHERE City LIKE '[AB]%'
同%字符使用,表示查询City 字段中开头为'A'或'B'的与之匹配的所有行
SELECT * FROM Persons WHERE City LIKE '%[AB]'
同%字符使用,表示查询City 字段中结尾为'A'或'B'的与之匹配的所有行
SELECT * FROM Persons WHERE City LIKE '%[AB]%'
同%字符使用,表示查询City 字段中存在'A'或'B'的与之匹配的所有行
[!charlist]或[^charlist]不存在字符列中任意单一字符,与[charlist]意义相反,等同于 not like [charlist]
2.表链接
内连接(INNER JOIN)通过条件字段连接两表,显示与条件匹配的所有行,不匹配的不现实
外连接(outer join)通过条件字段连接两表,显示所有行,外连接分为左、右和全连接,左连接以左表为主表,显示与之匹配的所有列,右连接以右表为主表,显示与之匹配的所有列,外连接时不匹配的列也会显示(从表的列)但内容为null
全连接时只要其中某个表存在匹配,FULL JOIN 关键字就会返回行(返回两表中匹配和非匹配的行,从表中存在与主表不匹配的显示从表列数据,主表列数据内容为null,主表中存在与从表不匹配的显示主表列数据,从表列数据内容为null)。
3.UNION 和 UNION ALL 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
语法:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
UNION 和 UNION ALL的区别:
UNION 操作符选取不同的值(过滤结果),UNION ALL允许出现重复的值
4.SELECT INTO 语句
从一个表中选取数据,然后把数据插入另一个表中,常用于创建表的备份复件或者用于对记录进行存档
选取Persons
表中所有列插入Persons_bak
表中,in子句可用于向另一个数据库拷贝表
SELECT * INTO Persons_bak IN 'Backup.mdb' FROM Persons
选取希望的列插入
SELECT column_name(s) INTO Persons_bak IN 'Backup.mdb' FROM Persons
5.创建数据库
CREATE DATABASE database_name
6.CREATE TABLE
用于创建数据库中的表
CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Persons创建的表明,LastName等为创建的列名,varchar(255)创建的列的类型
7.ALTER TABLE语句
用于在已有的表中添加、修改或删除列
添加列
ALTER TABLE table_name
ADD column_name datatype
table_name表名,column_name列名
删除列
ALTER TABLE table_name
DROP COLUMN column_name
column_name列名
改变列属性
ALTER TABLE table_name
ALTER COLUMN column_name datatype
column_name列名,datatype列属性
8.约束
NOT NULL 约束
该列字段值不能为空
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) ,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
设置Id_P 列中字段值不能为NULL
UNIQUE 约束
唯一键约束,列字段值需唯一
MySQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (Id_P)
当表已被创建时,定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
撤销 UNIQUE约束
如需撤销 UNIQUE 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID