数据(结构)定义语言DDL(Data Definition Language),是用于创建和修改数据库表结构的语言
常用的语句:create, alter, drop, rename
-- 创建数据库 并设置字符集编码
CREATE DATABASE schooldb CHARSET utf8
-- 创建数据库 并判断是否存在 设置字符集
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8 如果数据库已经存在,就会报错
-- 删除数据库(慎重!!!)
DROP DATABASE nba2
-- 修改数据库字符集 注意mysql中不支持修改数据库名
ALTER DATABASE schooldb CHARSET utf8
数据放到表中,表放到库中
一个 数据库中可以有多张表,每张表有一个自己的名字,用来标识自己,表名是惟一的
表具有一些特性,这些特性定义了数据在表中如何存储,类似java中的类
表由列组成,也可以称为字段,所有表都是由一个或多个列组成,每一列类似java类中的属性
表中的数据是按行存储的,每一行类似于java中的对象
-- 确定表名 学生信息表
-- 确定列名 学号,姓名,性别,生日,身高,电话,地址,注册时间
-- 字符类型是需要给定长度的
-- 数据类型 char(4) 定长(长度是固定的 例如给定长度是4,即使存储一个字符,仍占4个长度)
-- varchar(4) 最大存储4个字符,如果只存储一个字符,那么就占1个长度
-- date 年月日 -- datetime 年月日 时分秒 -- 整数 5 TINYINT 1 SMALLINT 2 MEDIUMINT 3 INT 4 BIGINT 8 -- 浮点数 float 4 double 8 -- BLOB(大容量用来存储图片) text(大容量的字符串)例如新闻,小说 -- 创建一个基本的没有任何约束的表结构
-- 创建表,并为表添加约束
-- 主键约束:每一张表可以添加一个主键约束,不能为空,不能重复,可以表示表中唯一的一条记录
-- 不能为空约束:值不能为空 主键一张表只能有一个 不能为空,不能重复可以是多个列
-- 唯一约束:值不能重复
-- 检查约束(自定义条件)
-- 外键约束(多表关联时讲)
-- mysql 支持主键自动增长AUTO_INCREMENT 要设置自增,必须是整数类型
CREATE TABLE student(
NO INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号主键',
NAME VARCHAR(6) NOT NULL COMMENT '姓名', gender CHAR(1) DEFAULT '男',
birthday DATE COMMENT '生日', height FLOAT(3,2) CHECK(height<2.5),
phone VARCHAR(15) NOT NULL UNIQUE COMMENT '电话',
address VARCHAR(30),
reg_time DATETIME
)
注意:创建表最后一行不用加逗号,否则会报错,逗号必须是英文的
-- 删除表 删除表结构,表中数据也就没有了
DROP TABLE IF EXISTS stu
-- 修改表名
RENAME TABLE student TO stu
-- 复制表结构 数据进行备份的时候创建一个相同结构的临时表
CREATE TABLE stu LIKE student