1.关系数据库语言SQL
1.1创建和删除数据库
创建数据库使用create database语句:
create database testdb
testdb为创建的数据库名称
删除数据库使用drop database语句:
drop database testdb
1.2创建表
在数据库中创建表使用create table语句:
create table 数据库名.表名(字段名1 字段数据类型(长度)sql约束,...)
在指定了“数据库名”时,创建的新表属于指定数据库,否则新表属于当前数据库。常用的字段数据类型如下:
字段数据类型 | 说明 |
---|---|
integer(size) int(size) smallint(size) tinyint(size) |
保存整数,size指定数字的最大位数 |
decimal(size,d) numeric(size,d) |
保存小数,size指定数字的最大位数,d指定小数的最大位数 |
char(size) | 保存固定长度的字符串(字母、数字以及特殊字符),size指定字符串的长度 |
varchar(size) | 保存可变长度的字符串(字母、数字以及特殊字符),size指定字符串的长度 |
data | 保存日期 |
最简单的create table命令只指明表名、字段名和字段数据类型:
create table users(name varchar(10),birth date)
sql约束用于为表或字段定义约束条件,常用的约束有NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT(不区分大小写,习惯在SQL语句中将SQL的关键字用大写)。可同时为字段定义多个约束。
- NOT NULL
表示字段不能为空值,默认情况下或用NULL表示可以为空值:
create table users(name varchar(10)NOT NULL,birth date)
- UNIQUE
表示表中该字段的值是唯一的:
create table users(name varchr(10)NOT NULL UNIQUE,birth date)
在字段名后使用UNIQUE只能约束该字段的值是唯一的。如果要约束多个字段的值是唯一的,应使用CONSTRAINT子句来定义约束:
create table users(name varchar(10)NOT NULL,
birth date,
CONSTRAINT un_name_birth UNIQUE(name,birth)
其中,un_name_birth为唯一约束的名称,显示了表中不同记录中的name和birth字段不能同时相同。
为已经存在的表添加唯一约束,则应使用alter table语句修改表:
alter table users add UNIQUE name
alter table users add CONSTRAINT un_name_birth UNIQUE(name,birth)
没有没有指定约束名称时,数据库会指定一个默认名称。
删除表的约束使用alter table语句修改表:
alter table users drop CONSTRAINT un_name_birth
- PRIMARY KEY
表示字段为主关键字,字段值不能重复、不能为空值。一个表可以有多个唯一约束,但只能有一个主关键字:
create table users(name varchar(10)PRIMARY KEY,birth date)
同样可用CONSTRAINT子句定义主关键字:
create table users(name varchar(10)
birth date,
CONSTRAINT key_name_birth PRIMARY KEY(name,birth))
为已经存在的表添加主关键字约束,则应使用alter table语句修改表:
alter table users add PRIMARY KEY(name)
alter table users add CONSTRAINT key_name_birth UNIQUE(name,birth)
- FOREIGN KEY
外键约束,表示字段值必须是另一个表中的关键字的值:
create table scores(no int