MySQL笔记(一)之新建数据库和数据表
创建数据库
CREATE DATABASE database_name
创建数据表
CREATE TABLE table_name
(
列1 数据类型,
列2 数据类型,
列3 数据类型,
....
)
#常见的数据类型
integer(size) 整型
int(size) 整型
numeric(size,d) 浮点型
char(size) 固定长度字符型
varchar(size) 可变长度字符型
date(yyyymmdd) 日期类型
数据表的约束
NOT NULL
强制列不接受 NULL 值
CREATE TABLE Persons
(
Id_P int NOT NULL,
City varchar(255)
)
DEFAULT
用于向列中插入默认值。
- 创建时添加约束
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
OrderDate date DEFAULT GETDATE() # 可以使用函数
)
- 创建后添加约束
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'
- 撤销约束
ALTER TABLE Persons
ALTER City DROP DEFAULT
UNIQUE
唯一标识数据库表中的每条记录,一个数据表中可以有多个UNIQUE约束。
- 创建时添加UNIQUE约束
CREATE TABLE table_name
(
Id_P int NOT NULL,
City varchar(255),
UNIQUE (Id_P) # 为一列指定UNIQUE约束
CONSTRAINT uc_PersonID UNIQUE (Id_P,City) # 命名UNIQUE 约束,并且为多列指定UNIQUE约束
)
- 创建后添加约束
#添加一个约束
ALTER TABLE Persons
ADD UNIQUE (Id_P)
#命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
- 撤销UNIQUE约束
ALTER TABLE table_name
DROP INDEX uc_PersonID
PRIMARY KEY
主键必须包含唯一的值,主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
- 创建时添加PRIMARY KEY约束
CREATE TABLE Persons
(
Id_P int NOT NULL,
City varchar(255),
PRIMARY KEY (Id_P) # 为一列指定UNIQUE约束
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,City) #命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束
)
- 创建后添加PRIMARY KEY 约束
ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
- 撤销 PRIMARY KEY 约束
ALTER TABLE Persons
DROP PRIMARY KEY
FOREIGN KEY
指向另一个表中的 PRIMARY KEY
- 创建时添加FOREIGN KEY约束
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) # 一个约束
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) # 命名约束且指定多个约束
)
- 创建后添加PFOREIGN KEY 约束
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
- 撤销 FOREIGN KEY 约束
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
CHECK
束用于限制列中的值的范围
- 创建时添加CHECK约束
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
- 创建后添加CHECK约束
ALTER TABLE Persons
ADD CHECK (Id_P>0)
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
- 撤销 CHECK 约束
ALTER TABLE Persons
DROP CHECK chk_Person
MySQL笔记(一)之新建数据库和数据表的更多相关文章
- MySQL基础(2) | 数据库、数据表
MySQL基础(2) | 数据库.数据表 基本语法 数据库 #创建 CREATE DATABASE IF NOT EXISTS test_db_char DEFAULT CHARACTER SET u ...
- MySQL 笔记整理(13) --为什么数据表删掉一半,表文件大小不变?
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 13) --为什么数据表删掉一半,表文件大小不变? 我们还是以MySQL ...
- MySQL数据库 | 数据库和数据表的基本操作
第一篇博文,一个小小的纪念仪式^-^ 以下正文 一.数据库的基本操作 --数据库的操作 --连接数据库 mysql -uroot -p密码 mysql -uroot -pmysql --退出数据库 e ...
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...
- 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息
概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没 ...
- mysql 导入导出数据库、数据表
Linux下 均在控制台下操作. 导入数据库: 前提:数据库和数据表要存在(已经被创建) (1)将数据表 test_user.sql 导入到test 数据库的test_user 表中 [root@te ...
- mysql 关于数据库和数据表的基本操作
-- 备注: -- .每一条mysql语句后面都需要加上半角分号 -- .可以用``符号(1键旁边的那个键)将字段名称引用起来,如`Name` -- .mysql在windows下不区分大小写,在li ...
- C# 利用mysql.data 在mysql中创建数据库及数据表
C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...
- mysql 导入导出数据库、数据表的方法
mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...
随机推荐
- 关于变长数组的一点小想法-C语言定义数组但是数组长度不确定怎么办
很多数据机构,比如栈,链表等,都可以动态分配存储空间 那么数组呢?一般声明时都要指定数组长度,那么数组可以实现动态分配么? 假设数组存的是int型 那么 你先申请10个元素 int* a = (int ...
- AJAX流程
创建一个XHR对象 var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari ...
- SpringCloud (一)Eureka注册中心搭建
前提 系统安装jdk1.8及以上,配置好maven的ide(这里用idea进行演示,maven版本3.5,配置阿里云源) 项目搭建 新建一个maven项目,创建最简单的那种就好,项目名这里为Eurek ...
- Spring: J2EE框架
Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本.该框架基于 Exper ...
- 2017ACM暑期多校联合训练 - Team 2 1006 HDU 6050 Funny Function (找规律 矩阵快速幂)
题目链接 Problem Description Function Fx,ysatisfies: For given integers N and M,calculate Fm,1 modulo 1e ...
- 127.0.0.1、localhost、0.0.0.0的区别
在开发web应用的测试环境中,如果希望同一个局域网的同事通过内网IP访问自己的应用,则需要把web服务监听的ip地址改为0.0.0.0.为什么用127.0.0.1不行,而用0.0.0.0就可以呢? f ...
- 手机网页的头部meta的相关配置~~
今天使用sublime写手机端网页的时候,发现木有meta的自动生成手机网页的快捷键·~ 然后就去网上巴拉,准备存储一份~~哈哈 一.天猫 <title>天猫触屏版</title&g ...
- 前端内容转译html
其他地方采集过来的可以转译下,试试这个:var returnReg = /\n/g; detail = detail.replace(returnReg,""); var reg ...
- redis常见数据操作
redis中有5种常见的数据类型,针对这5种数据类型有着相应的数据操作. 1.String(键值对为String - String) set k1 v1 get k1 getset k1 v1 - h ...
- /proc文件夹介绍
Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过 ...