SQL Server学习内容(一)
SQL Server
SQL Server对大小写不敏感,每条语句末端使用分号。
1.SQL命令
SELECT 从数据中提取数据
UPDATE 更新数据中的数据
DELETE 从数据库中删除数据
INSERT INTO 向数据库中插入新数据
CREATE DATABASE 创建新数据库
ALTER DATABASE 修改数据库
CREATE TABLE 创建新表
ALTER TABLE 变更(改变)数据库表
DROP TABLE 删除表
CREATE INDEX 创建索引(搜索键)
DROP INDEX 删除索引
2.语法:
SELECT语句 用于从数据库中抽取数据,结果存储在一个结果表中,称为结果集。
SELECT column_name,column_name FROM table_name;(抽取指定列)
与
SELECT * FROM table_name;(抽取所有列)SELECT DISTINCT column_name,column_name FROM table_name;
SELECT DISTINCT语句用于返回唯一不同的值,没有重复项。SELECT column_name,column_name FROM table_name
WHERE column_name operator value;
(WHERE子句用于过滤记录)
WHERE子句中的运算符
AND & OR
ORDER BY 用于对结果集进行排序。
ORDER BY关键字用于对结果集按照一个列或者多个列进行排序,默认按照升序对记录进行排序,如需使用降序,需要使用DESC关键字。
SELECT column_name,column_name FROM table_name
ORDER BY column_name,column_name ASC|DESC;
ASC 表示升序;DESC 表示降序;
INSERT INTO用于向表中插入新记录
不指定要插入数据的列名,只提供被插入的值
INSERT INTO table_name
VALUES (values1,values2,values3,...);
此时需要列出插入行的每一列数据指定列名及插入的值
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
UPDATE语句,用于更新表中的记录
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
注意:如果省略WHERE语句,则将会对表中该列所有内容赋该值。
DELETE语句:用于删除表中数据
DELETE FROM table_name
WHERE some_column=some_value;
DELETE FROM table_name;
或
DELETE * FROM table_name;
在不删除表的情况下删除所有的行,表的结构、属性、索引保持不变。
SELECT TOP语句:用于规定要返回的记录的数目,更适用于拥有数千条记录的大型表
LIMIT, ROWNUM
SELECT TOP number|percent column_name(s)
FROM table_name;
实例:
SELECT * FROM table_name LIMIT NUMBER;
表示,从“table_name”表中选取number条记录。
LIKE操作符:用于在WHERE子句中搜索指定列中的指定模式
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
通配符:可用于替代字符串中的任何其他字符。与LIKE操作符一起使用
| 通配符 | 描述 |
|---|---|
| % | 替代0个或多个字符 |
| _ | 替代一个字符 |
| [charlist] | 字符列中的任何单一字符 |
| [^charlist]或[!charlist] | 不在字符列中的任何单一字符 |
%:
SELECT * FROM Websites WHERE url LIKE 'https%';
SELECT * FROM Websites WHERE url LIKE '%OO%';
_:
SELECT * FROM Websites WHERE name LIKE '_oogle';
SELECT * FROM Websites WHERE name LIKE 'G_o_le';
[charlist]:
SELECT * FROM Websites WHERE name REGEXP '^[GFs]';
选取name以“G”、“F”或“s”开始的所有网站
使用REGEXP或NOT REGEXP运算符(或RLIKE和NOT RLIKE)来操作正则表达式。
SELECT * FROM Websites WHERE name REGEXP '^[A-H]';
选取 name 以 A 到 H 字母开头的网站
[^charlist]或[!charlist]:
SELECT * FROM Websites WHERE name REGEXP '^[^A-H]';
选取 name 不以 A 到 H 字母开头的网站.
IN操作符
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);BETWEEN操作符
BETWEEN操作符选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期。
BETWEEN
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;NOT BETWEEN
如需要显示不在范围内的数据,使用NOT BETWEEN:
SELECT column_name(s)
FROM table_name
WHERE column_name NOT BETWEEN value1 and value2;带有IN的BETWEEN操作符实例
SELECT column_name(s)
FROM table_name
WHERE (column_name BETWEEN value1 and value2)
AND column_name IN ('value1', 'value2');带有文本值的需要在文本值上加上单引号' '。
SQL别名
通过使用SQL,可以为表名称或列名称指定别名。基本上,创建别名是为了让列名称的可读性更强。
列的SQL别名语法
SELECT column_name1 AS alias_name,column_name2 AS alias_name
FROM table_name;可以把多个列合起来作为一个列使用别名语法
SELECT CONCAT(column_name1,','column_name2,',',column_name3) AS alias_name
FROM table_name;表的SQL别名语法
SELECT column_name(s)
FROM table_name AS alias_name;在以下情况中,使用别名用处更大:
在查询中涉及超过一个表
在查询中使用了函数
列名称很长或者可读性差
需要把两个列或者多个列结合在一起
SQL连接(JOIN)
SQL JOIN用于把来自两个或多个表的行结合起来,基于这些表

其他
文本字段用单引号环绕,数值字段不需要
SQL Server学习内容(一)的更多相关文章
- SQL server学习
慕课网sql server学习 数据库第一印象:desktop--web server--database server** 几大数据库:sql server.oracle database.DB2. ...
- SQL server学习(三)T-SQL编程、逻辑控制语句和安全模式
T-SQL编程 T-SQL编程与C语言类似,只是语法稍有不同而已,总体思想还是没有变化的.多的就不说了,还是从变量开始. 变量也分为全局变量和局部变量,表示方式稍有不同. 局部变量: 局部变量必须以标 ...
- SQL Server 学习博客分享列表(应用式学习 + 深入理解)
SQL Server 学习博客分享列表(应用式学习 + 深入理解) 转自:https://blog.csdn.net/tianjing0805/article/details/75047574 SQL ...
- sql server学习路径地址
联机丛书2005:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms130214(v=sql.90) 联 ...
- SQL Server 学习系列之六
SQL Server 学习系列之六 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...
- SQL Server 学习系列之五
SQL Server 学习系列之五 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...
- SQL Server 学习系列之四(SQL 内幕)
SQL Server 学习系列之四(SQL 内幕) SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL ...
- 【SQL Server 学习系列】-- sql 随机生成中文名字
原文:[SQL Server 学习系列]-- sql 随机生成中文名字 ,) )) -- 姓氏 ,) )) -- 名字 INSERT @fName VALUES ('赵'),('钱'),('孙'),( ...
- 【SQL Server学习笔记】Delete 语句、Output 子句、Merge语句
原文:[SQL Server学习笔记]Delete 语句.Output 子句.Merge语句 DELETE语句 --建表 select * into distribution from sys.obj ...
随机推荐
- 解决vue+springboot前后端分离项目,前端跨域访问sessionID不一致导致的session为null问题
问题: 前端跨域访问后端接口, 在浏览器的安全策略下默认是不携带cookie的, 所以每次请求都开启了一次新的会话. 在后台打印sessionID我们会发现, 每次请求的sessionID都是不同的, ...
- ckeditor4.7配置图片上传
ckeditor作为老牌的优秀在线编辑器,一直受到开发者的青睐. 这里我们讲解下 ckeditor最新版本4.7的图片上传配置. https://ckeditor.com/ 官方 进入下载 https ...
- 在Rust中使用C语言的库功能
主要是了解unsafe{}语法块的作用. #[repr(C)] #[derive(Copy, Clone)] #[derive(Debug)] struct Complex { re: f32, im ...
- web-never give up
打开题目连接 ?id=1 ,疑是注入点 但是输入其他数字无果 打开源码,发现注释有网页链接 打开连接123.206.87.240:8006/test/1p.html 发现回到了bugku的论坛首页,应 ...
- luoguP3975 [TJOI2015]弦论
题意 第一问有一个经典做法:学习笔记 对于第二问,其实就是对于一个状态的所有串,第一问看成一个,第二问看成多个. code: #include<bits/stdc++.h> using n ...
- Java文件上传的几种方式
文件上传与文件上传一样重要.在Java中,要实现文件上传,可以有两种方式: 1.通过Servlet类上传 2.通过Struts框架实现上传 这两种方式的根本还是通过Servlet进行IO流的操作. 一 ...
- MySQL 数据库中删除重复数据的方法
演示数据,仅供参考 查询表结构: mysql> desc test; +-------+------------------+------+-----+---------+----------- ...
- 【前端知识体系-JS相关】深入理解JavaScript异步和单线程
1. 为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. Jav ...
- Anaconda--在虚拟环境中安装CUDA and cudnn
在conda虚拟环境中安装CUDAconda install cudatoolkit=8.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs ...
- HashMap的底层原理(jdk1.7.0_79)
前言 在Java中我们最常用的集合类毫无疑问就是Map,其中HashMap作为Map最重要的实现类在我们代码中出现的评率也是很高的. 我们对HashMap最常用的操作就是put和get了,那么你知道它 ...