创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
删除数据库 MySql删除数据库的语法: DROP DATABASE IF EXISTS databaseName; CREATE DATABASE databaseName;
回顾表的基础知识 建表的基本步骤: MySql中的数据类型 确定表中有哪些列 确定每列的数据类型 给表添加各种约束 创建各表之间的关系 整型数据:int smallint 浮点数据:float …… 建表的基本步骤: 确定表中有哪些列 确定每列的数据类型 给表添加各种约束 创建各表之间的关系 MySql中的数据类型 字符数据 固定长度:char(6) 可变长度: varchar(10) …… 布尔数据(真/假) bit: 1/ 0 日期数据 datetime
包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。 创建表 建表的语法 CREATE TABLE 表名 ( 字段1 数据类型 列的特征, 字段2 数据类型 列的特征, ... ) 先展示使用企业管理器时涉及到的一些关键参数,如红色标识所示。 列的特征: 包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。
建表示例 1 NUMERIC (18,0) 代表18位数字,小数位数为0 USE stuDB --将当前数据库设置为stuDB CREATE TABLE stuInfo /*-创建学员信息表-*/ ( stuName VARCHAR(20) NOT NULL , --姓名,非空(必填) stuNo CHAR(6) NOT NULL, --学号,非空(必填) stuAge INT NOT NULL, --年龄,INT类型默认为4个字节 stuID VARCHAR(20) --身份证号 stuAddress TEXT --住址,允许为空,即可选输入 ) IDENTITY(起始值,递增量) 讲解要点: 1)强调建表的语法 2)解释NUMERIC(18,0)的含义 3)解释IDENTITY (1,1),的含义 演示:创建学员信息表stuInfo
建表示例 2 CREATE TABLE stuMarks ( ExamNo CHAR(7) NOT NULL, --考号 stuNo CHAR(6) NOT NULL, --学号 writtenExam INT NOT NULL, --笔试成绩 LabExam INT NOT NULL --机试成绩 ) 演示:创建学员成绩表 stuMarks
删除表 如果当前数据库中已存在stuInfo表,再次创建时系统将提示出错 。如何解决呢?
删除表 删除表的语法: DROP TABLE 表名 USE stuDB --将当前数据库设置为stuDB ,以便在stuDB数据库中建表 DROP TABLE IF EXISTS mystu; CREATE TABLE mystu1 ( id INT AUTO_INCREMENT PRIMARY KEY, mname VARCHAR(20) DEFAULT 'bbb', mtime DATETIME NOT NULL );
回顾MySql的约束 约束的目的:确保表中数据的完整型 常用的约束类型: 主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空 唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束 默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男” 外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列 提问学员:回顾SQL Server中的约束类型有哪些?
添加约束 添加约束的语法: 约束名的取名规则推荐采用:约束类型_约束字段 主键(Primary Key)约束:如 PK_stuNo ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明 约束名的取名规则推荐采用:约束类型_约束字段 主键(Primary Key)约束:如 PK_stuNo 唯一(Unique Key)约束:如 UQ_stuID 默认(Default Key)约束:如 DF_stuAddress 检查(Check Key)约束:如 CK_stuAge 外键(Foreign Key)约束:如 FK_stuNo 强调: 1)添加约束的语法 2)规范的约束命名
主键约束示例 ALTER TABLE stuInfo ADD CONSTRAINT PRIMARY KEY (stuNo) ADD CONSTRAINT PRIMARY KEY(id); 添加主键约束) 约束没有名称
唯一约束示例 ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID) ADD CONSTRAINT UQ_ stuNo UNIQUE (stuNo); 添加唯一约束 约束有名称 UQ_ stuNo
默认约束示例 ALTER TABLE stuInfo ALTER sage SET DEFAULT 20; 添加默认约束 约束没有名称
检查约束示例 MySql不支持检查约束 ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40) MySql不支持检查约束
外键约束示例 ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo) ALTER TABLE stuMarks ADD CONSTRAINT fk_stu_mark FOREIGN KEY (fk_stu) REFERENCES stuinfo(id) 建表的时候直接加也可以 CREATE TABLE stuMarks( sid INT NOT NULL PRIMARY KEY AUTO_INCREMENT,sen INT NOT NULL, fk_stu_a INT NOT NULL , FOREIGN KEY (fk_stu_a) REFERENCES stuinfo(id)); 约束有名称
修改表类型 ALTER TABLE stumark MODIFY sen VARCHAR(20); 修改表字段类型
增加表字段 ALTER TABLE stumarks ADD COLUMN chi INT(11); 增加表字段
删除表字段 ALTER TABLE stumarks DROP COLUMN chi ; 删除表字段
字段改名 ALTER TABLE stumarksbbb CHANGE sen s_en INT(20); Change和modify都可以修改表的定义,不同的是change后面需要写两次列明,不方便.但是change的优点 是可以修改列名称,modify则不能
更改表明 ALTER TABLE stumark RENAME stu_marks; 更改表明