设为首页
收藏本站
个人学习资料整理,不接受注册
开启辅助访问
切换到宽版
登录
禁止注册
银舟网
BBS
搜索
搜索
本版
帖子
用户
银舟网
»
银舟网
›
课外时间
›
电脑
›
数据库与表的操作以及创建约束
返回列表
发新帖
数据库与表的操作以及创建约束
[复制链接]
3140
|
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
1603
主题
494
回帖
6152
积分
管理员
积分
6152
加好友
发消息
回复楼主
返回列表
美图
美句
解梦
电脑
情感
驾考
相机
电子