数据库操作
//创建数据库
CREATE DATABASE sqldemo;
//删除数据库
DROP DATABASE sqldemo;
//使用数据库
USE sqldemo;
表基础操作
//创建表
CREATE TABLE Product(
product_id INT NOT NULL IDENTITY(1,1),
product_name VARCHAR(20) NOT NULL,
product_price INTEGER,
PRIMARY KEY(product_id)
);
//删除表
DROP TABLE Product;
CRUD操作
//查询
SELECT * FROM 表名 WHERE 条件;
//删除
DELETE * FROM 表名 WHERE 条件;
//修改
UPDATE 表名 SET 列名=新值 WHERE 条件;
//新增
INSERT INTO 表名(列名,列名...) VALUES('值',值....);
列操作
/*添加列*/
ALTER TABLE 表名 ADD 新增列名 列类型;
/*刪除列*/
ALTER TABLE 表名 DROP COLUMN 列名;
/*修改列*/
ALTER TABLE 表名 ALTER COLUMN 列名 列类型;
约束
NOT NULL //约束强制列不接受 NULL 值
UNIQUE //约束唯一标识数据库表中的每条记录
PRIMARY KEY //主键必须包含唯一的值,主键列不能包含 NULL 值,
每个表都应该有一个主键,并且每个表只能有一个主键。
FOREIGN KEY //外键约束,一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
CHECK //限制列中的值的范围
DEFAULT //向列中插入默认值
IDENTITY(1,1) //自增 括号的第一位数代表从1开始,第二位数代表每次加1
函数
/*AVG 求平均数*/
SELECT AVG(列名) FROM 表名;
/*COUNT 返回指定列的值的数量*/
SELECT COUNT(列名) FROM 表名;
/*MAX 返回指定列中的最大值*/
SELECT MAX(列名) FROM 表名;
/*MIN 返回指定列中的最小值*/
SELECT MIN(列名) FROM 表名;
/*SUM 求和*/
SELECT SUM(列名) FROM 表名;
/*GROUP BY 根据一个或多个列对结果集进行分组*/
SELECT 列名,SUM(列名) FROM 表名 GROUP BY 列名;
/*HAVING与where类似,但是因为where无法和合计函数一起使用*/
SELECT 列名,SUM(列名) FROM 表名
GROUP BY 列名
HAVING SUM(列名)>50;
高级查询
/*AND 并且*/
SELECT * FROM 表名 WHERE 条件1 AND 条件2;
/*OR 或*/
SELECT * FROM 表名 WHERE 条件1 OR 条件2;
/*按顺序排列*/
SELECT * FROM 表名 ORDER BY 列名;
/*逆序排列*/
SELECT * FROM 表名 ORDER BY 列名 DESC;
/* DISTINCT 查询某一列的唯一不同值*/
SELECT DISTINCT 列名 FROM 表名;
/*TOP 获取头2条记录*/
SELECT TOP 2 * FROM 表名;
/*PERCENT 获取50%的记录,%的数字是可控制的*/
SELECT TOP 50 PERCENT * FROM 表名;
/*LIKE操作符用于在 WHERE 子句中搜索列中的指定模式*/
SELECT * FROM 表名 WHERE 列名 LIKE 'b1';
/*NOT 反向查询*/
SELECT * FROM 表名 WHERE 列名 NOT LIKE 'b1';
/* % 替代一个或多个字符 */
SELECT * FROM 表名 WHERE 列名 LIKE '%1';
/* _ 仅替代一个字符*/
SELECT * FROM 表名 WHERE 列名 LIKE '_1';
/* [charlist] 字符列中的任何单一字符 */
SELECT * FROM 表名 WHERE 列名 LIKE '[b]%';
/*IN IN 操作符允许我们在 WHERE 子句中规定多个值*/
SELECT * FROM 表名 WHERE 列名 IN('b1','c1');
/*BETWEEN BETWEEN操作符在WHERE子句中使用,作用是选取介于两个值之间的数据范围*/
SELECT * FROM 表名 WHERE 列名 BETWEEN 'b1' AND 'e1';
/*NOT BETWEEN 选取介于两个值之外的数据范围 */
SELECT * FROM 表名 WHERE 列名 NOT BETWEEN 'b1' AND 'e1';
/*as 别名 可以为表名设置一个别名,也可以为列名设置*/
SELECT 别名.列名 FROM 表名 as 别名;