创建数据库

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. maven使用过程中遇到的问题总汇

    1:web.xml is missing and <failOnMissingWebXml> is set to true 造成原因: 使用maven创建项目时有时在pom.xml的war ...

  2. 在Unity中实现屏幕空间反射Screen Space Reflection(2)

    traceRay函数 在上一篇中,我们有如下签名的traceRay函数 bool traceRay(float3 start, float3 direction, out float2 hitPixe ...

  3. vista风格的cms企业html后台管理系统模板——后台

    链接:http://pan.baidu.com/s/1c1Cv99e 密码:20yz

  4. Tinyos 第三版Make系统

    1.make系统安装 cd tools ./Bootstrap ./configure make sudo make install 2.make系统结构 3.第三版Makerules文件部分解析 # ...

  5. Neuroph studio 入门教程

    PERCEPTRON Perceptron is a simple two layer neural network with several neurons in input layer, and ...

  6. 南邮PHP反序列化

    题目如下: <?php class just4fun { var $enter; var $secret; } if (isset($_GET['pass'])) { $pass = $_GET ...

  7. python设计模式之常用创建模式总结(二)

    前言 设计模式的创建模式终极目标是如何使用最少量最少需要修改的代码,传递最少的参数,消耗系统最少的资源创建可用的类的实例对象. 系列文章 python设计模式之单例模式(一) python设计模式之常 ...

  8. Linux进程的创建函数fork()及其fork内核实现解析【转】

    转自:http://www.cnblogs.com/zengyiwen/p/5755193.html 进程的创建之fork() Linux系统下,进程可以调用fork函数来创建新的进程.调用进程为父进 ...

  9. keepalived主备切换后的arp问题【转】

    使用keepalived的时候主机挂了,备机显示绑定了VIP.但是此时实际还是不能访问.其实就是网关的arp缓存没有刷新.   在服务器上执行一下就行了 arping -I eth0 -c 5 -s ...

  10. java中8种数据类型和默认值所占字节数

    java 8种基本数据类型的默认值及所占字节数 通过一段代码来测试一下 8种基本数据类型的默认值 1 package dierge; 2 3 public class Ceshi { 4 int a; ...