Statements SQL Server Transact-SQL

Author: This article is a blogger LI Qin original article, shall not be reproduced without the bloggers allowed.
This link: https://blog.csdn.net/weixin_42320142/article/details/102627910

Data Definition Language (DDL)

CREATE applications

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

DROP function

DROP TABLE table_name #删除表

DROP DATABASE database_name #删除数据库

ALTER function

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 字段

Data Manipulation Language (DML)

Insert data - INSERT

INSERT INTO table_name ( column_list )
VALUES ( value_list );

Change data - UPDATE

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

Deleted data - DELETE

DELETE FROM table_name
[WHERE  condition]

Data Query - SELECT

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

Data control statements (DCL)

Granted permission to operate - GRANT

GRANT UPDATE,DELETE ON stu_info
TO guest WITH GRANT OPTION

Refused permission to operate - DENY

DENY UPDATE ON stu_info TO guest CASCADE;

Withdraw permission to operate - REVOKE

REVOKE DELETE ON stu_info FROM guest;

Other basic statements

Data Statement - DECLARE

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

Data assignment - SET

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

SELECT can also be assigned, but saves only the last value return multiple values.

Data output - PRINT

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

Flow control statements

BEGIN ... END statement

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 statement

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

CASE statement

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

WHILE statement

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 statement

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

RETURN statement

 RETURN [ integer_expression ]

Guess you like

Origin blog.csdn.net/weixin_42320142/article/details/102627910