SQL 笔记

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值