sql基本语句整理
来源:互联网 发布:长歌正太捏脸数据 编辑:程序博客网 时间:2024/06/05 15:49
//sql基本语句整理
//创建数据库
CREATE DATABASE database_name;
//删除数据库
DROP DATABASE database_name;
//创建模式
CREATE SCHEMA name_of_schema AUTHORIZATION name_of_user;
//删除模式
DROP SCHEMA name_of_schema CASCADE; //连级删除,包括所有对象
DROP SCHEMA name_of_schema RESTRICT; //若有下属对象,拒绝执行删除操作
//创建表
CREATE TABLE name_of_table
(
name_of_column1 column_datatype,
name_of_column2 column_datatype,
name_of_column3 column_datatype
);
//例子
CREATE TABLE Train_Times
(
start_location varchar(75),
destination varchar(75),
departs time,
arrives time
);
//基本表的修改
ALTER TABLE name_of_table
ADD name_of_newcolumn data_type condition;
DROP condition;
ALTER COLUMN name_of_column data_type condition;
//删除基本表
DROP TABLE name_of_table CASCADE; //删除都有依赖对象
DROP TABLE name_of_table RESTRICT; //有依赖对象则拒绝删除
DROP TABLE Student CASCADE;
//数据类型
CHAR(n) // 长度 为n的定长字符串
VARCHAR(n) // 最大长度为n的变长字符串
INT/INTEGER //长整数
SMALLINT //短整数
NUMERIC(p,d) //定点数,p位数字,d位小数
REAL //机器精度的浮点数
Double Precision //机器长度的双精度浮点数
FLOAT(n) //浮点数,精度至少为n
DATA //日期 YYYY-MM-DD
TIME //时间 HH:MM:SS
//插入新数据
INSERT INTO
table_name (column_name1,column_name2,column_name3,....)
INTO
VALUES(data_value1,data_value2,data_value3,....);
//显示表中所有数据
SELECT *
FROM table_name
CREATE TABLE MemberDatils //
(
MemberId integer,
FirstName varchar(50),
LastName varchar(50),
DateOfBirth data,
Street varchar(100),
City varchar(75),
_State varchar(75),
ZipCode varchar(12),
Email varchar(200),
DateOfJoining date
);
INSERT INTO
MemberDatils
VALUES
(
1,
'Katie',
'Smith',
'1977-01-09',
'Main Road',
'Townsville',
'Stateside',
'123456',
'kate@mail.com',
'2004-02-23'
);
CREATE TABLE Category
(
CategoryID integer,
Category varchar(190)
);
INSERT INTO
Category(categoryID,Category)
VALUES(6,'historical');
//更新数据
UPDATE table_name
SET column_name=data_value
WHERE condition
UPDATE MemberDetails
SET
Street='45 upper road',
city='new town',
_state='new state',
ZipCode='99112'
WHERE MemberID=4;
//WHERE子句,用于查询和更新时作为条件
//<>表示不等于
//逻辑运算符AND和OR
//相当于C++中的&&和||
UPDATE MemberDetils
SET _State='mega state'
WHERE
_State='small state'
OR
_State='stateside';
UPDATE Location
SET _State='Mega State'
WHERE
_State='small state'
OR
_State='stateside';
//删除数据
DELETE FROM MemberDetails //删除表中所有记录
DELETE FROM MemberDetails //可以用WHERE指定条件
WHERE MemberID=3;
//提取信息与查询
SELECT column1,column2,columnx
FROM table_name;
//
SELECT MemberID,FirstName
FROM MemberDetails;
//用*取代所有列
SELECT *
FROM Location;
//尽量不使用所有列,影像处理速度浪费内存
//如果只想知道一个记录中的唯一值,可以用DISTINCT
SELECT DISTINCT City
FROM MemberDetails;
//city只会出现唯一值
//使用别名
SELECT sname NAME,yearOfBirth BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT
FROM Student;
SELECT LastName AS Surname
FROM MemberDetails;
//利用WHERE过滤子结果
SELECT FirstName + ' ' + LastName AS [FULL NAME]
FROM MemberDetails
WHERE City='Big City';
//运算符优先级
//圆括号()
//NOT
//AND
//ALL,ANY,BETWEEN,IN,LIKE,OR,SOME
//尽量使用园括号改变优先级
//基于true的条件 被过滤
SELECT FirstName
FROM MemberDetails
WHERE NOT State='Golden State';
//
SELECT FirstName
FROM MemberDetails
WHERE State<> 'Golden State';
//BETWEEN 用于指定一个范围
//这个范围位于两个值之间
SELECT FilitiName,Rating
FROM Films
WHERE Rating BETWEEN 3 AND 5;
//LIKE 运算符
//用于字符串匹配
SELECT LastName
FROM MemberDetails
WHERE LastName LIKE 'j%';
//在某些数据库中,LIKE区分大小写如oracle
//%匹配一个或多个字符
//_匹配一个字符
SELECT LastName
FROM MemberDetails
WHERE LastName LIKE 'D__s';
//LIKE经常和NOT LIKE 合用
//IN运算符
SELECT City
FROM MemberDetails
WHERE
City IN ('TOWNSVILL','windy village','Dover','Big City');
SELECT FolmName,YearReleased,Rating
FROM Films
WHERE
YearReleased IN (1967,1977,1987)
AND
Rating IN (4,5);
//利用ORDER BY排序结果
//默认升序
SELECT YearReleased
FROM Films
ORDER BY YearReleased;
ORDER BY YearReleased DESC;
//若有WHERE ,ORDER BY要置于WHERE的后面
//BETWEEN '2005-01-01' AND '2005-02-03'
//从多个表选择数据
SELECT FileName,YearReleased,Rating
FROM Films INNER JOIN Category
ON Films.CategoryId = Category.CategoryId
WHERE Category.CategoryId =6;
SELECT FileName,YearReleased,Rating
FROM Films,Category
ON Films.CategoryId = CategoryId.CategoryId
WHERE Category.CategoryID=6;
//约束
//NOT NULL
CREATE TABLE MyTable
(
Column1 int NOT NULL,
Column2 varchar(20),
Column3 varchar(12) NOT NULL
);
ALTER TABLE MyTable
MODIFY Column2 varchar(20) NOT NULL;
//UNIQUE
//防止特定列中两个值一样
//保证特定列数据唯一性
CREATE TABLE MyTable
(
Column1 int UNIQUE,
Column2 varchar(20) UNIQUE,
Column3 varchar(12) UNIQUE
);
//CHECK约束
///检查每一个输入到记录中的值,若为假,则违反约束,并不输入到表中.
CREATE TABLE NamesAges
(
Name varchar(50),
Age int CHECK(Age>0)
);
INSERT INTO
NamesAges(Name,Age)
VALUES('jim',30);
//主键约束,每个表都应当有一个主键
CREATE TABLE HolidayBookings
(
CustomerId int PRIMARY KEY,
BookingId int,
Destination varchar(50)
);
//IBM DB2中,主键列必须为NOT NULL
CREATE TABLE HolidayBookings
(
CustomerId int NOT NULL PRIMARY KEY,
BookingId int,
Destination varchar(50)
);
//
CREATE TABLE HolidayBookings
(
CustomerId int NOT NULL,
BookingId int NOT NULL,
Destination varchar(50),
PRIMARY KEY(CustomerId,BookingId)
);
//外键约束
//外键是访问另一个表中的主键的列
FOREIGN KEY (NAME_OF_COLUMN) REFERENCES NAME_OF_TABLE(NAME_OF_PRIMARYCOLUMN);
CREATE TABLE SC
(
Sno CHAR(9),
Cno CHAR(4),
PRIMARY KEY (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
//索引
CREATE INDEX NAME_OF_INDEX
ON NAME_OF_TABLE(COLUMN1 ASC,COLUMN2 DESC,...)
CREATE UNIQUE INDEX NAME_OF_INDEX //一个索引对应唯一的记录
CREATE CLUSTER INDEX NAME_OF_INDEX //创建群簇索引,经常更新的数据不宜采用
//删除索引
DROP INDEX name_of_table.index_name;
//设计好的数据库的技巧
//不要设计仅满足普通情况的情形,要覆盖所有可能发生的情况
//为表和字段选择有意义的名称
//尽量使名称简单
//命名和数据类型要一致
//先在纸上分析需求
//仔细选择主键
//创建一个索引,加快搜索速度
//添加一个多列索引
//避免使用保留字作为表名或字段名
//创建数据库
CREATE DATABASE database_name;
//删除数据库
DROP DATABASE database_name;
//创建模式
CREATE SCHEMA name_of_schema AUTHORIZATION name_of_user;
//删除模式
DROP SCHEMA name_of_schema CASCADE; //连级删除,包括所有对象
DROP SCHEMA name_of_schema RESTRICT; //若有下属对象,拒绝执行删除操作
//创建表
CREATE TABLE name_of_table
(
name_of_column1 column_datatype,
name_of_column2 column_datatype,
name_of_column3 column_datatype
);
//例子
CREATE TABLE Train_Times
(
start_location varchar(75),
destination varchar(75),
departs time,
arrives time
);
//基本表的修改
ALTER TABLE name_of_table
ADD name_of_newcolumn data_type condition;
DROP condition;
ALTER COLUMN name_of_column data_type condition;
//删除基本表
DROP TABLE name_of_table CASCADE; //删除都有依赖对象
DROP TABLE name_of_table RESTRICT; //有依赖对象则拒绝删除
DROP TABLE Student CASCADE;
//数据类型
CHAR(n) // 长度 为n的定长字符串
VARCHAR(n) // 最大长度为n的变长字符串
INT/INTEGER //长整数
SMALLINT //短整数
NUMERIC(p,d) //定点数,p位数字,d位小数
REAL //机器精度的浮点数
Double Precision //机器长度的双精度浮点数
FLOAT(n) //浮点数,精度至少为n
DATA //日期 YYYY-MM-DD
TIME //时间 HH:MM:SS
//插入新数据
INSERT INTO
table_name (column_name1,column_name2,column_name3,....)
INTO
VALUES(data_value1,data_value2,data_value3,....);
//显示表中所有数据
SELECT *
FROM table_name
CREATE TABLE MemberDatils //
(
MemberId integer,
FirstName varchar(50),
LastName varchar(50),
DateOfBirth data,
Street varchar(100),
City varchar(75),
_State varchar(75),
ZipCode varchar(12),
Email varchar(200),
DateOfJoining date
);
INSERT INTO
MemberDatils
VALUES
(
1,
'Katie',
'Smith',
'1977-01-09',
'Main Road',
'Townsville',
'Stateside',
'123456',
'kate@mail.com',
'2004-02-23'
);
CREATE TABLE Category
(
CategoryID integer,
Category varchar(190)
);
INSERT INTO
Category(categoryID,Category)
VALUES(6,'historical');
//更新数据
UPDATE table_name
SET column_name=data_value
WHERE condition
UPDATE MemberDetails
SET
Street='45 upper road',
city='new town',
_state='new state',
ZipCode='99112'
WHERE MemberID=4;
//WHERE子句,用于查询和更新时作为条件
//<>表示不等于
//逻辑运算符AND和OR
//相当于C++中的&&和||
UPDATE MemberDetils
SET _State='mega state'
WHERE
_State='small state'
OR
_State='stateside';
UPDATE Location
SET _State='Mega State'
WHERE
_State='small state'
OR
_State='stateside';
//删除数据
DELETE FROM MemberDetails //删除表中所有记录
DELETE FROM MemberDetails //可以用WHERE指定条件
WHERE MemberID=3;
//提取信息与查询
SELECT column1,column2,columnx
FROM table_name;
//
SELECT MemberID,FirstName
FROM MemberDetails;
//用*取代所有列
SELECT *
FROM Location;
//尽量不使用所有列,影像处理速度浪费内存
//如果只想知道一个记录中的唯一值,可以用DISTINCT
SELECT DISTINCT City
FROM MemberDetails;
//city只会出现唯一值
//使用别名
SELECT sname NAME,yearOfBirth BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT
FROM Student;
SELECT LastName AS Surname
FROM MemberDetails;
//利用WHERE过滤子结果
SELECT FirstName + ' ' + LastName AS [FULL NAME]
FROM MemberDetails
WHERE City='Big City';
//运算符优先级
//圆括号()
//NOT
//AND
//ALL,ANY,BETWEEN,IN,LIKE,OR,SOME
//尽量使用园括号改变优先级
//基于true的条件 被过滤
SELECT FirstName
FROM MemberDetails
WHERE NOT State='Golden State';
//
SELECT FirstName
FROM MemberDetails
WHERE State<> 'Golden State';
//BETWEEN 用于指定一个范围
//这个范围位于两个值之间
SELECT FilitiName,Rating
FROM Films
WHERE Rating BETWEEN 3 AND 5;
//LIKE 运算符
//用于字符串匹配
SELECT LastName
FROM MemberDetails
WHERE LastName LIKE 'j%';
//在某些数据库中,LIKE区分大小写如oracle
//%匹配一个或多个字符
//_匹配一个字符
SELECT LastName
FROM MemberDetails
WHERE LastName LIKE 'D__s';
//LIKE经常和NOT LIKE 合用
//IN运算符
SELECT City
FROM MemberDetails
WHERE
City IN ('TOWNSVILL','windy village','Dover','Big City');
SELECT FolmName,YearReleased,Rating
FROM Films
WHERE
YearReleased IN (1967,1977,1987)
AND
Rating IN (4,5);
//利用ORDER BY排序结果
//默认升序
SELECT YearReleased
FROM Films
ORDER BY YearReleased;
ORDER BY YearReleased DESC;
//若有WHERE ,ORDER BY要置于WHERE的后面
//BETWEEN '2005-01-01' AND '2005-02-03'
//从多个表选择数据
SELECT FileName,YearReleased,Rating
FROM Films INNER JOIN Category
ON Films.CategoryId = Category.CategoryId
WHERE Category.CategoryId =6;
SELECT FileName,YearReleased,Rating
FROM Films,Category
ON Films.CategoryId = CategoryId.CategoryId
WHERE Category.CategoryID=6;
//约束
//NOT NULL
CREATE TABLE MyTable
(
Column1 int NOT NULL,
Column2 varchar(20),
Column3 varchar(12) NOT NULL
);
ALTER TABLE MyTable
MODIFY Column2 varchar(20) NOT NULL;
//UNIQUE
//防止特定列中两个值一样
//保证特定列数据唯一性
CREATE TABLE MyTable
(
Column1 int UNIQUE,
Column2 varchar(20) UNIQUE,
Column3 varchar(12) UNIQUE
);
//CHECK约束
///检查每一个输入到记录中的值,若为假,则违反约束,并不输入到表中.
CREATE TABLE NamesAges
(
Name varchar(50),
Age int CHECK(Age>0)
);
INSERT INTO
NamesAges(Name,Age)
VALUES('jim',30);
//主键约束,每个表都应当有一个主键
CREATE TABLE HolidayBookings
(
CustomerId int PRIMARY KEY,
BookingId int,
Destination varchar(50)
);
//IBM DB2中,主键列必须为NOT NULL
CREATE TABLE HolidayBookings
(
CustomerId int NOT NULL PRIMARY KEY,
BookingId int,
Destination varchar(50)
);
//
CREATE TABLE HolidayBookings
(
CustomerId int NOT NULL,
BookingId int NOT NULL,
Destination varchar(50),
PRIMARY KEY(CustomerId,BookingId)
);
//外键约束
//外键是访问另一个表中的主键的列
FOREIGN KEY (NAME_OF_COLUMN) REFERENCES NAME_OF_TABLE(NAME_OF_PRIMARYCOLUMN);
CREATE TABLE SC
(
Sno CHAR(9),
Cno CHAR(4),
PRIMARY KEY (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
//索引
CREATE INDEX NAME_OF_INDEX
ON NAME_OF_TABLE(COLUMN1 ASC,COLUMN2 DESC,...)
CREATE UNIQUE INDEX NAME_OF_INDEX //一个索引对应唯一的记录
CREATE CLUSTER INDEX NAME_OF_INDEX //创建群簇索引,经常更新的数据不宜采用
//删除索引
DROP INDEX name_of_table.index_name;
//设计好的数据库的技巧
//不要设计仅满足普通情况的情形,要覆盖所有可能发生的情况
//为表和字段选择有意义的名称
//尽量使名称简单
//命名和数据类型要一致
//先在纸上分析需求
//仔细选择主键
//创建一个索引,加快搜索速度
//添加一个多列索引
//避免使用保留字作为表名或字段名
//考虑储存空间
//转载请注明出处
- sql基本语句整理
- sql基本语句整理
- SQL基本使用语句整理
- 个人整理的sql基本语句(不全)
- [SQL]常用的MySQL基本语句(整理中)
- 精妙SQL语句整理
- Sql语句小整理
- SQL 语句的整理!
- 精妙SQL语句整理
- 精妙SQL语句整理
- 精妙SQL语句整理
- 整理的sql语句
- 精妙SQL语句整理
- 精妙SQL语句整理
- 精妙SQL语句整理
- Sql 语句整理
- 精妙SQL语句整理
- SQL语句整理
- "黑马程序员”IO流的学习日志01
- MYsql压力测试脚本
- Write operations are not allowed in read-only mode 只读模式下(FlushMode.NEVER/MANUAL)写操作不允
- cookies 第一方cookie 和 第3方cookie
- C/Java/C++数据类型的比较
- sql基本语句整理
- C#中的if语句
- 人生就是一个人的较量
- linux隐式密码输入
- 在DLL编程中,导出函数为什么需要extern "C"
- 连接ACCESS
- Deploying OpenStack-第一章 OpenStack项目
- ORA-24324 ORA-01041 ORA-03113
- QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率