二、表的创建、数据类型、表的约束

1、表的创建



创建表之前一般需要在特定的库中创建表,先创建一个库,之后的表都在该库中创建。创建数据库的语法:

                                          CREATE DATABASE <数据库的名字>

这里创建名字为Tem_base的库:

                                          CREATE DATABASE Tem_Base

这是比较简单的写法,其它暂不讨论,然后便可以在该库下创建表
创建表的语法格式: 

                                          CREATE TABLE Table_Name(
                                              列名1 数据类型 该列的约束,
                                              列名2 数据类型 该列的约束,
                                                    ...
                                              列名n 数据类型 该列的约束,
                                              该表的约束1,
                                                   ...
                                              该表的约束n
                                           )

列名:就是每列的名字,如这里的SID、SNAME、SAGE、SSEX;数据类型:数据类型有很多比如int、char,date等,暂且不谈;该列的约束:对该列的数据的要求,暂且不谈;表约束:对表的数据的要求,暂且不谈
下面便可以创建表:

CREATE TABLE Student(
SID varchar(10) not null,
Sname varchar(10),
Sage datetime,
Ssex varchar(10));
CREATE TABLE Course(
CID varchar(10) not null,
Cname varchar(10),
TID varchar(10));
CREATE TABLE Teacher(
TID varchar(10)  not null,
Tname nvarchar(10));
CREATE TABLE SC(
SID varchar(10) not null,
CID varchar(10),
score decimal(18,1));

分别创建了Student、Course、Teacher、SC四个表
2.1、命名规则:我们只能使用半角英文字母、数字、下划线(_)作为数据库、表和

2.2、列的名称,且名称必须以半角英文字母开头,同一个数据库中不能创建两个相同名称的表,同一个表中也不可能有同名的列,但列名可以与表名相同

2、数据类型:



  用来声明该列的数据类型的,所有的列都必须指定数据类型,包括数字型、字符型和日期型等,下面一一介绍比较常用的:

2.1、Int(Integer(整数)):INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小;如1,2,100,50等;

2.2、SMALLINT SMALLINT 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。

2.3、FLOAT:FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。

2.4、char(定长字符串):如char(10),表示该列的字符串的长度不能大于10,超出的部分会舍弃,不足的部分会用空格补充;

2.5、varchar(可变长字符串):varchar(20),超出最大长度会舍弃,不足的部分不会用空格补充

2.6、Date(日期):存储日期

3、约束的类型:



3.1、主键约束(primary key): 唯一性,非空性:

  创建学生编号为主键:
        SID varchar(10) primary key

  创建学生编号为主键,并命名为pk_id:
        constraint pk_id primary key (SID ) 创建学生编号为主键,并命名为pk_id
  为已存在的列创建主键:
        alter table table_name add primary key(column_name)
  删除主键约束:
        alter table table_name drop primary key
  删除主键约束:
        alter table table_name drop constraint 主键约束名

3.2、唯一约束(unique):唯一性,可以空,每个约束下每个值只能有一个,但可以有多个列为唯一约束:

  列级:

        SID varchar(10) unique

  表级:
        CONSTRAINT un_id unique (sid)

  增加表中的约束
        alter table table_name add unique(column_name)

  删除约束         alter table able_name drop constaint 主键名 删除约束

3.3、检查约束(check):对该列数据的范围、格式的限制(如:年龄、性别等)

  创建Ssex列约束,只能为‘男‘或者‘女‘

        Ssex varchar(10)) check(Ssex=‘男‘ or Ssex=‘女‘)

  向已有的列加入check约束
        alter table table_name add check(列名>0)

  删除约束 
        alter table table_name drop constraint check约束名

3.4、默认约束(default):该数据的默认值
        Ssex varchar(10)) default ‘男’

  向已有列名中插入默认值
        alter table table_name add 列名 set default ‘数值‘

  删除默认约束
        alter table table_name drop constraint 约束名

3.5、非空约束(not null):确定该列数据是否为空
        Sname varchar(10) not null

3.6、外键约束(foreign key):需要建立两表间的关系并引用主表的列
  a、一个表中的foreign key 指向另一个表的primary key
  b、foreign key约束用于预防破坏表之间连接的动作
  c、foreign key约束也能防止非法数据插入外键列,因为它必须是指向的那个表的值之一

  创建column_name为主表名的外键
        foreign key (column_name) references 主表名(主键列名)

  创建column_name为主表名的外键
        column_name int foreign key references 主表名(主键列名) 
  为已存在的列创建外键
        add foreign key (列名) references 主表名(主键列名)

  删除外键约束
        alter table table_name drop constraint 外键约束名

3.7、自增列(auto_increment):该列每次添加数据都会自增,(不做讨论)

原文地址:https://www.cnblogs.com/chenbao1012/p/11811157.html

时间: 2024-11-09 00:53:24

二、表的创建、数据类型、表的约束的相关文章

表的创建、修改及约束

1.创建表 CREATE TABLE EMP2 AS SELECT * FROM EMP WHERE 1=2;--只复制表结构 CREATE TABLE TEST1 AS SELECT EMPNO,ENAME,JOB,SAL FROM EMP WHERE DEPTNO=10;--只复制另一个表中的某几个字段 CREATE TABLE EMP2 AS SELECT * FROM EMP; --复制整张表,包括数据 CREATE TABLE EMP2 AS SELECT * FROM EMP WHE

EF 学习系列二 数据库表的创建和表关系配置(Fluent API、Data Annotations、约定)

上一篇写了<Entity Farmework领域建模方式 3种编程方式>,现在就Code First 继续学习 1.数据库表的创建 新建一个MVC的项目,在引用右击管理NuGet程序包,点击浏览搜索EF安装,我这里主要是EF6.0 以上的学习 所以都安装6.0 以上的版本 接下来在Model文件夹下面创建一个Customer类 public class Customer { public int ID { get; set; } public string Name { get; set; }

MySQL表的创建和表中数据操作

这篇文章主要介绍在navicat的命令界面操作mysql.主要涉及建立表结构,和对表中数据的增加删除修改查询等动作.站在一个新手角度的简单mysql表结构和数据操作. ☆ 准备工作 1,保证自己的电脑安装了mysql(my.ini下的字符集设置是utf8) 2,确保电脑同时安装navicat(任意版本) 3,保证mysql服务器已经启动 注:若对navicat操作不熟,请参照<<navicat从下载到使用>>这篇文章. ☆ 打开控制台 在navicat的tools(工具)菜单栏选择

数据库实验二 数据库和数据表的创建

实验环境: SQL Service 2014 一.数据库的创建 有三种类型的文件用来存储数据库: 主文件包含数据库的启动信息.主文件还可以用来存储数据.每个数据库都包含一个主文件. 次要文件保存所有主要数据文件中容纳不下的数据.如果主文件大到足以容纳数据库中的所有数据,就不需要有次要数据文件.而另一些数据库可能非常大,需要多个次要数据文件,也可能使用多个独立磁盘驱动器上的次要文件,以将数据分布在多个磁盘上. 事务日志文件保存用来恢复数据库的日志信息.每个数据库必须至少有一个事务日志文件(尽管可以

SQL笔记-第二章,数据表的创建和管理

数据类型 分5类:整数.数值.字符相关.日期时间以及二进制 1.整数 数据库系统 类型 说明 MYSQL tinyint [unsigned] 一个很小的整数.有符号的范围是-128 到127,无符号的范围是0 到255. smallint [unsigned] 一个小整数.有符号的范围是-32768到32767,无符号的范围是0 到65535. mediumint [unsigned] 一个中等大小整数.有符号的范围是-8388608到8388607,无符号的范围是0到16777215. in

4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)

 mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,执行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- 选择数据库 use mydb61; -- 增加 dbuser1 用户 --     创建用户'dbuser61'密码为 'dbuser61'拥有操作数据库mydb61的所有权限 GRANT ALL ON mydb61.* TO dbuser61 IDENTIFIED BY "dbuser61&quo

postgresql 表空间创建、删除

表空间:字面上理解就是表存储的物理空间,其实包括数据库的表.索引.序列等. 可以将表空间创建在服务器的不同分区,这样做的好处有: 一.如果初始化集群所在分区已经用光,可以方便的其他分区上创建表空间已达到扩容的目的. 二.对于频繁访问的数据可以存储在性能较高.较快的磁盘分区上,而不常用的数据存储在便宜的较慢的磁盘分区上. 语法: postgres=# \h create tablespace Command:     CREATE TABLESPACEDescription: define a n

MySQL 创建数据表的命令行

MySQL中要先创建数据库,让后创建数据表,创建数据表要先设计好数据表的字段,是数字类型,文本类型,是浮点类型,是字符串类型,日期类型等. 1,创建数据表命令行 CREATE TABLE table_name 2,创建数据表的结构体 CREATE TABLE dc3688 ( id INT(11) NOT NULL AUTO_INCREMENT,subject VARCHAR(45) DEFAULT NULL,start_date DATE DEFAULT NULL,end_date DATE

oracle数据库表空间创建&amp;导入&amp;导出

1.表空间创建 --删除表空间 drop tablespace EVPBDMGIS including contents and datafiles; --删除用户 drop user EVPBDMGIS cascade; --创建表空间 create tablespace EVPBDMGIS datafile 'D:\app\Administrator\oradata\orcl\EVPBDMGIS.DBF' size 500m reuse autoextend on next 16m maxs

hive-hbase-handler方式导入hive表数据到hbase表中

Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive-hbase-handler.jar工具类 : hive-hbase-handler.jar在hive的lib包中而不是在hbase的lib中,hive0.6版本以后: 创建hive表的同时创建hbase表,删除 hive表的同时也会删除对应的hbase表. 参见官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegr