SQL基本语法和书写格式

简介: SQL基本语法和书写格式
插入
insert [into] 表名 [(列名列表)] values (值列表)
insert into 新表名 (列名列表) select 列名列表 from 表名
select 表名.列名 into 新表名 from 表名
insert 表名(列名列表) select 值列表1 union select 值列表2
修改
update 表名 set 列名 = 更新值 [where <更新条件>]
update 表名 set 列名1 = 更新值, 列名n = 更新值 [where <更新条件>]
删除
delete [from] 表名 [where <删除条件>]
truncate table 表名
查询
select 列名 from 表名 where <查询条件表达式> 
order by <排序的列名> asc 或 desc
select * from 表名 //查询所有数据
select 列名列表 from 表名 where 查询条件 //查询部分行或列
select 列名 as 列别名 from 表名 where 查询条件 //使用列别名
select * from 表名 where 列名 is null //查询空值
select 列别名 = 列名, 默认信息 as 列名 from 表名 //使用常量
select top 显示的行数 列名 from 表名 where 查询条件 //限制显示行数
select top 数字 percent 列名 from 表名 where 查询条件 //按百分比提取
模糊查询
select * from 表名 where 列名 like '查询的值%'
select * from 表名 where 列名 between 初值 and 终值
select * from 表名 where 列名 in(值1, 值2)
分组查询
select 列名 from 表名 group by 列名
内连接
SELECT 表名1.列名, 表名2.列名 FROM 表名1, 表名2 
 WHERE 表名1.列名 = 表名2.列名
SELECT 表名1.列名, 表名2.列名 FROM 表名1
 INNER JOIN 表名2 ON (表名1.列名 = 表名2.列名)
左外连接
SELECT 表名1.列名, 表名2.列名 FROM 表名1
 LEFT OUTER JOIN 表名2 ON 表名1.列名 = 表名2.列名
右外连接
SELECT 表名1.列名, 表名2.列名 FROM 表名1
 RIGHT OUTER JOIN 表名2 ON 表名1.列名 = 表名2.列名
通配符
-:一个字符
%:任意长度的字符串
[]:括号中所指定范围内的一个字符
[^]:不在括号中所指定范围内的任意一个字符
聚合函数
SUM() 总和
AVG() 平均值
MAX() 最大值
MIN() 最小值
COUNT() 计数
字符串函数
charindex 查找一个指定字符串在 select charindex('a','name')
另一个字符串中的起始位置 返回 2
len 字符串长度 select len('name') 返回 4
upper 转大写 select upper('name') 返回 NAME
ltrim 清除字符左边的空格 select upper(' name ') 
返回 "name "
rtrim 清除字符右边的空格 select upper(' name ') 
返回 " name"
right 从字符串右边返回指定数目的字符 select right('name',2) 返回 me
replace 替换一个字符串中的字符 select replace('name','a','b') 
返回 nbme
stuff 在一个字符串中, select stuff('name',2,3,'bsp')
删除指定长度的字符, 返回 nbsp
并在该位置插入一个新的字符
 日期函数
getdate 取得当前系统消息 select getdate() 返回当前的日期
dateadd 将指定的数值添加到指定的 select dateadd(mm,4,'01/01/2009')
日期部分后的日期 返回 05/01/2009
datediff 两个日期之间的间隔 select datediff
 (mm,'01/01/2009','05/01/2009')
返回 4
datename 日期中指定日期部分的 select datename(dw,'01/01/2000')
字符串形式 返回 Saturday 或 星期六
datepart 日期中指定日期部分的整数形式 select datepart(day,'01/15/2009')
返回 15
日期部分参数及缩写
year yy,yyyy 年份
quarter qq,q 季节
month mm,m 月份
dayofyear dy,y 一年中的第几天
day dd,d 天数
week wk,ww 第几周
weekday dw,w 周几
hour hh,h 小时
minute mi,n 分
second ss,s 秒
minllisecond ms 毫秒
数学函数
rand 从0-1之间的随机float值 select rand() 返回 0.79854628433
abs 取数值表达式的绝对值 select abs(-43) 返回 43
ceiling 向上取整,取大于或等于 select ceiling(43.5) 返回 44
指定数值,表达式的最小整数
floor 向下取整,取小于或等于 select floor(43.5) 返回 43
指定表达式的最大整数
power 取数值表达式的幂值 select power(5,2) 返回 25
round 将数值表达式四舍五入为指定精度 select round(43.54,1) 返回 43.50
sign 正数返回+1,负数返回-1,0返回0 select round(-43) 返回 -1
sqrt 取浮点表达式的平方根 select sqrt(9) 返回 3
系统函数
convert 转换数据类型 select convert(varchar(5),12345)
返回 12345
current_user 返回当前用户的名字 select current_user() 
返回 你登陆的用户名
datalenght 返回指定表达式的字节数 select datalenght('name') 返回 4
host_name 返回当前用户登录的计算机名字 select host_name()
system_user 返回当前所登录的用户名称 select system_user()
user_name 从给定的用户ID返回用户名 select user_name(1)
返回 从任意数据库中返回“dbo”
数据类型
二进制 非字符和文本 binary 固定长度
varbinary 可变长度
image 图片
字符 字母、符号、数字 char 固定长度非Unicode字符数据
varchar 可变长度非Unicode字符数据
nchar 固定长度Unicode字符数据
nvarchar 可变长度Unicode字符数据
text 长文本信息
ntext 可变长度长文本信息
日期和时间 日期、时间 datetime 1753-1-1到9999-12-31,准确度三百分之一秒或3.33毫秒
数字 正数、负数、分数 int 整数
smallint 
 tinyint 
 bigint
 float 浮点数
real
货币 十进制货币值,精 money
确到小数点后4位
bit 表示 是/否 bit 布尔数据类型


目录
相关文章
|
11天前
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
33 3
|
17天前
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
27 5
|
24天前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
1月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
14 0
|
1月前
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
29 0
|
3月前
|
SQL Java 数据库连接
JDBC连接SQL Server2008 完成增加、删除、查询、修改等基本信息基本格式及示例代码
这篇文章提供了使用JDBC连接SQL Server 2008数据库进行增加、删除、查询和修改操作的基本步骤和示例代码。
|
3月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
41 5
|
4月前
|
SQL 关系型数据库 数据库
sql语法
【7月更文挑战第30天】sql语法
46 12
|
3月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
362 0
|
4月前
|
SQL Java 数据库连接
mybatis动态SQL常用语法总结
MyBatis 使用 OGNL 表达式语言处理动态SQL,如 `if` 标签进行条件判断,`choose`、`when`、`otherwise` 实现多条件选择,`where`、`set` 管理SQL关键字,`trim` 提供通用修剪功能,`foreach` 遍历集合数据。`sql` 和 `include` 用于代码重用,`selectKey` 处理插入后的返回值。参数传递支持匿名、具名、列表、Map、Java Bean和JSON方式。注意SQL转义及使用合适的jdbcType映射Java类型。
89 7