SQL Server数据库学习之 -- 常用语句一

USE [B2C2]  -- 使用B2C2数据库
GO
SET ANSI_NULLS ON  -- 用于设置编码格式
GO
-- 设置为ON,确保计算机列或索引视图上带索引的表上的create/update/insert/delete可用
SET QUOTED_IDENTIFIER ON
GO  -- 在这里,需要加Go关键字与下一个CREATE VIEW/ CREATECREATE DEFAULT/CREATE FUNCTION/
    -- CREATE PROCEDURE/CREATE RULE/CREATE SCHEMA/CREATE TRIGGER进行区分。
-- 其他地方语句最后添加GO也是同样的道理.(个人推测)


--CREATE TABLE tb_person01
--(
-- ID int identity(1, 1) PRIMARY KEY NOT NULL, -- identity(seed, increment):设置字段可自增函数,
-- -- seed: 起始量; increment: 增量 
--                                            -- PRIMARY KEY: 设置主键约束,
-- -- NOT NULL: 设置"不为空"约束
-- NAME varchar(64),
-- AGE int,
-- sex char(4) 
--)
--GO




-- 修改表名
-- 格式:sp_rename tablename,newtablename


-- 修改字段名
-- sp_rename 'tablename.colname',newcolname,'column'
-- SP_RENAME 'tb_person01.sex', 'SEX', 'COLUMN'  -- 经个人检验,该行代码无误。




-- 插入数据
INSERT INTO tb_person01(NAME, AGE, SEX) VALUES('张三', 18, '男');
INSERT INTO tb_person01(NAME, AGE, SEX) VALUES('春花', 16, '女');
INSERT INTO tb_person01(NAME, AGE, SEX) VALUES('李四', 20, '男');
INSERT INTO tb_person01(NAME, AGE, SEX) VALUES('朵蜜', 19, '女');
INSERT INTO tb_person01(NAME, AGE, SEX) VALUES('朵拉', 22, '女');
INSERT INTO tb_person01(NAME, AGE, SEX) VALUES('大牛', 25, '男');
INSERT INTO tb_person01(NAME, AGE, SEX) VALUES('八戒', 26, '男');




-- 简单查询
SELECT NAME, AGE, SEX FROM tb_person01;


-- 精确条件查询 =====》 按照年龄大小排序
-- ASC: 升序,DESC:降序
SELECT NAME, AGE, SEX FROM tb_person01 ORDER BY AGE ASC;   -- 按照年龄升序排序
SELECT NAME, AGE, SEX FROM tb_person01 ORDER BY AGE DESC;  -- 按照年龄降序排序


-- 分组查询 ===> 查询结果:显示2条数据。
--   SEX
-- 1  男
-- 2  女
SELECT SEX FROM tb_person01 GROUP BY SEX;


-- 分组查询男、女性别成员的平均年龄、最大年龄、最小年龄
SELECT AVG(AGE) AS '年龄平均值' , MIN(AGE) AS '年龄最小值' , MAX(AGE) AS '年龄最大值', SEX 
FROM tb_person01 GROUP BY SEX;


-- 查询性别为'男'的所有成员
SELECT NAME, AGE, SEX FROM tb_person01 WHERE SEX = '男';
-- 查询性别为'女的'所有成员
SELECT NAME, AGE, SEX FROM tb_person01 WHERE SEX = '女';




-- update修改表字段内容信息
UPDATE tb_person01 SET AGE = 526 WHERE NAME = '八戒';  -- update操作依据无误
SELECT NAME, AGE, SEX FROM tb_person01;


-- 修改表名
-- 之前所用的表的表名为:tb_person01
-- 
sp_rename tb_person01, tb_person02;  -- 该行语句无误
SELECT NAME, AGE, SEX FROM tb_person01;  -- 显示对项名'tb_person01'无效
SELECT NAME, AGE, SEX FROM tb_person02;




-- 复制创建表:2种情况
-- (1)、如果目标表不存在,tb_person03表不存在. 
SELECT * INTO tb_person03 FROM tb_person02;
SELECT NAME, AGE, SEX FROM tb_person03;


-- (2)、如果目标表存在
CREATE TABLE tb_person04
(
ID int identity(1,1) PRIMARY KEY NOT NULL,
NAME varchar(64),
AGE INT,
SEX char(4)
-- Email varchar(512)  -- 该字段为遗漏字段,如何在已经创建的tb_person04表中添加呢?
)
GO


-- 当主键设置成自动增长时,identity_insert默认是off,处于关闭状态.
-- 若要往表中插入主键时,需要将identity-insert 设置成on,使其成打开状态.
SET IDENTITY_INSERT tb_person04 ON;    -- 打开表tb_person04的identity_insert
SET IDENTITY_INSERT tb_person04 OFF;   -- 关闭表tb_person04的identity_insert
INSERT INTO tb_person04(ID, NAME, AGE, SEX) VALUES(8, '悟空', 1527, '男');
SELECT ID, NAME, AGE, SEX FROM tb_person04;


-- 往已经存在的表中插入数据
INSERT INTO tb_person04 SELECT NAME, AGE, SEX FROM tb_person02;  -- 若在进行整表数据插入时,没有插入‘旧表’的ID,
-- 则目标表的ID会自动选择目标表中ID最大值,自动往后增加,
DELETE FROM tb_person04 where ID >= 9 AND ID <= 15; -- 通过判断条件,批量删除表中的数据 
SET IDENTITY_INSERT tb_person02 ON;
INSERT INTO tb_person04(ID, NAME, AGE, SEX) VALUES(1, '沙僧', 528, '男');
INSERT INTO tb_person04(ID, NAME, AGE, SEX) VALUES(2, '白骨精', 1024, '女');
INSERT INTO tb_person04 SELECT NAME, AGE, SEX FROM tb_person02; 




-- 向已经存在的表中添加‘列’
ALTER TABLE tb_person04 ADD Email varchar(256);
SELECT * FROM tb_person04;
UPDATE tb_person04 SET Email = 'WuKong@qq.com' WHERE ID = 8;





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值