欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL数据表基本操作笔记

程序员文章站 2022-05-03 14:48:45
...

学习的时间比较久了,对数据库的基本知识有所淡忘,开此文章作为笔记,便于后续查看。

直接进入正题。

1.建立数据表

CREATE TABLE person(
person_id SMALLINT UNSIGNED PRIMARY KEY,
fname varchar(20),
lname varchar(20),
gender ENUM('M','F'),
birth_date DATE,
street VARCHAR(30),
city VARCHAR(20),
sate VARCHAR(30),
country VARCHAR(20)
);
其中ENUM为枚举类型,PRIMARY KEY为主键。创建完表格后,如果想确认表格是否创建,可以使用DESC命令。

SQL数据表基本操作笔记

create table favorite_food(
person_id SMALLINT UNSIGNED,
food VARCHAR(20),
CONSTRAINT pk_favorite_food PRIMARY KEY (person_id,food),
CONSTRAINT fk_fav_food_person_id FOREIGN  KEY (person_id)
REFERENCES person (person_id)
);
此表稍有不同,主键为联合主键,由person_id,food共同约束,同时添加了外键约束,即该表中person_id的值必须为person表中person_id存在的值。顺便补充一句,数据表有五大约束。

五大约束

1.—-主键约束(Primay Key Coustraint) 唯一性,非空性

 2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个

 3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)

 4.—-默认约束 (Default Counstraint) 该数据的默认值

 5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列

2.插入数据

insert 语句主要由3个部分组成:

  • 1.要插入的数据表的名称;
  • 2,要插入的列的名称;
  • 3.要插入到列的值;
简单例子如下:

insert into person 
(person_id,fname,lname,gender,birth_date) 
values (1,'william','Turner','M','1994-06-19' )
要注意的是需满足上面提到的几大约束(主键值不能相同,非空属性,不能超出默认范围等,如果每列都插值,列名可略去不写。)

3.更新数据(注意为更新表中内容,与更新表格不同)

update person 
set street ='122 TREMONT ST',
city='Boston',
country='USA'
where person_id = 1;
4.查找数据
select person_id,fname,lname,birth_date
from person
where person_id=1;
5.删除数据

delete from person
where person_id = 1;

6.一些可能导致错误的语句

 1.主键不唯一;

 2.不存在的外键;

 3.列值不合法;

4.无效的日期转换;

 ...

其实出错的情况大多就是因为没有满足数据表的五大约束。