常用sql语句总结:

1、如果目标表存在:insert into 目标表 select * from 原表;
2、如果目标表不存在:select * into 目标表 from 原表;
3、清空表中的数据,保留表结构:truncate table tableName
4、删除某列数据:update tableName set 列名=null
5、同时删除列名: alter table tableName drop column 列名
6、按照某列排序:select * from 表 where order by 列名 desc(降序)/asc(升序)
7、插入表:INSERT INTO table_name (column1,column2,column3,…) VALUES (value1,value2,value3,…);
8、更新表数据:UPDATE table_name SET column1=value1,column2=value2,…WHERE some_column=some_value;
9、按条件删除表内容:delete from tableName where column_name = ();
10、删除数据:delete * from tableName; delete from tableName; truncate table tableName;
11、查找前n条数据:Select top n column_name(s) from tableName;
12、模糊查询:SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
( ‘G%’,’%k’,开头结尾为G、k字段,’%oo%’ 包含oo字段,不包含时用 not like pattern)
13、通配符匹配:%代表0个或多个字符,_代替一个字符,[charlist]字符列中的任意字符,[^charlist]或[!charlist]:不在字符列中的任何单一字符
SELECT * FROM Websites WHERE column_name REGEXP ‘1’; //选取某列以A-H任意字母开头数据
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist] 不在字符列中的任何单一字符
其中搭配以上通配符可以让LIKE命令实现多种技巧:
1)、LIKE’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2)、LIKE’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3)、LIKE’%en%’ 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
4)、LIKE’_heryl’ 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
5)、LIKE’[CK]ars[eo]n’ 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
6)、LIKE’[M-Z]inger’ 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
7)、LIKE’M[^c]%’ 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。

14、多值查询 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,…);
15、(非)间值查询 SELECT column_name(s) FROM table_name WHERE column_name (not)BETWEEN value1 AND value2;
16、列别名:SELECT column_name AS alias_name FROM table_name;
17、多表连接:SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name=table2.column_name;
18、UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。
19、一个表中复制所有的列插入到另一个已存在的表中:INSERT INTO table2INSERT INTO table2 SELECT * FROM table1;
只复制希望的列插入到另一个已存在的表中:INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;
20、创建数据库:creat database databaseName;
21、创建数据表结构:CREATE TABLE table_name(column_name1 data_type(size),column_name2 data_type(size),column_name3 data_type(size),…);
22、SQL约束:
1)NOT NULL - 指示某列不能存储 NULL 值。
2)UNIQUE - 保证某列的每行必须有唯一的值。
3)PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
4)FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
5)CHECK - 保证列中的值符合指定的条件。
6)DEFAULT - 规定没有给列赋值时的默认值。

PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
CHECK 约束规定 "P_Id" 列必须只包含大于 0 的整数。
CREATE TABLE Persons

(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
23、drop table tableName; drop database databaseName; truncate table tableName(只删除表中数据,不删除表结构);
24、ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
如需在表中添加列,请使用下面的语法:ALTER TABLE table_name ADD column_name datatype;
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):ALTER TABLE table_name DROP COLUMN column_name;
要改变表中列的数据类型:ALTER TABLE table_name ALTER COLUMN column_name datatype;
删除 “Person” 表中的 “DateOfBirth” 列: ALTER TABLE Persons DROP COLUMN DateOfBirth;
25、ID自增序列:CREATE TABLE Persons

ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255)NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY(ID)

26、创建视图: CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition;
27、SQLSerever中的Data函数:
GETDATE() 返回当前的日期和时间
DATEPART() 返回日期/时间的单独部分
DATEADD() 在日期中添加或减去指定的时间间隔
DATEDIFF() 返回两个日期之间的时间
CONVERT() 用不同的格式显示日期/时间
DATE - 格式:YYYY-MM-DD
DATETIME - 格式:YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 格式:YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式:唯一的数字
28、null操作符的比较查询,只能用is null 或 is not null进行查询比较
29、SQLSerever:数据类型以及使用规则:
String类型:
数据类型 描述 存储
char(n) 固定长度的字符串。最多 8,000 个字符。 Defined width
varchar(n) 可变长度的字符串。最多 8,000 个字符。 2 bytes + number of chars
varchar(max) 可变长度的字符串。最多 1,073,741,824 个字符。 2 bytes + number of chars
text 可变长度的字符串。最多 2GB 文本数据。 4 bytes + number of chars
nchar 固定长度的 Unicode 字符串。最多 4,000 个字符。 Defined width x 2
nvarchar 可变长度的 Unicode 字符串。最多 4,000 个字符。
nvarchar(max) 可变长度的 Unicode 字符串。最多 536,870,912 个字符。
ntext 可变长度的 Unicode 字符串。最多 2GB 文本数据。
bit 允许 0、1 或 NULL
binary(n) 固定长度的二进制字符串。最多 8,000 字节。
varbinary 可变长度的二进制字符串。最多 8,000 字节。
varbinary(max) 可变长度的二进制字符串。最多 2GB。
image 可变长度的二进制字符串。最多 2GB。

Number 类型:
数据类型 描述 存储
tinyint 允许从 0 到 255 的所有数字。 1 字节
smallint 允许介于 -32,768 与 32,767 的所有数字。 2 字节
int 允许介于 -2,147,483,648 与 2,147,483,647 的所有数字。 4 字节
bigint 允许介于 -9,223,372,036,854,775,808 与 9,223,372,036,854,775,807 之间的所有数字。 8 字节
decimal(p,s) 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。
p 参数指示可以存储的最大位数(小数点左侧和右侧)。
p 必须是 1 到 38 之间的值。默认是 18。
s 参数指示小数点右侧存储的最大位数。
s 必须是 0 到 p 之间的值。默认是 0。5-17 字节
numeric(p,s) 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。
p 参数指示可以存储的最大位数(小数点左侧和右侧)。
p 必须是 1 到 38 之间的值。默认是 18。
s 参数指示小数点右侧存储的最大位数。
s 必须是 0 到 p 之间的值。默认是 0。5-17 字节
smallmoney 介于 -214,748.3648 与 214,748.3647 之间的货币数据。
4 字节
money 介于 -922,337,203,685,477.5808 与 922,337,203,685,477.5807 之间的货币数据。 8 字节
float(n) 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。
n 参数指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。 4 或 8 字节
real 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。 4 字节

30、SQLServer函数:
AVG()平均函数:SELECT AVG(count) AS CountAverage FROM access_log;
高于平均值得sql筛选:SELECT site_id, count FROM access_log WHERE count > (SELECT AVG(count) FROM access_log);
31、COUNT函数:返回指定列的值的数目(NULL 不计入):SELECT COUNT(column_name) FROM table_name;
查询表中所有记录条数: Select count(*) from table_name;
COUNT(DISTINCT column_name) 函数返回指定列的不同值(重复)的数目:SELECT COUNT(DISTINCT column_name) FROM table_name;
32、frist函数:返回指定的列中第一个记录的值:
SELECT FIRST(column_name) FROM table_name;
SELECT TOP 1 column_name FROM table_name ORDER BY column_name ASC;
33、LAST() 函数返回指定的列中最后一个记录的值。
SELECT LAST(column_name) FROM table_name;
SELECT TOP 1 column_name FROM table_name ORDER BY column_name DESC;
SELECT name FROM Websites ORDER BY id DESC LIMIT 1;
34、MAX() 函数返回指定列的最大值。
SELECT MAX(column_name) FROM table_name;
35、MIN() 函数返回指定列的最小值。
SELECT MIN(column_name) FROM table_name;
36、SSUM() 函数返回数值列的总数。
SELECT SUM(column_name) FROM table_name;
SELECT SUM(count) AS nums FROM access_log;
37、GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
SELECT Websites.name,COUNT(access_log.aid) AS nums FROM access_log LEFT JOIN Websites ON access_log.site_id=Websites.id GROUP BY Websites.name;
38、Having在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。AVING 子句可以让我们筛选分组后的各组数据。
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value;
39、UCASE() 函数把字段的值转换为大写。
SELECT UCASE(column_name) FROM table_name;
SQL Server 大小写用 UPPER() 和 LOWER()
40、MID() 函数用于从文本字段中提取字符。
SELECT MID(column_name,start[,length]) FROM table_name;
41、LEN() 函数返回文本字段中值的长度。
SELECT LEN(column_name) FROM table_name;
42、ROUND() 函数用于把数值字段舍入为指定的小数位数。
SELECT ROUND(column_name,decimals) FROM table_name;
43、NOW() 函数返回当前系统的日期和时间。
SELECT NOW() FROM table_name;
44、FORMAT() 函数用于对字段的显示进行格式化。
SELECT FORMAT(column_name,format) FROM table_name;


  1. A-H ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒二哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值