数据库sql语言学习(三)

这篇博客总结了SQL语言中创建数据库和表的基本知识。介绍了SQL中的基本表、视图表和导出表概念,并提供了创建数据库和简单创建表的语法示例,强调了列定义、缺省值和列约束在创建表过程中的重要性。

创建数据库和表

关于SQL语言的学习总结:

仅仅是做一些小结,所以可能你需要懂一些数据库的一些介绍:

在SQL中,有三类表:基本表,视图表,导出表;

1.基本表:就是一直持久存在的表;

2.导出表:通过查询表达式求值,直接或者是间接从一个表或者是多个表导出(这和后面文章会有介绍)


3.视图表:是命名了的导出表(后面介绍);

在很多书中,都会有一些规定,这里也是,其实也就是一些符号格式上的规定,这些不是SQL的语法的符号,而是一种解释语法成分:
1. <X>  :表示X需要进一步定义或说明的语言成分
2. [X]  :表示X可以缺省(也就是可以省略)或者出现一次
3. {X}  :表示X可以出现一次

4. X|Y  :表示或者X出现,或者Y出现,但二者不能同时出现

-- 下面开始说数据库的创建的语法:
-- 我们如果是创建一个学生的数据库,最简单的就是下面这种方式

create database Student_database;

当有了一个数据库了,就要对数据库中添加各种表,这里先不做添加表中的内容语法,在我的数据库的文章中,已经将一个简单的数据库系统建立了。

下面是创建一个表的做法:

创建一个表:(这是一个需要掌握的地方)
简单格式:
CREATE TABLE <表名>
(<列定义>, ... ,<列定义>)
其中:
<列定义>  定义每一个列的的名称,类型,缺省值和列上的约束条件,
格式如下:
<列名><类型>[default <缺省值>][<列约束定义>, ... , <列约束定义>]
其中:
<列名> 列的命名。
<类型> 列的取值类型(这里暂时已基本类型为主)。 
default <缺省值>   定义列上的缺省值(也就是默认值),这个值可以是该列类型的某一个值,或者是NULL。

[<列约束定义>, ... , <列约束定义>]   这里需要注意的是,每一列可以有多个约束,

我们创建一个表,肯定需要将表中的属性(列),也要放进去,不仅如此还需要将属性的各种约束也要加进去
以一个学生表为例  :
Students(Sno,Sname,Sex,Birthday,Speciality,Dno)

学生(学号,名字,性别,生日,专业名,院系号)

-- 1.我们先创建一个最简单的,不带有任何约束的表(也就是只有列名和类型):
create table Students(
    Sno  char(9),
    Sname  char(10),
    Sex  char(2),
    Birthday date,
    Speciality  char(20),
    Dno char(3)
    );

-- 2.带有默认值
create table Student(
	Sno  char(9),
    Sname  char(10),
    Sex  char(2) default "男",--这就是默认值的设置
    Birthday date,
    Speciality  char(20),
    Dno char(3)
	);
我们创建有约束之前先了解一下sql语言有哪些约束可以定义
这里列出几种常用的列约束:
1. NOT NULL :不允许该列取空值
2.PRIMARY KEY :指明该列是主码,其值是唯一的,非空的;
3.UNIQUE :给列上的值必须是唯一的,其实也就候选码;
4.CHECK(<条件>):指明该列的值必须满足的条件,条件是一个布尔表达式
5.外码比较复杂一点,会选择有一篇文章进行总结;
-- 3.带有列约束
create table Students(
    Sno  char(9)primary key,
    Sname  char(10) not null,
    Sex  char(2) check (Sex='男'OR Sex='女'),
    Birthday date,
    Speciality  char(20),
    Dno char(3) 
    );
-- 4.将上面所有的都应用上

create table Students(
    Sno  char(9)primary key  check(Sno>2016243 and Sno<2016999),--表示为主码并且必须在给出的区间
    Sname  char(10) not null,--不能为空
    Sex  char(2) check (Sex='男'OR Sex='女'), --只能从男和女中选择
    Birthday date,
    Speciality  char(20) default "软件工程",--默认专业为软件工程
    Dno char(3) 
    );



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值