SQL Server Transact-SQL语句

作者:李钦 本文为博主原创文章,未经博主允许不得转载。
本文链接: https://blog.csdn.net/weixin_42320142/article/details/102627910

数据定义语句(DDL)

CREATE 的应用

CREATE TABLE tb_emp
(
id  INT PRIMARY KEY,
name  VARCHAR(25)  NOT NULL,
deptId  CHAR(2)  NOT  NULL,
salary   SMAKKMONEY NULL
); #创建表

DROP 的功能

DROP TABLE table_name #删除表

DROP DATABASE database_name #删除数据库

ALTER 的功能

ALTER DATABASE  test_db
MODIFY  NAME=company  #修改数据库名称
ALTER TABLE tb_emp
ADD birth DATE NOT NALL #改 birth 为非空
ALTER TABLE tb_emp
DROP COLUMN birth #删除 birth 字段

数据操作语句(DML)

数据的插入—— INSERT

INSERT INTO table_name ( column_list )
VALUES ( value_list );

数据的更改—— UPDATE

UPDATE table_name
SET column_name1=value1,column_name2=value2,……column_nameN=valueN
WHERE search_condition

数据的删除—— DELETE

DELETE FROM table_name
[WHERE  condition]

数据的查询—— SELECT

SELECT * FROM table_name 
#可选条件:WHERE 、GROUP BY、ORDER BY

数据控制语句(DCL)

授予权限操作 —— GRANT

GRANT UPDATE,DELETE ON stu_info
TO guest WITH GRANT OPTION

拒绝权限操作 —— DENY

DENY UPDATE ON stu_info TO guest CASCADE;

收回权限操作 —— REVOKE

REVOKE DELETE ON stu_info FROM guest;

其他基本语句

数据声明 —— DECLARE

DECLARE @name VARCHAR(20) #可以声明赋值,也可以后赋值

数据赋值 —— SET

DECLARE @name VARCHAR(20)
SET @name = '小花'

SELECT 也可以赋值,但是返回多个值时只保存最后一个值。

数据输出 —— PRINT

DECLARE @name VARCHAR(20) = '小花'
DECLARE @age INT = 18
PRINT '姓名  年龄'
PRINT @name+'  '+CONVERT(varchar(20),@age)

流程控制语句

BEGIN … END 语句

DECLARE @count INT;
SELECT count=0;
WHILE @count <10
BEGIN
	PRINT 'count = ' +CONVERT(varchar(8),@count);
	SELECT @count = @count +1;
END
PRINT 'loop over count = ' +CONVERT(varchar(8),@count);

IF … ELSE 语句

DECLARE @age INT;
SELECT @age=40
IF @age < 30
	PRINT 'This is a young man !'
ELSE
	PRINT 'This is a old man !'

CASE 语句

SELECT s_id,s_name,
CASE s_name
	WHEN '小红' THEN '36E'
	WHEN '小花' THEN '36G'
    WHEN '小君' THEN '35D'
    ELSE '无'
END
AS '型号'
FROM stu_info

WHILE 语句

DECLARE @count INT;
SELECT count=0;
WHILE @count <10
BEGIN
	PRINT 'count = ' +CONVERT(varchar(8),@count);
	SELECT @count = @count +1;
END
PRINT 'loop over count = ' +CONVERT(varchar(8),@count);

GOTO 语句

BEGIN
SELECT s_name FROM stu_info;
GOTO jump
SELECT s_score FROM stu_info;
jump:
PRINT '第二条 SELECT 语句没有执行'
END

WAITFOR 语句

DECLARE @name VARCHAR(50);
SET @name='admin';
BEGIN
WAITFOR DELAY '00:00:10';
PRINT @name;
END;

RETURN 语句

 RETURN [ integer_expression ]

猜你喜欢

转载自blog.csdn.net/weixin_42320142/article/details/102627910