设为首页
收藏本站
个人学习资料整理,不接受注册
开启辅助访问
切换到宽版
登录
禁止注册
银舟网
BBS
搜索
搜索
本版
帖子
用户
银舟网
»
银舟网
›
课外时间
›
电脑
›
数据库与表的操作以及创建约束
返回列表
发新帖
数据库与表的操作以及创建约束
[复制链接]
1872
|
13
|
2021-9-9 15:55:20
|
显示全部楼层
|
阅读模式
"SQL"是 "Structured Query Language" 即“结构化查询语言”的简称,它是用来管理关系型数据库的。
其包括:
–数据定义语言(DDL)
–数据查询语言(DQL)
–数据操作语言(DML)
–数据控制语言(DCL)
回复
使用道具
举报
yinzhou
|
2021-9-9 15:57:32
|
显示全部楼层
创建数据库:
CREATE DATABASE 数据库名;
数据库名命名规则:
- 第一个字符必须为下列之一:字母、下划线、#及@符号。
- 后续字符由字母、十进制数、下划线、#、$及@符号组成。
- 不能为RDBMS(数据库管理系统)的保留关键字。
- 不允许空格及其他字符。
本文创建数据库如下:
CREATE DATABASE zh_sql
回复
使用道具
举报
yinzhou
|
2021-9-9 15:59:31
|
显示全部楼层
连接数据库:
USE zh_sql;
删除数据库:
DROP DATABASE zh_sql;
回复
使用道具
举报
yinzhou
|
2021-9-9 16:00:26
|
显示全部楼层
接下来就开始创建表了,在创建表之前先列出几种常用的数据类型
整数数据类型:
-INT 大小:4字节
-BIGINT 大小:8字节
浮点数据类型:
- FLOAT 大小:4字节 精度:7位小数
- DOUBLE 大小:8字节 精度:15位小数
字符串数据类型:
- VARCHAR 范围:0-65535
日期数据类型:
- DATE 大小:3字节 格式:YYYY
- DATETIME 大小:8字节 格式:YYYY-MM-DD
回复
使用道具
举报
yinzhou
|
2021-9-9 16:01:50
|
显示全部楼层
创建表:
CREATE TABLE <表名>
(<列名> <列的数据类型> [<列的约束>]);
如:
CREATE TABLE t_student(
student_name VARCHAR(10),
student_birthday DATETIME,
student_phone INT,
student_score FLOAT);
回复
使用道具
举报
yinzhou
|
2021-9-9 16:02:58
|
显示全部楼层
删除表:
DROP TABLE t_student;
复制表:
CREATE TABLE copy_student SELECT * FROM t_student;
如此我们便复制了一张名为copy_student的表,它包括t_student表中的内容与结构。注意:复制表的同时表的约束并不能复制过来。
回复
使用道具
举报
yinzhou
|
2021-9-9 16:03:54
|
显示全部楼层
只复制表结构而不复制表内容:
CREATE TABLE copy_student SELECT * FROM t_student WHERE 1=0;
只需在WHERE条件中加入一个永不为真的值即可。
回复
使用道具
举报
yinzhou
|
2021-9-9 16:05:52
|
显示全部楼层
修改表
添加新列:
ALTER TABLE t_student ADD student_address VARCHAR(50);
更改列:
ALTER TABLE t_student CHANGE student_birthday student_age INT;
这里我们把学生生日列改为学生年龄列,CHANGE后第一个为旧列名,第二个为新列名。
删除列:
ALTER TABLE t_student DROP COLUMN student_score;
回复
使用道具
举报
yinzhou
|
2021-9-9 16:08:18
|
显示全部楼层
实体完整性--主键约束:
PRIMARY KEY
主键列不能为空也不能重复,通常加在表的id列中。
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
student_name VARCHAR(10),
student_birthday DATETIME,
student_phone INT,
student_score FLOAT);
回复
使用道具
举报
yinzhou
|
2021-9-9 16:08:56
|
显示全部楼层
UNIQUE
唯一约束是指给定列的值必须唯一,与主键约束不同的是它可以为空。通常加在表中不能重复的信息中,如电话号码。
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
student_name VARCHAR(10),
student_birthday DATETIME,
student_phone INT UNIQUE,
student_score FLOAT);
回复
使用道具
举报
yinzhou
|
2021-9-9 16:09:11
|
显示全部楼层
域完整性--非空约束:
NOT NULL
非空约束可以加在诸如姓名等列上。
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
student_name VARCHAR(10) NOT NULL,
student_birthday DATETIME,
student_phone INT UNIQUE,
student_score FLOAT);
回复
使用道具
举报
yinzhou
|
2021-9-9 16:09:43
|
显示全部楼层
域完整性--默认约束:
设定默认值后,可以在添加此列时不指定值,数据库会自动填充设定的默认值。
DEFAULT
现给学生表加入性别列,默认值设为“男”,这样添加新的学生信息时如果没有填写具体的性别均会默认为男性:
复制代码
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
student_name VARCHAR(10) NOT NULL,
student_sex VARCHAR(5) DEFAULT '男',
student_birthday DATETIME,
student_phone INT UNIQUE,
student_score FLOAT);
回复
使用道具
举报
yinzhou
|
2021-9-9 16:10:40
|
显示全部楼层
引用完整性--外键约束:
外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。
创建主表--班级表:
CREATE
TABLE
t_class( class_id
INT
PRIMARY
KEY
, class_name
VARCHAR
(
20
)
UNIQUE
NOT
NULL
); )
创建从表--学生表,并设置外键约束:
复制代码
CREATE
TABLE
t_student( student_id
INT
PRIMARY
KEY
, s_c_id
INT REFERENCES
t_class(class_id), student_name
VARCHAR
(
10
)
NOT
NULL
, student_sex
VARCHAR
(
5
)
DEFAULT
'
男
'
, student_birthday
DATETIME
, student_phone
INT
UNIQUE
, student_score
FLOAT
CONSTRAINT FOREIGN KEY(s_c_id) REFERENCES t_class(class_id);
红色标识的就是创建外键约束的方法
回复
使用道具
举报
yinzhou
|
2021-9-9 16:11:48
|
显示全部楼层
出处
https://www.cnblogs.com/ghost-xyx/p/3798362.html
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
禁止注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
yinzhou
1602
主题
491
回帖
6135
积分
管理员
积分
6135
加好友
发消息
回复楼主
返回列表
美图
美句
解梦
电脑
情感
驾考
相机
电子