Java技术研究

SQL语法之二

2018-11-13  本文已影响2人  晨曦诗雨

UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同

  SELECT column_name(s) FROM table_name1
  UNION
  SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

 SELECT column_name(s) FROM table_name1
 UNION ALL
 SELECT column_name(s) FROM table_name2

SELECT INTO 语句可用于创建表的备份复件或者用于对记录进行存档。

  SELECT *
   INTO Persons_backup
   FROM Persons

mysql不支持以上语句

Create table orgBack (Select * from org);

IN 子句可用于向另一个数据库中拷贝表:

 SELECT *
 INTO Persons IN 'Backup.mdb'
 FROM Persons

SQL SELECT INTO 实例 - 带有 WHERE 子句

我们也可以添加 WHERE 子句。

下面的例子通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表:

SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'

SQL SELECT INTO 实例 - 被连接的表

从一个以上的表中选取数据也是可以做到的。

下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:

 SELECT Persons.LastName,Orders.OrderNo
 INTO Persons_Order_Backup
 FROM Persons
 INNER JOIN Orders
 ON Persons.Id_P=Orders.Id_P

创建数据库

CREATE DATABASE database_name

创建表

CREATE TABLE student (
id BIGINT,
stuName VARCHAR(20),
age INT(8),
address VARCHAR(20)

)

SQL 约束 (Constraints

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 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
CREATE TABLE student (
id BIGINT NOT NULL,
stuName VARCHAR (20),
age INT (8),
address VARCHAR (20),
UNIQUE (id)
)

为多个列定义时候
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:
 ALTER TABLE Persons
 ADD UNIQUE (Id_P)

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
如需撤销 UNIQUE 约束,请使用下面的 SQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID

PRIMARY KEY 约束

ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)

FOREIGN KEY 约束

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY

 ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
撤销
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

CHECK 约束

CHECK 约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

ALTER TABLE Persons
ADD CHECK (Id_P>0)

ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销
ALTER TABLE Persons
DROP CHECK chk_Person

DEFAULT 约束

 ALTER TABLE Persons
 ALTER City SET DEFAULT 'SANDNES'
 撤销
 ALTER TABLE Persons
 ALTER City DROP DEFAULT

索引

  可以重复值
 CREATE INDEX index_name
 ON table_name (column_name)
 唯一的
 CREATE UNIQUE INDEX index_name
 ON table_name (column_name)

alter语句

*在表中删除一个字段

 ALTER TABLE table_name 
 DROP COLUMN column_name
上一篇下一篇

猜你喜欢

热点阅读