IT评测·应用市场-qidao123.com

标题: 【SQL实验】数据库、表、模式的SQL语句使用 [打印本页]

作者: 何小豆儿在此    时间: 2024-11-11 04:42
标题: 【SQL实验】数据库、表、模式的SQL语句使用
完整代码在文章末端

1、数据库的建立、删除和修改使用

(1)使用SQL语句创建数据库EDUC,并进行如下设置:

数据库文件和日记文件的逻辑名称分别为:Student_data和Student_log;数据文件的物理文件名为‘C:\DATABASE\Student_data.MDF';数据文件的初始巨细为5MB,文件增长量为1MB;日记文件的增长方式初始巨细为2MB,文件增长量为10%;日记文件的物理文件名为‘C:\DATABASE\Student_log.LDF'。


将要执行的语句高亮可以单独执行
假如像这样没有出现的话,
右击刷新

通过数据库属性查看使用结果

(2)使用SQL语句在数据库EDUC添加一个数据文件,逻辑名称:Student_data1,物理文件名为‘C:\DATABASE\Student_data1.NDF'文件夹中,数据文件的初始巨细为2MB,文件增长量为10%

 

通过数据库属性查看使用结果


(3)使用SQL语句修改数据文件"Student_data1",初始巨细为5MB,文件增长量为2MB,最大值为1GB
通过数据库属性查看使用结果

(4)使用SQL语句将新添加数据文件"Student_data1"删除。

通过数据库属性查看使用结果


2、数据表的建立、删除和修改使用


(1)使用SQL语句在EDUC数据库中创建三个基本表(表名为“student”、“course”和“sc”),如上图。

通过数据库属性查看使用结果


(2)使用SQL语句将student表中“sname”列的数据类型为CHAR(40)

通过数据库属性查看使用结果

(3)使用SQL语句在student表中添加新列,列名为“高考成绩”,数据类型为int

通过数据库属性查看使用结果

(4)使用SQL语句删除“高考成绩”列

通过数据库属性查看使用结果

(5)使用SQL语句设置student中的“sage”为not null

通过数据库属性查看使用结果

   ALTER COLUMN 指定要修改的列
  ADD CONSTRAINT 用于添加新束缚,束缚名称为 check_ccredit。
  CHECK (ccredit BETWEEN 1 AND 3)
  CHECK 是一种束缚,用于限制列中的值。
  (ccredit BETWEEN 1 AND 3) 表现 ccredit 列的值必须在 1 和 3 之间(包括 1 和 3),确保数据在有效范围内。
  
(6)使用SQL语句设置course中的“ccredit”的取值范围为1-3

通过数据库属性查看使用结果

  
  1. --  添加新列,指定数据类型和是否允许为空
  2. ALTER TABLE 表名
  3. ADD 列名 数据类型[(长度)] [NULL | NOT NULL];  -- NULL:允许空值,NOT NULL:不允许空值
  4. -- 添加自增列 (IDENTITY)
  5. ALTER TABLE 表名
  6. ADD 列名 数据类型[(长度)] IDENTITY(标识种子, 标识增量);  -- IDENTITY:自动递增
  7. -- 修改列的数据类型、长度或是否允许为空
  8. ALTER TABLE 表名
  9. ALTER COLUMN 列名 数据类型[(长度)] [NULL | NOT NULL];  -- ALTER COLUMN 修改现有列
  10. --  删除列
  11. ALTER TABLE 表名
  12. DROP COLUMN 列名 [, …n];  -- DROP COLUMN 删除一个或多个列
  13. --  添加约束
  14. ALTER TABLE 表名
  15. ADD CONSTRAINT 约束名 约束定义;  -- ADD CONSTRAINT 添加约束
  16. -- 添加外键约束,引用其他表的主键
  17. -- 例如:在 "sc" 表中为 "sno" 列添加外键,引用 "student" 表中的 "sno"
  18. ALTER TABLE sc
  19. ADD CONSTRAINT fk_sc_sno FOREIGN KEY (sno) REFERENCES student(sno);
  20. --  删除约束
  21. ALTER TABLE 表名
  22. DROP CONSTRAINT 约束名;  -- DROP CONSTRAINT 删除约束
  23. --  禁用约束
  24. ALTER TABLE 表名
  25. NOCHECK CONSTRAINT 约束名;  -- NOCHECK 暂时禁用约束
  26. -- 8启用约束
  27. ALTER TABLE 表名
  28. CHECK CONSTRAINT 约束名;  -- CHECK 重新启用已禁用的约束
复制代码

  3、模式的建立、删除和修改使用

(1)使用SQL语句:在EDUC数据库下,为guest用户创建ST模式,在该模式下面创建一张STUDENT表(列信息如上面的student表)


这个错误的意思需要将 CREATE SCHEMA 和其他使用分开处理,单独建一个文件,但这样运行不影响
大概

再运行:



   (2)使用SQL语句删除ST模式,若不能删除,为什么?怎样才能删除?




   
  
完整运行代码:
  1. --创建数据库EDUC并设置数据库文件和日志文件【这里路径自己设定了一下】
  2. CREATE DATABASE EDUC
  3. ON
  4. (
  5.     NAME = 'Student_data',
  6.     FILENAME = 'D:\code files\SQL DATA\Student_data.MDF',
  7.     SIZE = 5MB,
  8.     FILEGROWTH = 1MB
  9. )
  10. LOG ON
  11. (
  12.     NAME = 'Student_log',
  13.     FILENAME = 'D:\code files\SQL DATA\Student_log.LDF',
  14.     SIZE = 2MB,
  15.     FILEGROWTH = 10%
  16. );
  17. --在数据库EDUC中添加数据文件
  18. ALTER DATABASE EDUC
  19. ADD FILE
  20. (
  21.     NAME = 'Student_data1',
  22.     FILENAME = 'D:\code files\SQL DATA\Student_data1.NDF',
  23.     SIZE = 2MB,
  24.     FILEGROWTH = 10%
  25. );
  26. --修改数据文件
  27. ALTER DATABASE EDUC
  28. MODIFY FILE
  29. (
  30.     NAME = 'Student_data1',
  31.     SIZE = 5MB,
  32.     FILEGROWTH = 2MB,
  33.     MAXSIZE = 1GB
  34. );
  35. --删除数据文件
  36. ALTER DATABASE EDUC
  37. REMOVE FILE Student_data1;
  38. --数据表的建立、删除和修改操作
  39. -- 创建 student 表
  40. CREATE TABLE student (
  41.     sno CHAR(9) NOT NULL,  
  42.     sname CHAR(20) NOT NULL,
  43.     ssex CHAR(2),           
  44.     sage SMALLINT,           
  45.     sdept CHAR(20),         
  46.     PRIMARY KEY (sno)
  47. );
  48. -- 创建 course 表
  49. CREATE TABLE course (
  50.     cno CHAR(4) NOT NULL,   
  51.     cname CHAR(40) NOT NULL,
  52.     cpno CHAR(4),           
  53.     ccredit SMALLINT,        
  54.     PRIMARY KEY (cno)
  55. );
  56. -- 创建 sc 表
  57. CREATE TABLE sc (
  58.     sno CHAR(9) NOT NULL,   
  59.     cno CHAR(4) NOT NULL,   
  60.     grade SMALLINT,         
  61.     PRIMARY KEY (sno, cno),
  62.     FOREIGN KEY (sno) REFERENCES student(sno),
  63.     FOREIGN KEY (cno) REFERENCES course(cno)
  64. );
  65. --修改
  66. ALTER TABLE student
  67. ALTER COLUMN sname CHAR(40) NOT NULL;
  68. ALTER TABLE student
  69. ADD 高考成绩 INT;
  70. ALTER TABLE student
  71. DROP COLUMN 高考成绩;
  72. ALTER TABLE student
  73. ALTER COLUMN sage SMALLINT NOT NULL;
  74. ALTER TABLE course
  75. ADD CONSTRAINT check_ccredit
  76. CHECK (ccredit BETWEEN 1 AND 3);
  77. go
  78. -- 在 EDUC 数据库中为 guest 用户创建 ST 模式
  79. CREATE SCHEMA ST AUTHORIZATION guest;
  80. go
  81. -- 在 ST 模式下创建 STUDENT 表
  82. CREATE TABLE ST.STUDENT (
  83.     sno CHAR(9) NOT NULL,      
  84.     sname CHAR(20) NOT NULL,   
  85.     ssex CHAR(2),              
  86.     sage SMALLINT,              
  87.     sdept CHAR(20),            
  88.     PRIMARY KEY (sno)
  89. );
  90. -- 尝试删除 ST 模式
  91. DROP SCHEMA ST;
  92. --运行结果:无法对 'ST' 执行 drop schema,因为对象 'PK__STUDENT__DDDF64467444FCB1' 正引用它。
  93. -- 要删除 ST 模式中的 STUDENT 表
  94. DROP TABLE ST.STUDENT;
  95. -- 删除 ST 模式
  96. DROP SCHEMA ST;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4