数据库高级教程(二)
来源:互联网 发布:超级优化txt百度网盘 编辑:程序博客网 时间:2024/05/21 07:08
1.SQL UNION 和UNION ALL操作符
SQL UNION操作符
UNION 操作符用于合并多个或者多个SELECT语句的结果集
注意:UINION 内部的SELECT语句必须拥有相同的列,列也必须拥有相同的数据类型。并且每条SELECT语句的列的顺序必须相同。
SQL UNION 语法
SELECT column_name from table_name1 UNION sell column_name from table_name2
注:默认 UNION操作符选取不同的值,如果允许重复的话,请使用UNION ALL
SQL UNION ALL语法
SELECT column_name from table_name1 UNION ALL sell column_name from table_name2
02 Wang,Qiang
03 Cates,Bill
04 Sun,Qi
Person_USA
02 Bush,Geodge
03 Cater,Thomes
04 Cates,Bill
使用UNION命令
列出所有在中国和美国的人名字
SELECT P_Name from Person_Chinese UNION SELECT P_Name from Person_USA
结果为P_Name
Li,Ming
Wang,Qiang
Cates,Bill
Sun,Qi
Adas,JohnBush,Geodge
Cater,Thomes
而
SELECT P_Name from Person_Chinese UNION ALL SELECT P_Name from Person_USA
结果为
P_Name
Li,Ming
Wang,Qiang
Cates,Bill
Sun,Qi
Adas,JohnBush,Geodge
Cater,Thomes
Cater,Bills
2.SQL INTO 语句
用于创建表的备份文件。
SELECT INTO 语句从一个表中选取数据,然后插入另一个表中。
SELECT INTO语句常用语创建表的备份复件或者用于对记录进行存档。
语法。
把所有的列插入新表。
SELECT * INTO new_table_name[IN externaldatabase] FROM old_name
只把希望的列插入新表。
SELECT column_name(s) INTO new_table_name[IN esternaldatabase]
from old_tablename
例如
制作备份文件。
制作Person表的备份文件。
SELECT *INTO Person_backup FROM Person
IN 字句可以用于向另一个数据库中拷贝表
SELECT * INTO Person IN ‘Backup.mdb’ from Person
如果我们希望拷贝某些域,可以在SELECT语句中列出这些域。
SELECT firstName,LastName INTO Person_backup From Person
SQL SELECT INTO实例, 带有where字句
我们也可以添加Where字句。
下面的例子通过从Person表中提取居住在北京的人的信息,创建了一个带有两个列的名为Person_backup的表
SELECT firstName,LastName INTO Person_backup from Person where city=‘Beijing’
例 被连接的表
从一个以上的表中选取数据
下面例子会创建一个名为,“Person_Number_Backup” from Person INNER JOIN Orders ON Persons.Id_P=number.Id_P
3.Create DataBase
用于创建数据库
语法 create database database_name
实例 创建一个my_database的数据库
create database my_database
可以通过create table来添加数据库表
4.SQL create table 语句。
用于创建数据库中的表。
SQL create table 语法
create table 表名称
{
列名称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) 容纳日期
实例
创建名为Person的表
create table Person
{
Id_P int,
LastName varchar(255)
FirstName varchar (255)
Address varchar (255)
city varchar(255)
}
Id_P 列的数据类型为int 包含整数,其余4列的数据类型是varchar,最大长度为255个字符,空的Person表为
Id_P LastName FirstName Address city
可以使用insert into语句向空表中写入数据
5.SQL约束
约束用于限制加入表的数据的类型
可以在创建表时规定约束(通过create table语句),或者在表创建以后也可以,(通过Alert table语句)
下面将来讲以下几种约束(not null UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT)
(1)NOT NULL
SQL NOT 约束
约束强制列不接受NULL值
NOT NULL约束强制字段始终包含值,意为,如果不同字段添加值,就无法插入新纪录或者更新记录
下面SQL语句强制Id_列和firstName列不接受NULL值
create table Person
{
Id_P int NOT NULL,
LastName varchar(255)
FirstName varchar (255) NOT NULL
Address varchar (255)
city varchar(255)
}
(2)Unique 约束
Unique 约束唯一标识的数据库表中的每条记录。
Unique和PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY拥有自定义的UNIQUE约束
注:每个表可以有多个Unique约束,但是每个表只能有一个PRIMARY KEY约束
SQL Unique Contraint on create table
下面的SQL在Persons 表创建时在Id_P列创建UNIQUE约束
MySQL
create table Person
{
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 Person
{
Id_P int NOT NULL UNIQUE,
LastName varchar(255)NOT NULL,
FirstName varchar (255),
Address varchar (255),
city varchar(255)
}
create table Person
{
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)
}
SQL UNIQUE Contraint on ALTER TABLE
当表已经被建立的时候,如需在Id_P列中创建UNIQUE约束,使用
MySQL/SQL Server/Oracle/MS Access
Alert Table Person
ADD UNIQUE (Id_P)
如需要命名UNIQUE约束,并且定义多个列的UNIQUE约束,请使用
MySQL/SQL Server/Oracle/MS Access
ALERT TABLE Person
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
撤销UNIQUE约束
如需要撤销UNIQUE约束,
MySql
ALERT Table Person
SQL Server/Oracle/MS Access
ALERT TABLE Person
drop constraint uc_PersonID
在Number表创建时为Id_P列创建FOREIGN KEY
MySQL
通过使用类似getdate()这样的函数,Default 约束也可以用于插入系统值
create TABLE number
{
Id_O int NOT NULL,
orderNO int NOT NULL,
Id_P int,
numberDate date Default getdate()
}
- 数据库高级教程(二)
- SQL高级教程(二)
- 数据库高级教程(三)
- 数据库(二):高级检索
- python操作mysql数据库(高级教程)
- 数据库高级教程(一)
- EA教程(二)数据库
- 疯狂坦克 高级教程(二)
- JSP数据库高级教程-高级数据库技术
- asp.net高级教程(二)--- 转换编程思维
- asp.net高级教程(二)-转换编程思维
- asp.net高级教程(二):转换编程思维
- Swift中文教程(二十三) 高级运算符
- SQL经典教程 第二篇:高级(二)--约束
- Git教程——高级进阶(二)
- JSP数据库高级教程-数据库
- Delphi数据库编程教程(二)
- hjr教程-Android(二):Sqlite数据库
- Memcached性能测试
- Android使用传感器
- linux中查看软件文件安装路径
- Leetcode -- Unique Paths
- Android官方入门文档[14]停止和重新启动一个Activity活动
- 数据库高级教程(二)
- iOS中arc的设置与使用
- SQLite Explain(解释)
- iOS 添加微信分享
- JSON 文本 JavaScript 对象 eval() 函数
- 在xcode6.1和ios10.10.1环境下实现app发布
- 开放平台:微信 for iOS
- BMP文件读写
- 关于CC2540/2541编译Performing Post-Build Action卡住的问题