SQL server各项操作

    科技2025-01-14  17

    数据库系统

    一:数据库与表

    1:创建数据库

    1):新建查询中的命令行:

    CREATE DATABASE student //student数据库 on ( name = 'stu', filename = 'stu_data.mdf', size = 5, maxsize = 500, filegrouth = 10% ) LOG ON( name = 'stu_log', filename = 'stu_log.ldf', size = 3, filegrouth = 1 )

    2):图形化界面操作:

    数据库 -->新建数据库

    2:创建表

    注意: 1:小括号为程序段
    2:每句末尾加 逗号,最后一句不加
    3:声明表时一定要加 主键,否则后面会出错
    CREATE TABLE student ( Sno INT PRIMARY KEY, Sname CHAR(10), Ssex CHAR(2), Sage int, Sdept CHAR(10), ) CREATE TABLE SC //涉及外码 (Sno CHAR(9), Cno CHAR(4), Grade SMALLINTPRIMARY KEY (Sno,Cno)/* 主码由两个属性构成,必须作为表级完整性进行定义*/ FOREIGN KEY (Sno) REFERENCES Student(Sno)/* 表级完整性约束条件,Sno是外码,被参照表是Student */ FOREIGN KEY (Cno) REFERENCES Course(Cno) /* 表级完整性约束条件, Cno是外码,被参照表是Course*/ );

    3:修改基本表

    ALTER TABLE <表名> [ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ ALTER COLUMN<列名> <数据类型> ];

    注:表的删除操作中:
    cascade表示所有引用到该列的视图或有关约束一并删除;
    restrict表示在没有视图或有关约束引用时,该列才能被删除,否则拒绝操作
    1 增加):给学生表新增一个属性“民族”,数据类型为CHAR(10)ALTER TABLE student ADD nationality char(10)2 删除):删除教师表T中的出生年月。 ALTER TABLE teacher DROP birthday RESTRICT 接下来,修改列的定义:列的类型、长度等 :alter column3:将专业表SS中的专业名称列长度由30改为40ALTER TABLE SS ALTER COLUMN name VARCHAR(40)4:向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE student ADD timeof_school DATE5:将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数 ALTER TABLE student ALTER COLUMN age int6:增加课程名称必须取唯一值的约束条件 ALTER TABLE course ADD name UNIQUE

    4:删除基本表

    删除学生表: DROP TABLE student CASCADE;

    建立视图:

    CREATE VIEW student_1 AS SELECT Sno,Sname,Sage FROM student WHERE Sdept = 'CS'

    5:建立索引

    1:聚簇索引: CREATE CLUSTER INDEX name_suoyin ON student(name) 2:唯一索引: 例: 为学生-课程数据库中的Student,Course,SC三个表建立索引 CREATE UNIQUE INDEX S1 ON student(Sno) CREATE UNIQUE INDEX c1 ON course(Cno) CREATE UNIQUE INDEX SC1 ON SC(Sno asc, Cno desc) asc: 升序排列 desc:降序排列
    删除索引
    删除student的索引: DROP INDEX S1;

    二:数据更新

    1:插入数据:

    1:将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中. INSERT INTO student(sno, sname, sex, sdept, age) VALUES('200215128','chendong', 'male', 'IS', 18)
    Processed: 0.010, SQL: 8