- select into : 从一个表中选取数据,然后把数据插入到另一表中。
select 列名1
into 新表 [in 数据库]
from 旧表
where 列名2 = 值;
从一个以上的数据中选取数据也是可以做到的。
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
- 创建数据库
创建数据库:
create database 数据库名
create database my_db
- 创建表
-
创建表: create 表名( 列名1,数据类型, 列名2,数据类型, 列名3,数据类型, .... )
- integer(size)
- int(size)
- smallint(size)
- tinyint(size)
仅容纳整数。在括号内规定数字的最大位数。 - decimal(size,d)
- numeric(size,d)
容纳带有小数的数字。
"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。
char(size) 容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。
在括号中规定字符串的长度。
varchar(size) 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最大长度。
date(yyyymmdd) 容纳日期。
CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
- 约束
- 方法1:在创建表时添加约束(create table)
- 方法2:表创建之后(alter table)
- NOT NULL 非空约束
CREATE TABLE Persons
(
Id_P int not null,
LastName varchar(255) not null ,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
- UNIQUE 唯一约束
- 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
-
表创建时: 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) ) 表创建后: ALTER TABLE Persons ADD UNIQUE (Id_P) 撤销约束: ALTER TABLE Persons DROP INDEX uc_PersonID
PRIMARY KEY 主键约束
-
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), PRIMARY KEY (Id_P) )
- FOREIGN KEY 外键约束
-
FOREIGN KEY 约束用于预防破坏表之间连接的动作。
FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
-
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
CHECK 检查约束
-
CHECK 约束用于限制列中的值的范围。
-
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (Id_P>0) )
- DEFAULT 默认约束
如果没有规定其他的值,那么会将默认值添加到所有的新记录、
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
创建索引:
创建索引:
create index 索引名
on 表名(列名);
创建唯一索引:
create unique index 索引名
on 表名(列名);
CREATE INDEX PersonIndex
ON Person (LastName DESC);
CREATE INDEX PersonIndex
ON Person (LastName, FirstName)
- 通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
删除索引:
删除索引: alt table 表名 drop index 索引名
删除表: drop table 表名
删除数据库:drop database 数据库名
删除表中的数据:truncate table 表名
- alter table :在已有表中添加,修改,删除列
-
添加列: alter table 表名 add 列名 数据类型 删除列: alter table 表名 drop column 列名 改变表中的数据类型: alter table 表名 alter column 列名 datatype
auto-increment
-
会在新纪录插入表中时生成一个唯一的数字
-
CREATE TABLE Persons ( P_Id int NOT NULL AUTO_INCREMENT, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), PRIMARY KEY (P_Id) )
让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法:
-
ALTER TABLE Persons AUTO_INCREMENT=100
- 创建视图
- 数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。
子查询:
集合成员规格
集合之间比较
集合基数测试