python学习笔记之数据库语言SQL

这篇博客详细介绍了如何使用SQL进行数据库操作,包括创建和删除数据库、创建表及各种约束(如NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT)、修改表、删除表和记录、创建索引、视图以及执行复杂的查询,如子查询和多表查询。通过实例展示了SQL语句的用法,是学习SQL数据库操作的好资料。
摘要由CSDN通过智能技术生成

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值