asp中操作表
廣告:
可以使用ASP在程式當中直接建立修改刪除表
與表有關的SQL語法如下:
使用conn.execute(sql)
建立一個表:CREATE TABLE表達式。
修改一個表:ALTER TABLE表達式。
刪除一個表:DROP TABLE表達式。
建立一個索引:使用CREATE INDEX 或 ALTER TABLE表達式。
刪除一個索引:DROP INDEX表達式。
詳細介紹如下:
CREATE TABLE表達式
CREATE TABLE表達式,建立一個新的表。
語法如下:
CREATE TABLE 新表(新字段名稱1 字段類型 [(長度)] [NOT NULL] [索引1] [,新字段名稱2 字段類型 [(長度)] [NOT NULL] [索引2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])
長度為字符類型及字符長度。
索引1, 索引2 CONSTRAINT子句定義單一字段索引。
multifieldindex定義一多重字段索引。
使用CREATE TABLE表達式,如果將一字段指定為NOT NULL,則在此字段中新增的記錄資料內容必須是有效的資料。
CONSTRAINT子句可在一字段上建立不同的限制,并且也可以用來建立主索引。
您可以使用CREATE INDEX表達式,在現有的表上建立一個主索引或多個索引。
讓我們看一個在ASP程式碼當中使用這個SQL指令的例子。
譬如ASP程式碼rs61.asp如下,[CREATE TABLE 學員 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員的表,包括10個位元長度TEXT類型的姓名字段,和整數類型的年齡字段:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "CREATE TABLE 學員 (姓名 TEXT(10), 年齡 INT)"
Set a = conn1.Execute(sql)
Response.Write "CREATE TABLE OK<p>"
conn1.Close
%>
執行后,使用Access打開NtopSamp.mdb文件時,可看到新建立一個學員的表。
ALTER TABLE表達式
ALTER TABLE表達式,修改已建立好的表。
語法如下:
ALTER TABLE 表 {ADD {COLUMN 字段名稱 字段類型[(長度)] [NOT NULL] [CONSTRAINT 索引] |
CONSTRAINT multifieldindex} |
DROP {COLUMN 字段名稱 I CONSTRAINT 多重字段索引名稱} }
使用ALTER TABLE表達式,您可以利用多種不同方法,變更目前已存在的表:
使用ADD COLUMN新增字段到表。
使用DROP COLUMN刪除一字段。只需指定欲刪除之字段名稱即可。
使用ADD CONSTRAINT新增多重字段索引。
使用DROP CONSTRAINT刪除多重字段索引。只需指定緊接在CONSTRAINT之后的索引名稱即可。
使用ADD COLUMN新增字段到表時,必須指定字段名稱、所屬類型、以及類型和長度。
例如,下例增加一個2個字符長度,名為性別的字符類型字段到學員表中:
ALTER TABLE 學員 ADD COLUMN 性別 TEXT(2)
您也可以對此字段定義索引。
如果您對一字段指定 NOT NULL,則在此字段中所新增的記錄資料必須是有效的資料。
您不能同時新增或刪除多個字段或索引。
譬如ASP程式碼rs63.asp如下,[CREATE TABLE 學員1 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員1的表,然后使用 [ALTER TABLE 學員1 ADD COLUMN 性別 TEXT(2)] 增加一個2個字符長度,名為性別的字符類型字段到學員1表中:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "CREATE TABLE 學員1 (姓名 TEXT(10), 年齡 INT)"
Set a = conn1.Execute(sql)
Response.Write "CREATE TABLE OK<p>"
sql = "ALTER TABLE 學員1 ADD COLUMN 性別 TEXT(2)"
Set a = conn1.Execute(sql)
Response.Write "ALTER TABLE OK<p>"
conn1.Close
%>
執行后,使用Access打開NtopSamp.mdb文件時,可看到表學員1新建立一個姓別的字段。
DROP表達式
DROP表達式從一個數據庫中刪除一個已存在的表,或從一個表中刪除一個已存在的索引。
語法如下:
DROP {TABLE 表 | INDEX 索引 ON 表}
表必須先關閉,才能刪除此表或由此表中的索引。
若要刪除索引,除了使用DROP INDEX 索引 ON 表,也可以使用ALTER TABLE。
譬如ASP程式碼rs62.asp如下,首先使用 [CREATE TABLE 學員2 (姓名 TEXT(10), 年齡 INT)] 先建立一個學員2的表,包括10個字符長度TEXT類型的姓名字段,和整數類型的年齡字段,然后使用 [DROP TABLE 學員2] 刪除學員2的表:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "CREATE TABLE 學員2 (姓名 TEXT(10), 年齡 INT)"
Set a = conn1.Execute(sql)
Response.Write "CREATE TABLE OK<p>"
sql = "DROP TABLE 學員2"
Set a = conn1.Execute(sql)
Response.Write "DROP TABLE OK<p>"
conn1.Close
%>
記錄1 增加字段
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../conn/dbconn1.asp"-->
<%
dim sql
dim a
dim hao
dim b
sql="alter table hfbook ADD COLUMN fenlei_id int NULL"
hao="alter table hfbook ADD COLUMN fenlei_flag int NULL"
set a=conn.execute(sql)
set b=conn.execute(hao)
response.write"welcome:"
conn.close
%>
ALTER TABLE [表名] ADD CONSTRAINT 默認值名 DEFAULT '51WINDOWS.NET' FOR [字段名]
alter table sbasic add constraint df_grade default(0) for grade
最近用SQL更新了一個遠程數據庫,把用到的SQL整理了一下,又補充了些.都是很基礎的東西.
維護SQL Server數據庫的一些常用SQL
1.如何創建數據庫
CREATE DATABASE student
2.如何刪除數據庫
DROP DATABASE student
3.如何備份數據庫到磁盤文件
BACKUP DATABASE student to disk='c:\1234.bak'
4.如何從磁盤文件還原數據庫
RESTORE DATABASE studnet FROM DISK = 'c:\1234.bak'
5.怎樣創建表?
CREATE TABLE Students (
ID int IDENTITY ( 1, 1), --自增字段,基數1,步長1
StudentID char (4) NOT NULL ,
Name char (10) NOT NULL ,
Age int NULL ,
Birthday datetime NULL,
CONSTRAINT PK_Students PRIMARY KEY (StudentID) --設置主鍵
)
CREATE TABLE Subjects (
ID int IDENTITY ( 1, 1), --自增字段,基數1,步長1
ClassID char (4) NOT NULL ,
ClassName char (10) NOT NULL,
CONSTRAINT PK_Subjects PRIMARY KEY (ClassID) --設置主鍵
)
CREATE TABLE Scores (
ID int IDENTITY ( 1, 1), --自增字段,基數1,步長1
StudentID char (4) NOT NULL ,
ClassID char (4) NOT NULL ,
Score float NOT NULL,
CONSTRAINT FK_Scores_Students FOREIGN KEY (StudentID) REFERENCES Students(StudentID), --設置外鍵
CONSTRAINT FK_Scores_Subjects FOREIGN KEY (ClassID) REFERENCES Subjects(ClassID), --設置外鍵
CONSTRAINT PK_Scores PRIMARY KEY (StudentID,ClassID) --設置主鍵
)
6.怎樣刪除表?
DROP TABLE Students
7.怎樣創建視圖?
CREATE VIEW s_s_s
AS
SELECT Students.Name, Subjects.ClassName, Scores.Score
FROM Scores INNER JOIN
Students ON Scores.StudentID = Students.StudentID INNER JOIN
Subjects ON Scores.ClassID = Subjects.ClassID
8.怎樣刪除視圖?
DROP VIEW s_s_s
9.如何創建存儲過程?
CREATE PROCEDURE GetStudent
@age INT,
@birthday DATETIME
AS
SELECT *
FROM students
WHERE Age = @age AND Birthday = @birthday
GO
10.如何刪除存儲過程?
DROP PROCEDURE GetStudent
11.如何創建觸發器?
CREATE TRIGGER reminder
ON Students
FOR INSERT, UPDATE, DELETE
AS
EXEC master..xp_sendmail 'MaryM',
'Don''t forget to print a report for the distributors.'
GO
12.如何刪除觸發器?
DROP TRIGGER reminder
13.如何創建索引?
CREATE UNIQUE INDEX IX_Students ON Students (Name)
14.如何刪除索引?
DROP INDEX Students.IX_Students
15.怎樣給表添加字段?
ALTER TABLE Students ADD Address varchar (50) NULL
16.怎樣刪除表中某個字段?
ALTER TABLE Students DROP COLUMN Address
17.如何設置列的標識屬性?
沒找到辦法
18.如何去掉列的標識屬性?
沒有找到好的方法,只能是先添加一列,然后把標識列的值更新到新加入的列,刪除標識列,再用與標識列相同的名字類型添加一列,用前面加入的列更新該列.如果該標識列是其他表的外鍵,還要先刪除外鍵約束,很麻煩.誰有好的辦法,還請告訴我.
19.如何重設標識列的標識種子?
DBCC CHECKIDENT (Student, RESEED, 1)
20.怎樣給表加上主鍵?
ALTER TABLE Scores ADD CONSTRAINT PK_Scores PRIMARY KEY (StudentID,ClassID)
21.怎樣刪除表的主鍵?
ALTER TABLE Scores DROP CONSTRAINT PK_Scores
22.怎樣給表添加一個外鍵?
ALTER TABLE Scores ADD CONSTRAINT FK_Scores_Students FOREIGN KEY (StudentID) REFERENCES Students (StudentID) ON DELETE CASCADE
23.怎樣刪除表的一個外鍵?
ALTER TABLE Scores DROP CONSTRAINT FK_Scores_Students
24.怎樣給字段加上CHECK約束?
ALTER TABLE Students ADD CONSTRAINT CK_Students CHECK (Age > 0)
25.怎樣去掉字段上的CHECK約束?
ALTER TABLE Students DROP CONSTRAINT CK_Students
26.怎樣給字段設置默認值?
ALTER TABLE Students ADD CONSTRAINT DF_Students_Age DEFAULT (18) FOR Age
27.怎樣移去字段的默認值?
ALTER TABLE Students DROP CONSTRAINT DF_Students_Age
28.修改字段的類型及非空約束
ALTER TABLE Students ALTER COLUMN Age char (10) null
ALTER TABLE Students ALTER COLUMN Age int not null
ACCESS中建表,增加,刪除和修改字段屬性語句
ACCESS中增加和修改字段屬性語句
建立表語句
sql="CREATE table tablename (id int IDENTITY (1, 1) NOT NULL,"&_
"columnname varchar(50) null,"&_
"columnname int default 0,"&_
.................................
"columnname text,"&_
"columnname datetime default Now())"
conn.execute(sql)
增加表中字段:
conn.execute("alter table tablename add id int IDENTITY (1, 1) NOT NULL ") ''ID自動編者編號
conn.execute("alter table tablename add 字段名 bit") ''是與否
conn.execute("alter table tablename add 字段名 varchar(250)") ''文本長度250
conn.execute("alter table tablename add 字段名 int default 0") ''長整默認0
conn.execute("alter table tablename add 字段名text") ''備注
conn.execute("alter table tablename add 字段名 datetime default Now()") ''時間默認now()
conn.execute("alter table tablename add 字段名 image") ''ole對象
conn.execute("alter table tablename add 字段名 money") ''貨幣
修改表中字段
conn.execute("alter table tablename alter column id int IDENTITY (1, 1) NOT NULL") ''修改為ID自動編者編號
conn.execute("alter table tablename alter column columnname bit") ''修改為是與否
conn.execute("alter table tablename alter column columnname varchar(250)") ''修改為文本長度250
conn.execute("alter table tablename alter column columnname int default 0") ''修改為長整默認0
conn.execute("alter table tablename alter column columnname text") ''修改為備注
conn.execute("alter table tablename alter column columnname datetime default Now()") ''修改為時間默認now()
conn.execute("alter table tablename alter column columnname image") ''修改為ole對象
conn.execute("alter table tablename alter column columnname money") ''修改為貨幣
刪除表中的字段
conn.execute("alter table tablename drop columnname")
下面是Sql Server 和 Access 操作數據庫結構的常用Sql,希望對你有所幫助。
內容由海娃整理,不正確與不完整之處還請提出,謝謝。
新建表:
create table [表名]
(
[自動編號字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默認值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
刪除表:
Drop table [表名]
插入數據:
INSERT INTO [表名] (字段1,字段2) VALUES (100,'51WINDOWS.NET')
刪除數據:
DELETE FROM [表名] WHERE [字段名]>100
更新數據:
UPDATE [表名] SET [字段1] = 200,[字段2] = '51WINDOWS.NET' WHERE [字段三] = 'HAIWA'
新增字段:
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL
刪除字段:
ALTER TABLE [表名] DROP COLUMN [字段名]
修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL
重命名表:(Access 重命名表,請參考文章:在Access數據庫中重命名表)
sp_rename '表名', '新表名', 'OBJECT'
新建約束:
ALTER TABLE [表名] ADD CONSTRAINT 約束名 CHECK ([約束字段] <= '2000-1-1')
刪除約束:
ALTER TABLE [表名] DROP CONSTRAINT 約束名
新建默認值
ALTER TABLE [表名] ADD CONSTRAINT 默認值名 DEFAULT '51WINDOWS.NET' FOR [字段名]
刪除默認值
ALTER TABLE [表名] DROP CONSTRAINT 默認值名
刪除Sql Server 中的日志,減小數據庫文件大小
dump transaction 數據庫名 with no_log
backup log 數據庫名 with no_log
dbcc shrinkdatabase(數據庫名)
exec sp_dboption '數據庫名', 'autoshrink', 'true'
修改字段名:EXEC sp_rename 'dv_user.usermoney', 'haohaohao', 'column'
廣告: