T_SQL数据库命令

 

T_SQL数据库命令
1.创建数据库:
CREATE DATABASE   new_db2(数据库名字)
ON PRIMARY
(
NAME='new.mdf',(逻辑名称)
FILENAME='e:\new.mdf',(数据库存储路径)
SIZE=5mb,(数据库容量)
MAXSIZE=50mb,(最大存储容量)
FILEGROWTH=10%(设置增长大小)
)
2.更改数据库的容量:
ALTER DATABASE new_db
MODIFY FILE
(
NAME='new_db',
SIZE=17mb
)
3.收缩数据库操作:
DBCC   SHRINKDATABASE('new_db',1)(数据库名称,数据库收缩比率)
 
4.更改数据库名字:
EXEC   SP_RENAMEDB   'new_db2' ,   'testname'
数据库存储方式   原数据库名称    现在数据库名称
5.删除数据库:
DROP   DATABASE   testname

删除数据库
数据库
数据库名字
6.创建表:
create table test_name
(
学号 int primary    key identity,
名称 char(6)    not null,
专业方向 varchar(10)   not null,
系部代码 char(2)    not null,
备注 varchar(50)
)

Int
Primary key
Identity
整形
主键
激增数据库
7.查看表:
EXEC   sp_help    test_name
8.修改表名:
exec   sp_rename 'test_name','test_table'
 

Exec sp_rename
Test_name
Test_table
系统存储
旧表名称
新表名称
9.从命名列:
exec   sp_rename 'test_table.备注','其他','column'

Exec sp_rename
Test_table.备注
其它
Column
系统存储
修改列
添加新列
 
10.添加新列:
  • alter table [table_name] add [new_column] varchar(33)
§ alter   table test_table
§ add 新列 char(10)

Alter
Table test_table
 
表名
Add    新列
Char(10)
添加列名称
字符类型
11. 更改列的数据类型:
  • alter table [table_name] (表名)
  • alter column [column_name] [data_type]

[column_name]
[data_type]
写入列名称
新的类型
alter table test_table
alter column 新列 int
12. 删除列:
  •  alter table [table_name] (表名称)
  • drop column [column_name] (列名称)
运行成功的T_SQL语句
§ alter   table test_table
§ drop column 新列
13. 删除表:
drop table table_name (表名)
14. 删除表的所有数据:
  • Truncate table [table_name]
15. 创建主键约束
  •  alter table [table_name](表名称)
     add constraint pk
     primary key clustered (列名)(要做主键的id)
16. 创建外建约束
  •  alter table [table_name](第二个别名表)
     add constraint wz (外键名称)
     foreign key (列名)
     references 表名(列名)(列名表示做主键还是外键的名称)
成功的列子:
--创建主键约束
 alter table t1
     add constraint pk
     primary key clustered (id)
 
--创建外建约束
 alter table t2
     add constraint wz
     foreign key (id)
     references t1(id)
2011-05-01学习T-sql语句
1. 建表代码:
 create table 系部
(
    系部代码 char(6) not null primary key,
    系部名称 varchar(30) not null ,
    系主任 char(8)
)
go
create table 专业
(
    专业代码 char(4) not null primary key,
    专业名称 varchar(20) not null,
    系部代码 char(6) constraint wz11 references 系部(系部代码)
)
go
create table 班级
(
    班级代码 char(9) not null primary key ,
    班级名称 varchar(20) ,
    专业代码 char(4) constraint wz1 references 专业(专业代码),
    系部代码 char(6) constraint wz2 references 系部(系部代码),
    备注 varchar(50)
)
go
create table 学生
(
    学号 char(12) not null primary key ,
    姓名 char(8),
    性别 char(2),
    出生日期 datetime,
    入学时间 datetime,
    班级代码 char(9) constraint wz3 references 班级(班级代码),
    系部代码 char(6) constraint wz4 references 系部(系部代码),
    专业代码 char(4) constraint wz5 references 专业(专业代码),
    高考分数 int
)
2. 最简单的insert 语句
     INSERT [into] table_name (column_list) VALUES(data_values)
   
    [into]是一个可选的关键字,可以将它用在insert和目标表之间。
    table_name 是将要添加数据的表的名称
    (column_list) 是要添加数据的字段名称或字段列表,必须用括写将column_list 括起来,并用逗号进行分隔。若没有指字段列表,则指字全部字段。
下面是插入数据T-sql、成功运行代码:
INSERT into test_table VALUES('xm','计算机','01','没有')
 
INSERT into test_table VALUES('ql','计算机','03','没有')
选择插入的T-SQL语句:
INSERT into   test_table (名称,专业方向,系部代码)
VALUES('张三','数学','04')
 
省略values 的insert 语句
    在T-SQL 语言中,有一种简单的插入多行的方法。这种方法使用select 语句查询出的结果代替values 子句.这种语法结构如下:
 INSERT [into] table_name (column_name) SELECT [column_name] FROM table_name where [search_conditions]
[shere search] 查询条件。
INSERT表和SELECT表的结果集的列数,数据类型必须一致。
[search_conditions]查询条件
 
INSERT [into] table_name (column_name) 
SELECT [column_name] FROM table_name where [search_conditions
 
列子:
SELECT名称,专业方向,系部代码   FROM   test_table(这句T—sql语句是查询出表test_table表中的对应字段的数据)
INSERT test_table(名称,专业方向,系部代码)这句代码的意思是把上面T-sql语句查询出的结果插入到test_table表中。
SELECT名称,专业方向,系部代码   FROM   test_table
 
INSERT test_table(名称,专业方向,系部代码)
SELECT名称,专业方向,系部代码   FROM   test_table
 
上面两句合起来的意思就是第二条语句查询出的结果插入到第一条语句中去。
更新数据:
UPDATE test_table SET 系部代码='01'   所有的西部代码都会成为01
UPDATE test_table SET 专业方向='化学' WHERE 专业方向='数学'
上面T-sql语句主要是把表test_table表中的专业方向=‘数学’更新成专业方向=‘化学’
 
3.删除数据库中的数据:
数据的删除
随着系统的运行,表中可能产生一些无用的数据,这些数据不仅占用空间,而且还影响查询的速度。删除数据可以使用detelt语句
   DELETE table_name WHERE [search_conditions]
   table_name 是要从其中删除数据的表中名称。
   WHERE 指定用于限制册除行数据的条件。如果没有提供   where          
              句,则delete 删除表中的所有行。
   [search_conditions]指定删除行的限定条件。
下面是例子:
4.查询语句:
输出表中的所有列
       将表中的所有字段都在”结果”窗口列出来,可以有两种方法:一种是将所有字段名在SELECT关键字后列出来;另一种是在SELECT语句后使用一个*
SELECT*FROM table_name
2、输出表中部分列
列出表中的部分字段,可以在SELECT 关键字后依次把字段名写出来,之间用逗号隔开,字段的顺序可根据需要来指定,
SELECT A,B,C FROM table_name
3、选择表中的若干记录
两个不相同的记录,但在某字段上是相同的如果
要去掉结果集中重复的行,可以在字段列表前面加
个DISTINCT关键字。
SELECT DISTINCT 列名 FROM table_name
4、限制返回行数
如果一个表中有上亿条记录,而用户只想看前n条,
这就没有必要显视全部的记录。如果要限定返回的行数,可
以在字段列表前使用TOP n关键字,可以返回结果的前n条记
录信息。
SELECT TOP n FROM table_name
 
下面是例子:
 
SELECT *   FROM   test_table
查看一个整体表
SELECT学号,名称,专业方向,系部代码,其他 FROM   test_table
查询表中的部分字段的信息
SELECT名称,学号,其他FROM test_table
只查询表中的名称、学号、其他信息
SELECT DISTINCT 系部代码FROM test_table
查询系部代码
SELECT TOP 102 *   FROM   test_table
查询test_table表中的多小行
 
SELECT *   FROM   test_table WHERE 学号=1034
查询表test_table表中学号等于1034的员工号
SELECT *   FROM   test_table WHERE 学号 BETWEEN 1034 AND 1036
查询学号1034到1036之间的信息
SELECT *   FROM   test_table WHERE 学号 in(1034,1035,1036)
查询表中学号在(1034,1035,1036)
SELECT *   FROM   test_table WHERE 学号 NOT in(1034,1035,1036)
查询出结构不包括学号(1034,1035,1036)之间
SELECT *   FROM   test_table WHERE 名称 like   'q_'
查找表中字段’q_’所有字符
5.对查询结果排序:
SELECT系部代码 FROM   st_table
group by 系部代码
 
SELECT专业方向 FROM   st_table
group by 专业方向 having 专业方向<>'动漫'
可以看到查询结构没有动漫。
8、对查询的结果排序
    可以使用ORDER BY 对查询结果按照一个或多个属性进行升序(ASC)
或降序(DESC)排序,默认为升序。
    ORDER BY {列名[ASC|DESC] [,...n] }
 
SELECT *   FROM   st_table   ORDER BY 高考分数ASC(默认升序)
SELECT *   FROM   st_table   ORDER BY 高考分数DESC(分数是降序)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章