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 = '[email protected]' WHERE ID = 8;