创建数据库

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笔记(一)之新建数据库和数据表的更多相关文章

  1. MySQL基础(2) | 数据库、数据表

    MySQL基础(2) | 数据库.数据表 基本语法 数据库 #创建 CREATE DATABASE IF NOT EXISTS test_db_char DEFAULT CHARACTER SET u ...

  2. MySQL 笔记整理(13) --为什么数据表删掉一半,表文件大小不变?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 13) --为什么数据表删掉一半,表文件大小不变? 我们还是以MySQL ...

  3. MySQL数据库 | 数据库和数据表的基本操作

    第一篇博文,一个小小的纪念仪式^-^ 以下正文 一.数据库的基本操作 --数据库的操作 --连接数据库 mysql -uroot -p密码 mysql -uroot -pmysql --退出数据库 e ...

  4. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...

  5. 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息

    概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没 ...

  6. mysql 导入导出数据库、数据表

    Linux下 均在控制台下操作. 导入数据库: 前提:数据库和数据表要存在(已经被创建) (1)将数据表 test_user.sql 导入到test 数据库的test_user 表中 [root@te ...

  7. mysql 关于数据库和数据表的基本操作

    -- 备注: -- .每一条mysql语句后面都需要加上半角分号 -- .可以用``符号(1键旁边的那个键)将字段名称引用起来,如`Name` -- .mysql在windows下不区分大小写,在li ...

  8. C# 利用mysql.data 在mysql中创建数据库及数据表

    C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...

  9. mysql 导入导出数据库、数据表的方法

    mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...

随机推荐

  1. 那些让 Web 开发者们深感意外的事情

    作为 Web 开发者,对自己的行业前景,人人都有自己的看法,然而,任何行业都有出人意料的地方.著名的 Web 开发设计博客 Nope.com 曾向他们的读者做了一个调查,请他们列举 Web 开发领域那 ...

  2. 使用asp.net改变图片颜色

    最近奇葩经理提出了奇葩的需求,要能在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色,尼玛楼主的感受你们不懂!于是有了下面的代码... 用法:调用update_pixelColor方法并传参数 ...

  3. 【BZOJ】1066: [SCOI2007]蜥蜴

    [算法]网络流-最大流(dinic) [题解] 构图思路: 因为石柱高度是可以被消耗的,即一根石柱可通过的蜥蜴数量有限,取舍问题中这样表示容量的属性显然可以作为网络流中的边. 于是将一根石柱拆成顶部和 ...

  4. 垂直水平居中--css3

    在移动前端制作中,很多新的css3特性能够帮助我们更好的制作.例如这个垂直水平居中问题,就有一个简单的代码可以解决: 利用CSS3的transform:translate .center{ width ...

  5. lintcode 443.岛屿的个数

    在v2ex上看到有人提到了这个,感觉挺简单的,没忍住还是试一下.... 基本的染色法. AC代码: public class Solution { /** * @param grid a boolea ...

  6. Linux 官方镜像源汇总

    原文链接   参考链接 1.企业贡献:阿里云开源镜像站: http://mirrors.aliyun.com 搜狐开源镜像站:http://mirrors.sohu.com网易开源镜像站:http:/ ...

  7. javascript复习笔记

    /* Javascript:用来在页面中编写特效,和HTML.CSS一样都是有浏览器解析 Javascript语言: 一.JS如何运行(javascript,jscript,vbscript,appl ...

  8. 可能是是最全的Springboot基础视频分享,告别无视频可学

    一头扎进SpringBoot视频教程 SpringBoot入门 2017年-张志君老师-SpringBoot(新增) 欢迎关注我的微信公众号:"Java面试通关手册" 回复关键字& ...

  9. 63.UniquePaths II---dp

    题目链接 题目大意:与62题类似,只是这个题中间有障碍. 法一:dfs,依旧超时.代码如下: public int uniquePathsWithObstacles(int[][] obstacleG ...

  10. PCA算法和SVD

    如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值.这里可以将特征值为负,特征向量旋转180度,也可看成方向不变,伸缩 ...