共计 4568 个字符,预计需要花费 12 分钟才能阅读完成。
SQLServer 数据库语法有哪些呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
– 数据操作
SELECT – 从数据库表中检索数据行和列
INSERT – 向数据库表添加新数据行 DELETE – 从数据库表中删除数据行
UPDATE – 更新数据库表中的数据 – 数据定义
CREATE TABLE – 创建一个数据库表
DROP TABLE – 从数据库中删除表
ALTER TABLE – 修改数据库表结构
CREATE VIEW – 创建一个视图
DROP VIEW – 从数据库中删除视图
CREATE INDEX – 为数据库表创建一个索引
DROP INDEX – 从数据库中删除索引
CREATE PROCEDURE – 创建一个存储过程
DROP PROCEDURE – 从数据库中删除存储过程
CREATE TRIGGER – 创建一个触发器
DROP TRIGGER – 从数据库中删除触发器
CREATE SCHEMA – 向数据库添加一个新模式
DROP SCHEMA – 从数据库中删除一个模式
CREATE DOMAIN – 创建一个数据值域
ALTER DOMAIN – 改变域定义
DROP DOMAIN – 从数据库中删除一个域
– 数据控制
GRANT – 授予用户访问权限
DENY – 拒绝用户访问
REVOKE – 解除用户访问权限 – 事务控制
COMMIT – 结束当前事务
ROLLBACK – 中止当前事务
SET TRANSACTION – 定义当前事务数据访问特征
– 程序化 SQL
DECLARE – 为查询设定游标
EXPLAN – 为查询描述数据访问计划
OPEN – 检索查询结果打开一个游标
FETCH – 检索一行查询结果
CLOSE – 关闭游标
PREPARE – 为动态执行准备 SQL 语句
EXECUTE – 动态地执行 SQL 语句
DESCRIBE – 描述准备好的查询
— 局部变量 declare @id char(10)–set @id = 10010001 select @id = 10010001
— 全局变量 —
必须以 @@开头
--IF ELSE declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x @y print x y -- 打印字符串 x y else if @y @z print y z else print z y
--CASE use pangu update employee set e_wage = case when job_level = 1 then e_wage*1.08 when job_level = 2 then e_wage*1.07 when job_level = 3 then e_wage*1.06 else e_wage*1.05 end
--WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1 while @x 3 begin print @x -- 打印变量 x 的值 while @y 3 begin select @c = 100*@x + @y print @c -- 打印变量 c 的值 select @y = @y + 1 end select @x = @x + 1 select @y = 1 end
--WAITFOR -- 例 等待 1 小时 2 分零 3 秒后才执行 SELECT 语句 waitfor delay 01:02:03 select * from employee -- 例 等到晚上 11 点零 8 分后才执行 SELECT 语句 waitfor time 23:08:00 select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value ex:(宿主) select * from stock_information where stockid = str(nid) stockname = str_name stockname like % find this % stockname like [a-zA-Z]% --------- ([] 指定值的范围) stockname like [^F-M]% --------- (^ 排除指定范围) --------- 只能在使用 like 关键字的 where 子句中使用通配符 ) or stockpath = stock_path or stocknumber 1000 and stockindex = 24 not stock*** = man stocknumber between 20 and 100 stocknumber in(10,20,30) order by stockid desc(asc) --------- 排序,desc- 降序,asc- 升序 order by 1,2 --------- by 列号 stockname = (select stockname from stock_information where stockid = 4)
——— 子查询 ——— 除非能确保内层 select 只返回一个行的值,——— 否则应在外层 where 子句中用一个 in 限定符
select *from table1, table2 where table1.id *= table2.id -------- 左外部连接,table1 中有的而 table2 中没有得以 null 表示 table1.id =* table2.id -------- 右外部连接 select stockname from table1 union [all] ----- union 合并查询结果集,all- 保留重复行 select stockname from table2
***insert***
insert into table_name (Stock_name,Stock_number) value (xxx , xxxx) value (select Stockname , Stocknumber from Stock_table2)---value 为 select 语句
***update***
update table_name set Stockname = xxx [where Stockid = 3] Stockname = default Stockname = null Stocknumber = Stockname + 4
***delete***
delete from table_name where Stockid = 3 truncate table_name ----------- 删除表中所有行,仍保持表的完整性 drop table table_name --------------- 完全删除表
***alter table*** — 修改数据库表结构
alter table database.owner.table_name add column_name char(2) null ..... sp_help table_name ---- 显示表已有特征 create table table_name (name char(20), age smallint, lname varchar(30)) insert into table_name select ......... ----- 实现删除列的方法(创建新表) alter table table_name drop constraint Stockname_default ---- 删除 Stockname 的 default 约束
—- 统计函数 —-
AVG – 求平均值 COUNT – 统计数目 MAX – 求最大值 MIN – 求最小值 SUM – 求和
--AVG use pangu select avg(e_wage) as dept_avgWage from employee group by dept_id --MAX -- 求工资最高的员工姓名 use pangu select e_name from employee where e_wage = (select max(e_wage) from employee)
—- 日期函数 —-
DAY() -- 函数返回 date_expression_r 中的日期值 MONTH() -- 函数返回 date_expression_r 中的月份值 YEAR() -- 函数返回 date_expression_r 中的年份值 DATEADD( , ,) -- 函数返回指定日期 date 加上指定的额外日期间隔 number 产生的新日期 DATEDIFF( , ,) -- 函数返回两个指定日期在 datepart 方面的不同之处 DATENAME( , ) -- 函数以字符串的形式返回日期的指定部分 DATEPART( , ) -- 函数以整数值的形式返回日期的指定部分 GETDATE() -- 函数以 DATETIME 的缺省格式返回系统当前的日期和时间
—- 系统函数 —-
APP_NAME() -- 函数返回当前执行的应用程序的名称 COALESCE() -- 函数返回众多表达式中第一个非 NULL 表达式的值 COL_LENGTH(table_name , column_name) -- 函数返回表中指定字段的长度值 COL_NAME(, ) -- 函数返回表中指定字段的名称即列名 DATALENGTH() -- 函数返回数据表达式的数据的实际长度 DB_ID([ database_name]) -- 函数返回数据库的编号 DB_NAME(database_id) -- 函数返回数据库的名称 HOST_ID() -- 函数返回服务器端计算机的名称 HOST_NAME() -- 函数返回服务器端计算机的名称 IDENTITY([, seed increment]) [AS column_name]) --IDENTITY() 函数只在 SELECT INTO 语句中使用用于插入一个 identity column 列到新表中 ISDATE() -- 函数判断所给定的表达式是否为合理日期 ISNULL(, ) -- 函数将表达式中的 NULL 值用指定值替换 ISNUMERIC() -- 函数判断所给定的表达式是否为合理的数值 NEWID() -- 函数返回一个 UNIQUEIDENTIFIER 类型的数值 NULLIF(, ) --NULLIF 函数在 expression_r1 与 expression_r2 相等时返回 NULL 值若不相等时则返回 expression_r1
看完上述内容,你们掌握 SQLServer 数据库语法有哪些呢的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!