Mysql数据库,表,字符集,主外键等创建的sql模板


##如果存在同名的数据库,删除此同名的数据库。

DROP DATABASE IF EXISTS cfms;

##如果不存在字符集为utf8的cfms这个数据库,那么就创建

CREATE DATABASE IF NOT EXISTS cfms CHARACTER SET utf8;

##第一次时表示使用此数据库

USE cfms;

##如果存在users这个表了,就删除重新创建

DROP TABLE IF EXISTS cfms.users;              
##如果存在要创建的数据库就删除

##如果不存在这个表了,就重新创建。

CREATE TABLE IF NOT EXISTS cfms.users(

id VARCHAR(36) NOT NULL,                   ##使用UUID,它是36位的

username VARCHAR(10) NOT NULL,             ##用户名

password VARCHAR(32) NOT NULL,             ##这里使用的是32位的MD5加密

sex VARCHAR(4) DEFAULT NULL,                         
##你的性别

userage VARCHAR(3) DEFAULT NULL ,               
##你的年龄

birthday VARCHAR(10) DEFAULT NULL,             
##出生日期

email VARCHAR(100) NOT NULL,              
##电子邮件

edubackground CHAR(1) DEFAULT NULL,                
   ##你的学历

mobile VARCHAR(11) DEFAULT NULL,                
##手机号码

tel VARCHAR(15) DEFAULT NULL,                        
##联系电话

regtime BIGINT(13) DEFAULT NULL,           ##注册时间存的是时间戳,Java的时间戳为13为所以用BIGINT,用FLOAT和DOUBLE都太大

regip VARCHAR(15) DEFAULT NULL,            ##注册的ip地址,为十五位的

logtimes INT(10) DEFAULT 0,                ##登录次数

CONSTRAINT PRIMARY KEY(id)                 ##这个表中id作为主键CONSTRAINT-UNIQUE-KEY(password)##为密码添加唯一性约束

) ENGINE=INNODB DEFAULT CHARSET=utf8;

##文件分类对应的按名称分类的表

DROP TABLE IF EXISTS cfms.namecategory;

CREATE TABLE IF NOT EXISTS cfms.namecategory(

id VARCHAR(36) NOT NULL,                   ##使用UUID,它是36位的

namecategory VARCHAR(100),                 ##文件的类型名称

description text,                          ##文件描述

user_id VARCHAR(36) NOT NULL,              ##文件分类者

CONSTRAINT PRIMARY KEY(id),

CONSTRAINT namecategory_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=INNODB DEFAULT CHARSET=utf8;

##文件分类对应的按文件类型分类的表

DROP TABLE IF EXISTS cfms.typecategory;

CREATE TABLE IF NOT EXISTS cfms.typecategory(

id VARCHAR(36) NOT NULL,                   ##使用UUID,它是36位的

typecategory VARCHAR(100),                 ##文件的类型名称

description text,                          ##文件描述

user_id VARCHAR(36) NOT NULL,              ##文件分类者

CONSTRAINT PRIMARY KEY(id),

CONSTRAINT typecategory_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=INNODB DEFAULT CHARSET=utf8;

##文件分类对应的按文件时间分类的表

DROP TABLE IF EXISTS cfms.timecategory;

CREATE TABLE IF NOT EXISTS cfms.timecategory(

id VARCHAR(36) NOT NULL,                   ##使用UUID,它是36位的

timecategory VARCHAR(100) NOT NULL,        ##文件的类型名称

description text,                          ##文件描述

user_id VARCHAR(36) NOT NULL,              ##文件分类者

CONSTRAINT PRIMARY KEY(id),

CONSTRAINT timecategory_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=INNODB DEFAULT CHARSET=utf8;

##文件分类对应的按文件大小分类的表

DROP TABLE IF EXISTS cfms.sizecategroy;

CREATE TABLE IF NOT EXISTS cfms.sizecategroy(

id VARCHAR(36) NOT NULL,                   ##使用UUID,它是36位的

sizecategroy VARCHAR(100) NOT NULL,        ##文件的类型名称

size_min VARCHAR(20) DEFAULT NULL,         ##文件最小值

size_max VARCHAR(20) DEFAULT NULL,         ##文件最大值

user_id VARCHAR(36) NOT NULL,             ##文件分类者

CONSTRAINT PRIMARY KEY(id),

CONSTRAINT sizecategroy_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=INNODB DEFAULT CHARSET=utf8;

##如果存在文件信息表,那么就删除,如果不存在就创建

DROP TABLE IF EXISTS cfms.files;

##如果不存在这个表,就重新创建

CREATE TABLE IF NOT EXISTS cfms.files(

id VARCHAR(36) NOT NULL,                   ##文件的主键值

name VARCHAR(250) NOT NULL,                ##上传文件的名称,文件的uuid名

realname VARCHAR(250) NOT NULL,            ##上传文件的真是名称

path VARCHAR(250) NOT NULL,                ##文件的位置

uptime BIGINT(13),                         ##文件的上传时间

description text,                          ##文件的描述

size BIGINT(13) DEFAULT NULL,              ##文件大小

keyword VARCHAR(100) DEFAULT NULL,         ##文件关键字

user_id VARCHAR(36) NOT NULL,              ##上传人

namecategory_id VARCHAR(36) NOT NULL,

typecategory_id VARCHAR(36) NOT NULL,

timecategory_id VARCHAR(36) NOT NULL,

CONSTRAINT PRIMARY KEY(id),

CONSTRAINT files_user_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT files_namecategory_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT files_typecategory_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT files_timecategory_id_FK FOREIGN KEY(user_id) REFERENCES cfms.users(id) ON DELETE CASCADE ON UPDATE CASCADE

)ENGINE=INNODB DEFAULT CHARSET=utf8;



时间: 2024-12-09 02:08:01

Mysql数据库,表,字符集,主外键等创建的sql模板的相关文章

PostgreSql查看当前表的主外键关系

PostgreSql查看当前表被哪些引用作参考表 -- pg_CONSTRAINT.contype : p(主键), f(外键), u(唯一), c(检查)-- 查看当前表IDSELECT oid, relname FROM pg_class WHERE relname = 'syslogfilter';-- 查看引用当前表ID作参考表的主外键约束信息SELECT * FROM pg_CONSTRAINT WHERE confrelid = '24935';-- 查看那些外键的名称SELECT

SQLserver中的视图与主外键的创建

一.背景 原来学过数据库的相关内容,只是形式上的,从来也没有实践过,徐徐飘过而已,如今在做机房时,很多知识需要用到视图,才开始去慢慢的实践. 视图:我理解的就是一张表,它把我们所需要的某个表或某几个表中的部分信息提取出来,形成了一张临时的表. 它主要有两个优点:1.简单,它呈现给我们的数据就是我们想要的数据,没有多余的. 2.安全,提供给用户它们权限范围内的数据 我为什么会用到视图?举一个简单的例子,在查询用户信息时,我们可能会用到两张表中的内容.那么这个时候我就需要将两张表中我需要的数据提取出

MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表

今日重点:外键 一对多 多对多      一对一 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一.引言: 我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id

关于表的主外键关系练习 师生 分数表

--创建三个表 --表一:学生表 student--学号:code int (主键)从1开始--姓名:name varchar(50)--性别:sex char(10)--班级:banji char(10)--语文教师编号:yujiao int --数学教师编号:yujiao int --英语教师编号:yujiao int --表二:教师表 teacher--教师名字:name --教师编号:code int (主键) 从1001开始--负责课程:lesson char(10)(语文.数学.英语

SQL SERVER中获取表间主外键关系

sql server 2008中的主外键关系获取方式: 转自:http://www.cnblogs.com/ke10/archive/2012/06/11/2544655.html SELECT OBJECT_NAME(con.constid) '关系名' ,OBJECT_NAME(sf.fkeyid) '主键表' ,fcol.name '主键' ,OBJECT_NAME(sf.rkeyid) '外键表' ,rcol.name '外键',st.name'数据类型'FROM sysforeignk

Mysql 截断表时由于外键约束无法完成时的处理方法

而在MySQL?5.5中,存在外键约束的InnoDB表,在任何情况下都不允许进行Truncate操作,并报错(Error 1701),如果朋友你实在是有点强迫症,那么可以用下面的方式拐着弯解决: 导出数据库数据位.sql文件. 随便用个文本编辑器打开文件. 手动编辑一下.sql文件,怎样编辑相信你看了下面这个图就知道了 4.再将编辑好的.sql文件重新导入就OK了.

Sql中常用的创建表 约束 主外键 增删改查的语句

创建数据库 1 USE master; 2 GO 3 --日记数据库 4 create database DiaryBase 5 on 6 ( 7 name=DiaryBase_Dat,--逻辑名称 8 FILENAME='c:\DiaryBase.log', 9 size=10MB, 10 maxsize=50MB, 11 FILEGROWTH=5MB 12 ) 13 log on 14 ( 15 name=DiaryBase_Log, 16 FILENAME='c:\DiaryBase.md

SQL Server中用SQL命令建表和主外键约束

建立dept和emp表,并用dept表中的dept_id设置为emp表的外键 create table dept ( dept_name nvarchar(20) not null, dept_address nchar(20), dept_id int constraint PK_dept primary key --dept表的主键,命名为PK_dept ) create table emp ( emp_name nvarchar(20) not null, emp_sex nchar(1)

数据库几张表有主外键关系怎么删除

1. trigger ,数据库触发器操作.在数据库完成,先删子表后删主表,连接数据库次数太多,性能估计不太好. 2. 级联删除 在创建表时定义,如下所示的b表: create table a ( id varchar(20) primary key, password varchar(20) not null ) create table b ( id int identity(1,1) primary key, name varchar(50) not null, userId varchar