自学内容网 自学内容网

【数据库原理】创建与维护表,DDL数据定义语言

数据描述语言(数据定义语言)
就是管理数据库整个库,整个表,表的属性列的语句。
常用词儿就是数据库或表的增删改查CREATE创建、DROP删除、ALTER修改、SHOW查看、USE进入表。
表的字段控制PRIMARY KEY主键、FOREIGN KEY外键、CONSTRAINT约束;ADD增加字段、RENAME表的重命名、MODIFY修改字段数据类型或约束、CHANGE修改字段名

  1. mysql数据库与表命名规则:当前字符集中的任意字符,下划线和$。最长为64字符。
  2. 文件系统对命名大小写敏感,则加以区分。windows中my_table与MY_TABLE是同一个表。UNIX中算两个不同的表。
  3. 表结构:列即字段,每个字段存储不同性质的数据。每一行各个字段数据构成一条数据记录。【就是属性和元组】
  4. 字段名:可以使用中文、英文、数字、下划线、井号、美元符号及at符号。字段名不能重复。【属性,就是属性】
  5. 字段的数据类型:字符串类型,长度表示容纳字符的数目。整型类型,长度为显示宽度。二进制类型,长度表示最大字节数。浮点数和定点数,长度表示数据的总长度。
  6. MySQL数据类型bit,二进制位。binary,二进制字符串。varbinary,可变长度二进制字符串。char,固定长度字符串。varchar,可变长度字符串。date,日期年月日。datetime,日期时间。tinyint,1B的整型。decimal,定点数。【常用的这些,tinyint只占1B,最大表示到255。var- 一般表示可变长度】
  7. 删除表
DROP TABLE [IF EXISTS] sc;#【如果存在,那么删除。加上这段话则不会报错:表不存在,无法删除表。】
  1. 创建表
CREATE TABLE sc( <字段1> <数据类型1> [列级完整性约束条件] [,表级完整性约束条件] );
  1. 列级完整性约束条件:只约束单个字段(属性)。
PRIMARY KEY:设置主键
NULL/NOT NULL:允许/不允许为空【相当于主键】
UNIQUE:字段取值唯一【相当于主键】
DEFAULT<默认值>:指定字段的默认值【默认在校】
AUTO_INCREMENT:字段自动增加【班级总人数】
CHECK(条件表达式):拒绝接受不满足条件的值【成绩为0-100
  1. 表级完整性约束条件:对整个表的约束条件(需要有主键,存在外键,字段的约束都可)。
CONSTRAINT <约束名> PRIMARY KEY(cno,sno),#【多个字段为表的主键】

CONSTRAINT <约束名> FOREIGN KEY(cno,cterm) REFERENCES course(cno,cterm)#【cno,cterm字段为外键,来自于course表】

CONSTRAINT <约束名> UNIQUE (cno)

CONSTRAINT <约束名> CHECK(degree>=0 and degree<=100)#【检查分数满足0-100之间】
  1. 查看表SHOW TABLES;【查看数据库中有哪些表】
  2. 查看表结构DESCRIBE sc;
  3. 查看详细表结构DESCRIBES CREATE TABLE sc;
  4. 复制表CREATE TABLE 表名 SELECT * FROM 现有表名;
  5. 复制表结构CREATE TABLE new_stu SELECT * FROM stu WHERE 1=0;【使得WHERE条件不成立,只保存表结构】
  6. 修改表结构
ALTER TABLE sc{  };
ADD <字段名> <数据类型 [列级完整性约束条件]>#ADD增加字段:
DROP <字段名>|<完整性约束名> #DROP删除字段【删除字段或删除约束】
RENAME <表名>#RENAME修改表名
MODIFY <字段名> <新数据类型> [列级完整性约束条件] #MODIFY修改字段的数据类型或完整性约束条件
CHANGE <旧字段名> <新字段名> <新数据类型>#CHANGE修改表中字段名称
  1. MySQL数据文件:.frm描述表结构;.myd数据文件;.myi数据文件中的索引文件。
  2. 创建表栗子
CREATE TABLE sc(
sno CHAR(10) NOT NULL,# 学号字段char类型,非空
cno CHAR(3) NOT NULL,# 课程号字段char类型,非空
degree DECIMAL(4,1),# 分数字段decimal定点小数,小数点后1位
cterm TINYINT NOT NULL,# 学期字段tinyint类型,非空
CONSTRAINT A1 PRIMARY(sno,cno,cterm),# 约束A1:主键sno,cno,cterm
CONSTRAINT A2 CHECK(degree>=0 and degree<=100),# 约束A2:检查分数0-100
CONSTRAINT A3 FOREIGN KEY(sno) REFERENCES student(sno),# 约束A3:外键sno来自学生表student
CONSTRAINT A4 FOREIGN KEY(cno,cterm) REFERENCES course(cno,cterm)
# 约束A4:外键cno,cterm来自课程表coures
);
  1. 修改表结构栗子
ALTER TABLE sc ADD class CHAR(10) AFTER sno;# 在表sc中sno字段后添加字段class
ALTER TABLE sc DROP FOREIGN KEY A4;# 在表sc中删除外键A4
ALTER TABLE sc RENAME sc1;# 修改表sc名为sc1
ALTER TABLE sc MODIFY degree INT;# 修改表sc中degree数据类型为int
ALTER TABLE sc CHANGE degree scores DECIMAL;# 修改表sc中degree字段为scores,类型为decimal

原文地址:https://blog.csdn.net/ak201605050122/article/details/144011040

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!