创建表 create table
语法:
create table 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型
)
最后一行不加逗号,可以兼容 Oracle 库。
创建部门表 dept
-- 判断表是否存在
if exists(select * from sys.objects where name='dept' and type='U')
drop table dept
create table dept
(
dept_id int primary key,
dept_name nvarchar(100) not null,
dept_address nvarchar(100)
)
-
dept_id int primary key: 创建一个整型
int
的主键primary key
列dept_id
。 -
dept_name nvarchar(100) not null: 创建一个长度为100字符
nvarchar(100)
的非空not null
列dept_name
。 -
dept_address nvarchar(100):创建一个 100 字符
nvarchar(100)
的列dept_address
。
创建员工表 emp
create table emp
(
emp_id int constraint pk_id_zhujian primary key,
emp_name nvarchar(20) not null,
emp_sex nchar(1) constraint fk_dept_id_fujian foreign key references dept(dept_id)
emp_addTime smalldatetime default(getdate()) -- 添加时间,默认当前时间
)
-
constraint pk_id_zhujian:指定主键约束的名字为
pk_id_zhujian
。 -
references dept(dept_id):定义的外键来自表
dept
的dept_id
字段。 -
smalldatetime: 与 datetime(1753.1.1~9999.12.31 ) 相比,smalldatetime 范围更小(1900.1.1~2079.6.6),且精度为1分,便于提高查询效率。
如果创建的表名和数据库中的关键字重复了,可以使用[]
括起来:
create table [Rank] -- Rank 是 sql server 关键字
(
...
)
修改表
1、添加列
语法:
alter table 表名 add 新列名 数据类型
举例:给员工添加一列邮箱
alter table emp add mail varchar(20)
2、删除列
语法:
alter table 表名 drop column 列名
举例:删除邮箱列
alter table emp drop column mail
3、 修改列
语法:
alter table 表名 alter column 列名 数据类型
举例:修改邮箱 varchar(20) 为 varchar(30)
alter table emp alter clumn mail varchar(30)
网友评论