连接数据库 sqlcmd命令
创建数据库:
查看所有数据库:
创建表
添加主键约束
外部关键字
怎么添加唯一约束
怎么添加非空约束
怎么使用默认约束
设置表的属性值自动增加
SQLServer 提供了 sqlcmd 命令,来让我们操作 SQLServer 数据库。接下来我们连接它,并在其中创建一个名为 TestDb 的数据库。
连接 SQLServer :sqlcmd -S localhost -U sa -P '<123123Aa!@>'
create database TestDb
。
select name from sys.databases。
我们先来了解一下,在数据库中创建表的规则:
CREATE TABLE 表名(
字段名,数据类型,
字段名,数据类型,
.....)
例如:
CREATE DATABASE MyDb
然后,选择数据库:
USE MyDb
最后,创建t_user表:
CREATE TABLE t_user( id INT, username VARCHAR(32), password VARCHAR(32), phone VARCHAR(11))
表创建好之后,可以使用如下语句查看表的基本结构,用来验证是否创建成功。
语法如下:
sp_help 表名
有两种方式可以添加主键约束:1.在定义列的同时指定主键,2.在定义完字段之后,再指定主键。
(1) 在定义列的同时指定主键:
在开发中,还有一种情况很常见,就是将几个字段联合在一起作为主键,那这个在代码中怎么实现呢?
举个例子,我们将员工的名字和部门 ID 联合起来作为主键:
CREATE TABLE t_emp2( name VARCHAR(32), deptId INT, salary FLOAT, PRIMARY KEY(name,deptId))
语句执行后,会将 name 和 deptId 字段组合成为表 t_emp2 的多字段组合主键。
外部关键字叫做外键,外键就是另一张表中的主键。
问:外键有啥用啊?
答:外键的主要作用就是保持数据的一致性,完整性。
再问:怎么保证的呢?
答:看图。
继续问:那怎么才能删除呢?
接着答:需要先删除 T_Student 表中 classId 为 1 的两个字段。
如何给表添加外部关键字
在 SQLServer 中,给表中字段添加外键约束的语法规则如下:
CONSTRAINT 外键名 FOREIGN KEY 字段名 REFERENCES 主表名(主键名)
举个例子:现在有两张表, t_emp , t_dept 如下:
CREATE TABLE t_dept( deptId INT PRIMARY KEY, name VARCHAR(22), location VARCHAR(50));CREATE TABLE t_emp( id INT PRIMARY KEY, name VARCHAR(22), deptId INT, CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId));
实际操作如图:
CREATE TABLE t_dept(
deptId INT PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50));CREATE TABLE t_emp(
id INT PRIMARY KEY,
name VARCHAR(22),
deptId INT FOREIGN KEY REFERENCES t_dept(deptId));
在定义字段的时候,也可以定义外部关键字,格式: FOREIGN KEY REFERENCES 关联的表名(字段名) ,这种方式比较简洁,不过这种方式不能指定外键名,即外键名是随机的。
唯一约束( Unique Constraint )要求该列唯一,允许为空,但是只能有一个空值。唯一约束可以确保一列或者几列不出现重复值。
定义部门表的部门名称唯一,使用关键词 UNIQUE ,SQL 语句如下:
CREATE TABLE t_dept( id INT PRIMARY KEY, name VARCHAR(22) UNIQUE, location VARCHAR(50))
关键词: NOT NULL 。
例如:
CREATE TABLE t_dept(
id INT PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50))
默认约束:即给字段一个默认值。
关键词: DEFAULT 。
例如:
CREATE TABLE t_emp( id INT PRIMARY KEY, name VARCHAR(22), sex VARCHAR(2) DEFAULT '男')
注意:如果是添加字符串型,认值要使用单引号;如果是整型,则不需要加任何符号。
在数据库应用中,经常需要在每次插入新纪录时,系统自动生成字段的主键值,即:
CREATE TABLE t_tmp(
id int PRIMARY KEY IDENTITY(1,1),
name VARCHAR(32))
联系客服