sql基础知识(新手必备)
一、简单查询
1、查询所有数据,查询部分列数据,列别名
SELECT * FROM 表名
SELECT 列1 AS 'BIAOTI1','BIAOTI2'=列2 FROM 表名
2、查询不重复的数据,
SELECT DISTINCT 列名 FROM 表名
3、查询前n行数据
SELECT TOP N PERCENT * FROM 表名
4、过滤行
运算符:比较运算符、逻辑运算符(AND/OR/NOT)、范围运算符([NOT]BETWWEEN AND)、列表运算符(IN(值列表))、模式匹配符、空值判断符
SELECT * FROM 表名 WHERE 条件
模式匹配符:where 列名1 LIKE '%' '_' '[^0-9][A-Z]'
NULL判断符:IS NULL /IS NOT NULL
5、排序 ORDER BY 列名1 [ASC/DESC],列名2 [ASC/DESC]
二、函数
1、字符串函数:substring(expression,start,length)、--求子串
str(float_expression,[length,[decimal]])--将数字类型转换成字符类型
2、日期函数:getdate()、--获取当前系统日期
dateadd(datepart,number,date)、--yy mm dd
Datediff(datepart,date1,date2)、--求两个日期的差
Year(date)、Month(date)、Day(date)
3、数学函数:round(numeric_exp,length)--
4、转换函数:convert(datatype [(length)],expression[,style])--类型转换函数
5、次序函数:row_number()、Rank()、dense_rank()
6、Isnull函数--
7、集合函数:min,max,sum,avg,count
三、分组
分组过滤(列1.列2 ,必须在group by 中出现的)
SELECT 列1 ,列2 ,COUNT(列3) FROM 表名 WHERE 条件
GROUP BY 列1,列2
HAVING 条件(分组之后的过滤,可以用聚合函数)
四、连接(子查询结果集如果在一个表中,用子查询,否则用连接)
1、内连接: SELECT A.列名 ,B.列名 FROM 表1 A
[INNER] JOIN 表2 B ON A.列名= B.列名
2、外连接:左外连接、右外连接、全外连接
(保证一个表中的数据,全部显示出来,再加上另一个表中满足条件的数据)
SELECT A.列名 ,B.列名 FROM 表1 A
LEFT|RIGHT|FULL [OUTER] JOIN 表2 B ON A.列名= B.列名
五、子查询
select 列名1,列名2 from 表1
where 列 运算符 (select 语句)
select 列名1,列名2 from 表1
where [not] exists (select 语句)
[not] in
[not] exists
比较运算符引出的子查询
六、建库建表 creat alert drop 管理结构
1、建库 CREATE DATABASE 数据库名 / 删除数据库 DROP DATABASE 数据库名
一般情况: mdf数据库主文件 ldf 日志文件
特殊情况(大型数据库): ndf辅助文件
2、建表 CREATE TABLE 表名 / DROP TABLE 表名
( 列名1 数据类型 约束, null/not null primary key check(),
列名2 数据类型 约束 unique,
列名3 数据类型 约束 Default值
列名4 数据类型 约束 foreign key references 表名2(列明)
)
--添加字段
ALTER TABLE 表名
ADD
--修改字段
ALTER TABLE 表名
ALTER
--删除字段
ALTER TABLE 表名
DROP
use 数据库
3、管理表
INSERT [INTO] 表名(列列表)VALUES(值的列表)
UPDATE 表名 SET 列1=值1,列2=值2 WHERE 条件
DELETE FROM 表名 WHERE 条件
七、数据完整性 constraint references
类型: 1.实体完整性
2.参照(引用)完整性
3.域完整性
4.用户自定义完整性
实现:
1、Primary key 主键
2、Foreign key 外键 REFERENCES 表名(列名)
3、Unique 唯一约束
4、Check 检查约束
5、Default 默认值约束
数据管理
添加数据
insert [into] 表名 (列列表) values(zhi leibiao)
更新数据
update 表名 set 列名1=值1,列名2=值2 where
删除数据
delete from 表名 where
八、视图
优点:
语法:create view view_name
as select 语句
九、索引
优点:提高对数据库操作的性能 建在经常使用的,小字段的地方
语法:create index index_name
on 表(列1,列2)
十、存储过程
优点:可以重用代码 客户端只要发送很少的参数跟存储过程名就可以 减少网络流量 安全性高
语法:create proc 存储过程名
@aa 类型, 输入参数
@bb 类型 output 输出参数
as sql语句
return 数值
调用:exec 过程名 参数[output]
十一、事务
特点:
四个特性:原子性 独立性 一致性 持久性
begin transaction 建立一个显示事务
commit transaction :标识一个隐士或显示事务
sql基础知识(新手必备)的更多相关文章
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
SQL 基础知识梳理(六)- 函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...
- [SQL] SQL 基础知识梳理(七)- 集合运算
SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 ...
- 常见SQL语句和SQL基础知识
引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name k ...
- SQL 基础知识终极指南
什么是数据库? 数据库是以电子方式从系统中存储和检索的大量数据集合. 存储在数据库中的结构化数据被处理.操纵.控制和更新以执行各种操作. 行业中使用的一些流行数据库是 Oracle.MySQL.Pos ...
- 【JavaScript OPP基础】---新手必备
今天和大家分享一下近期整理的有关JavaScriptOPP的基础知识~~~我们一起来学习一下-- JavaScriptOPP基础 一.面向对象编程OOP1.语言的分类:面向机器:汇编语言面向过程:C语 ...
随机推荐
- 创建Windows截图工具的快捷方式
日常生活中我们会用到好多截图,一般截图我们用QQ自带截图较多,但许多人都忽视了电脑自带截图功能.在我的电脑-->附件-->截图工具 按照上述方式找截图工具比较繁琐,今天我们可以通过快捷 ...
- 记录几款不错的chrome主题
虽然不是一个主题控,但是浏览器无疑是每天使用最多的工具.而在MAC底下,大多数程序边框都是银灰色的,窗口多了就难以有效区分. 所以精挑细选了几款,要求是标签要容易辨识,简洁而不花哨. 不推荐太固定的风 ...
- 快速理解Java中的五种单例模式
解法一:只适合单线程环境(不好) package test; /** * @author xiaoping * */ public class Singleton { private static S ...
- 黑马程序员——JAVA基础之网络编程
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...
- 开发技巧-Java通过HttpProxy实现穿越
需求描述 在正常的项目开发需求中,连接远程服务器的场景一般有二: 1 自家实现的http服务器,api接口都已经约定好: 2 开发平台服务,通常如新浪.百度云等平台提供的r ...
- C# 托管资源与非托管资源
在.net 编程环境中,系统的资源分为托管资源和非托管资源. 托管资源: Net平台中,CLR为程序员提供了一种很好的内存管理机制,使得程序员在编写代码时不要显式的去释放自己使用的内存资源(这些在先前 ...
- Node.js网络编程
Node.js为javascript语言提供了一个在服务端运行的平台,它以其事件驱动,非阻塞I/O机制使得它本身非常适合开发运行在在分布式设备上的I/O密集型应用,分布式应用要求Node.js必须对网 ...
- SQL2005 遍历表插入
/* sql2005遍历表(方法1) insert into 数据表(userid,adddate) values((select userid from 用户表),date); */ /*sql20 ...
- 《C#编程风格》还记得多少
开始实习之后,才发现自己是多么地菜.还有好多东西还要去学习. 公司很好,还可以帮你买书.有一天随口问了一下上司D,代码规范上面有什么要求.然后D在Amazon上面找到了这本书<C#编程风格(Th ...
- [Linux] Linux下谁在消耗我们的cache
一.缘由: 曾经看到MySQL服务器上Cache占用特别大,其实大家都知道这是合理的,这些都是可用内存: 那么问题来了,是谁在占用这些Cache呢?如果去掉不合理的Cache占用,系统内存会更充分的得 ...