⑴ 请问sql-Server如何创建一个表的子表
你新建一个表,然后在子表里面,添加一个与父表主键相同的字段,设为主键OK.
⑵ sql怎么创建表
1.1 创建表方法
创建表是指在已存在的数据库中建立新表。这是建立数据库最重要的一步,是进行其他操作的基础。
1.1.1 创建表的语法形式
CREATE TABLE 表名 (
属性名 数据类型 [ 完整性约束条件 ],
属性名 数据类型 [ 完整性约束条件 ],
......
属性名 数据类型 [ 完整性约束条件 ],
)[ 表类型 ] [ 表字符集 ];
SQL 是不区分大小写。下面将会具体介绍SQL,这种创建表是通过什么方式起来的效果怎么样?
命名规范:
1. 命名富有意义 ( 英文或英文组合 )
2. 自定义名称使用小写
3. MySQL 语句使用大写
CREATE TABLE IF NOT EXISTS data_house(
id INT,
name VARCHAR(20);
gender BOOLEAN,
) Engine = MyISAM;
上面 SQL 语句的含义是:如果不存在 text1 表,就创建它,包含 3 个字段 id 、 name 和 gender ,它们的类型分别是整形、字符型和布尔型,创建的表的类型是 MyISAM 。
完整性约束条件表
PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值自动增加,这是 MySQL 的 SQL 语句的特色 (null,0)
DEFAULT 标识该属性设置默认值 (not null defualt 0,not null default 0.0,not null default '')
1.1.2 设置表的主键
主键是表的一个特殊字段。该字段能惟一地标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证是用来标明人的身份,每个人都具有惟一的身份证号。设置表的主键指在创建表时设置表的某个字段为该表的主键。
主键的主要目的是帮组 MySQL 以最快的速度查找到表中的某一条信息。
主键必须满足的条件:
1. 主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;
2. 主键的值是非空值;
3. 主键可以是单一的字段,也可以是多个字段组合。
1. 单字段的主键:
CREATE TABLE student1 (
stu_id INT PRIMARY KEY ,
stu_name VARCHAR(20) NOT NULL,
stu_gender BOOLEAN
) Engine = InnoDB;
2. 多字段主键 :
CREATE TABLE student2 (
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY( stu_id, course_id )
)Engine = InnoDB;
1.1.3 设置表的外键
外键是表的一个特殊字段。如果字段 sno 是一个表 A 的属性,且依赖于表 B 的主键。那么,称表 B 为父表,表 A 为子表, sno 为表 A 的外键。通过 sno 字段将父表 B 和子表 A 建立关联关系。设置表的外键指在创建表设置某个字段为外键。
设置外键的原则:必须依赖于数据库中已存在的父表的主键;外键可以为空值。
外键的作用 : 是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。例如, stu_id 就 student 表的主键, stu_id 是 grade 表的外键。当 stu_id 为 '123' 同学退学了,需要从 student 表中删除该学生的信息。那么, grade 表中 stu_id 为 '123' 的所有信息也应该同时删除。
CONSTRAINT 外键别名 FOREIGN KEY ( 属性 1.1, 属性 1.2... 属性 1.n);
REFERENCES 表名 ( 属性 2.1, 属性 2.2,..., 属性 2.n)
CREATE TABLE student3 (
id INT PRIMARY KEY,
stu_id INT,
course_id INT,
# 设置外键
CONSTRAINT C_fk FOREIGN KEY (stu_id, course_id) REFERENCES student2(stu_id, course_id)
) Engine = InnoDB;
1.1.4 设置表的非空约束
非空性是指字段的值不能为空值 (NULL) 。非空约束将保证所有记录中该字段都有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错。例如,在 id 字段加上非空约束, id 字段的值就不能为空。如果插入记录的 id 字段的值为空,该记录将不能插入。设置表的非空约束是指在创建表时为表的某些特殊字段加上 NOT NULL 约束条件。设置非空约束的基本语法规则如下:
属性名 数据类型 NOT NULL
⑶ SQL 创建一个表并插入相关数据
创建数据表
CREATE TABLE table_name
(
[column_name] data_type constraint,
[column2_name] data_type consraint,
[column3_name] data_type constraint
)
插入数据
INSERT INTO table_name([column_name],[column_name1],[column_name2]) VALUES ('something','something','something')
还有很多的东西
比如说修改、删除表;添加、修改、删除约束;添加、修改、删除列等。都是基础的东西 不是很难
⑷ SQL 如何创建一个完整的表
create table 学生
(
学号 char(8) primary key, --主键
姓名 varchar(8) not null unique,--不为空,不能重复
性别 char(2) check(性别 in('男','女')) default '男' not null,--只能是男或女,默认是男
出生日期 datetime not null,--不为空
身高 int check(身高>0 and 身高<300),--只能在0到300 之间
籍贯 varchar(12) not null,
专业 varchar(10) not null
)
⑸ sql server 如何从现有的表新建另一个表
复制表(只复制结构,源表名:a 新表名:b)法一:select * into b from a where 1 <>1 法二:select top 0 * into b from a
如果是数据一起复制的话select * into b from a
⑹ SQL怎么创建几个表
先创建好数据库,直接进入里面的有个表,在右边单击右键就可以新建表,然后根据需求增加字段就可以了。
⑺ sql语句 如何创建一个表啊
创建表的SQL语句根据不同的数据库会有所不同,常见的几种数据库创建方式如下:
创建一个表。表名字Persons,第一列Id_P,整数类型;第二列LASTName,字符类型;第三列FirstName,字符类型。
微软VS SQL 2008 数据库
(7)sql新建一个表扩展阅读:
结构化查询语言(Structured Query Language)简称SQL,是用于访问和处理数据库的标准的计算机语言,同时也是数据库脚本文件的扩展名。常用的操作:
删除表-- drop table tabname--这是将表连同表中信息一起删除但是日志文件中会有记录;
删除数据库 -- drop database databasename;
删除数据记录 -- "delete from 数据表 where 条件表达式"
⑻ SQL语句创建表
CREATE TABLE 语句用于创建数据库中的表。
具体用法为:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
(8)sql新建一个表扩展阅读:
创建表数据类型:
integer(size) int(size) smallint(size) tinyint(size):仅容纳整数。
decimal(size,d) numeric(size,d):容纳带有小数的数字。
char(size):容纳固定长度的字符串
varchar(size):容纳可变长度的字符串
date(yyyymmdd):容纳日期。
参考资料:网络-SQL CREATE TABLE
⑼ SQL如何创建一个数据表
create
table
userinfo
(
id
int
primary
key
not
null
identity
(1,1),
[name]
char(20)
unique,
age
int
check(age>10),
sex
char(2)
)
建议一个名叫userinfo的表,字段为
id
,自动+1,主键,不为空!
name
,char(20)
不重复!
age
int类型,年龄必须大于10,否则会出现错误!
sex
性别
char(2)
好好学习,天天向上!
⑽ 如何用SQL语句在一个已有数据库内新建一个表
用create table来创建
createtabledep
(
depNointprimarykey,
depNamevarchar(50)notnull,
depManvarchar(50)notnull
)