数据库之路——SQL语法基础
来源:互联网 发布:如何看待校园暴力 知乎 编辑:程序博客网 时间:2024/05/06 10:32
1、创建数据库:CREATE DATABASE 库名
2、删除数据库:drop database 库名
3、创建新表:create table 表名(列1 数据类型 [not null][primary key],列2 数据类型 [not null],..)
根据已有的表创建新表:
①create table 新表名 like 旧表名
②create table 新表名 as select col1,col2… from 旧表名 definition only
约束:
NOT NULL列级约束
UNIQUE 列级约束
①单列UNIQUE约束:列名 数据类型 UNIQUE
②多列UNIQUE约束:CONSRTRAIBT 约束名 UNIQUE(列1,列2...)
③创建UNIQUE约束:alter table 表名 add UNIQUE(列名)
④撤销UNIQUE约束:alter table 表名 drop constraint 约束名
PRIMARY KEY约束 表级约束
①定义单列PRIMARY KEY约束:列名 数据类型 PRIMARY KEY
PRIMARY KEY(列名)
②定义多列PRIMARY KEY约束:CONSTRAINT 约束名 PRIMARY KEY(列1,列2...)
③创建PRIMARY KEY约束:add CONSTRAINT 约束名 PRIMARY KEY(列1,列2...)
④撤销PRIMARY KEY约束:drop CONSTRAINT 约束名
FOREIGN KEY 表级约束
①定义单列FOREIGN KEY约束:列名 数据类型 FOREIGN KEY REFERENCES 参考表名(列名)
②定义多列FOREIGN KEY约束:CONSTRAINT 约束名 FOREIGN KEY(列1,列2...) REFERENCES 参考表名(列1,列2...)
③创建FOREIGN KEY约束:add CONSTRAINT 约束名 PRIMARY KEY(列1,列2...) REFERENCES 参考表名(列1,列2...)
④撤销FOREIGN KEY约束:drop CONSTRAINT 约束名
CHECK约束 列级约束
CHECK(表达式)
DEFAULT约束(默认值)
4、删除表:drop table 表名
5、增加一个列:Alter table表名 add column 字段名数据类型
注:列增加后将不能删除。
6、添加主键: Alter table 表名 add primary key(字段名)
删除主键: Alter table 表名 drop primary key(字段名)
7、创建索引:create [unique] index 索引名 on 表名(列….)
删除索引:drop index 索引名
注:索引是不可更改的,想更改必须删除重新建。
8、创建视图:create view 视图名 as select statement
删除视图:drop view 视图名
9、
选择:select*from 表名 where 条件
插入:insert into 表名(字段名1,字段名2) values(值1,值2)
删除:delete from 表名 where 条件
更新:update 表名 set 变量=值 where 条件
查找:select*from 表名 where 变量 like ’%值%’ (%是通配符)
排序:select*from 表1 order by 字段1,字段2 (升序)
select*from 表1 order by 字段1,字段2 [desc](降序)
总数:select count(*)as totalcount from 表名(对所有行进行统计)
select count(字段) as totalcount from 表名(对指定列进行统计)
求和:selectsum(数量) as sumvalue from 表名
平均:selectavg(字段) as avgvalue from 表名
最大:selectmax(字段) as maxvalue from 表名
最小:selectmin(字段) as minvalue from 表名
10、几个高级查询运算词
A: UNION 运算符 (并集)
UNION 运算符通过组合两个结果表并消去表中任何重复行而派生出一个结果表。(UNION ALL不消除重复行)。
B: EXCEPT 运算符 (插集)
EXCEPT 运算符通过包括所有在表1 中但不在表2中的行并消除所有重复行而派生出一个结果表。(EXCEPT ALL,不消除重复行)。
C: INTERSECT 运算符(交集)
INTERSECT 运算符通过只包括表1和表2中都有的行并消除所有重复行而派生出一个结果表。 (INTERSECT ALL,不消除重复行)。
注:使用运算词的几个查询结果结构必须是一致的。 且每个子结果集不能包含order by或compute子句
11、使用外连接
A、left (outer) join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
Eg: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full/cross (outer) join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录
12、分组:Group by:
一张表,一旦分组 完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg
分组的标准:在SQL Server中分组时,不能以text,ntext,image类型的字段作为分组依据
13、对数据库进行操作:
分离数据库: sp_detach_db;
附加数据库:sp_attach_db
注:后接表名,附加需要完整的路径名
修改数据库的名称:sp_renamedb '旧数据库名', '新数据库名'
- 数据库之路——SQL语法基础
- SQL数据库基础语法总结
- PL/SQL之基础语法
- 数据库之SQL基本语法
- SQL数据库基础操作语法总结
- Java数据库编程---SQL语法基础
- java数据库编程--SQL语法基础
- SQL语法总结——基础篇
- 【DB.PL/SQL】PL/SQL —— 语法基础
- 数据库回顾之简单语法基础
- 数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(一)之语法解析
- SQL标准语法之数据库管理
- SQL基础之数据库快照
- SQL基础之数据库快照
- PL/SQL developer基础语法学习(二)之语法
- Python基础语法之——继承
- Python基础语法之——Lambda
- 数据库之路——SQL提升
- 乌干达实施比特币的监管法案
- Tomcat Could not publish server configuration for Tomcat v7.0 Server at localhost.错误
- android省市区区域联动地址优化
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(上)
- 一个天气接口
- 数据库之路——SQL语法基础
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
- 欢迎使用CSDN-markdown编辑器
- 用root直接登入ubuntu 14_04
- myeclipse去除jsp校验错误
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(中)
- [nginx] 内存池与基本容器
- 工作常用正则表达式
- c++ 数据结构 循环队列