定义数据表MySQL课件

上传人:石磨 文档编号:183738487 上传时间:2021-06-12 格式:PPT 页数:33 大小:334KB
返回 下载 相关 举报
定义数据表MySQL课件_第1页
第1页 / 共33页
定义数据表MySQL课件_第2页
第2页 / 共33页
定义数据表MySQL课件_第3页
第3页 / 共33页
定义数据表MySQL课件_第4页
第4页 / 共33页
定义数据表MySQL课件_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《定义数据表MySQL课件》由会员分享,可在线阅读,更多相关《定义数据表MySQL课件(33页珍藏版)》请在金锄头文库上搜索。

1、第3章 数据库和表,3.1 数据库的创建和使用,1,定义数据表MySQL,复习,1、 创建数据库 CREATE DATABASE | SCHEMA IF NOT EXISTS db_name create_specification , create_specification . 2. 修改数据库 ALTER DATABASE | SCHEMA db_name alter_specification , alter_specification . 3. 删除数据库 DROP DATABASE IF EXISTS db _ name 4、选择数据库 USE db_name; 5. 查看数据库

2、SHOW DATABASES; 6. 查看当前使用数据库 select database()查看当前使用数据库,创建数据库test1,2,定义数据表MySQL,3.2 创建表,1、创建表 创建表使用CREATE TABLE命令。 语法格式: CREATE TEMPORARY TABLE IF NOT EXISTS tbl_name ( column_definition , . | index_definition ) table_option select_statement; 说明: TEMPORARY:该关键字表示用CREATE命令新建的表为临时表。不加该关键字创建的表通常称为持久表,在

3、数据库中持久表一旦创建将一直存在,多个用户或者多个应用程序可以同时使用持久表。有时候需要临时存放数据,例如,临时存储复杂的SELECT语句的结果。此后,可能要重复地使用这个结果,但这个结果又不需要永久保存。这时,可以使用临时表。用户可以像操作持久表一样操作临时表。只不过临时表的生命周期较短,而且只能对创建它的用户可见,当断开与该数据库的连接时,MySQL会自动删除它们。 IF NOT EXISTS:在建表前加上一个判断,只有该表目前尚不存在时才执行CREATE TABLE操作。用此选项可以避免出现表已经存在无法再新建的错误。 table_name:要创建的表的表名。该表名必须符合标志符规则,如

4、果有MySQL保留字必须用单引号括起来。,3,定义数据表MySQL,3.2 创建表,4,定义数据表MySQL,3.2 创建表,1、创建表 创建表使用CREATE TABLE命令。 语法格式: CREATE TEMPORARY TABLE IF NOT EXISTS tbl_name ( column_definition , . | index_definition ) table_option ; 说明: column_definition:列定义,包括列名、数据类型,可能还有一个空值声明和一个完整性约束。 index_definition:表索引项定义,主要定义表的索引、主键、外键 tab

5、le_option:用于描述表的选项。,5,定义数据表MySQL,3.2 创建表,列定义column_definition格式如下: col_name type NOT NULL | NULL DEFAULT default_value AUTO_INCREMENT UNIQUE KEY | PRIMARY KEY COMMENT string reference_definition 说明: col_name:表中列的名字。列名必须符合标志符规则,长度不能超过64个字符,而且在表中要唯一。如果有MySQL保留字必须用单引号括起来。 type:列的数据类型,有的数据类型需要指明长度n,并用括号

6、括起 NOT NULL | NULL:指定该列是否允许为空。如果不指定,则默认为NULL。 AUTO_INCREMENT:设置自增属性,只有整型列才能设置此属性。当插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,在这里value是此前表中该列的最大值。AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。,6,定义数据表MySQL,3.2 创建表,列定义column_definition格式如下: col_name type NOT NULL | NULL DEFAULT default_value A

7、UTO_INCREMENT UNIQUE KEY | PRIMARY KEY COMMENT string reference_definition 说明: DEFAULT default_value:为列指定默认值,默认值必须为一个常数。其中,BLOB和TEXT列不能被赋予默认值。如果没有为列指定默认值,MySQL自动地分配一个。如果列可以取NULL值,默认值就是NULL。如果列被声明为NOT NULL,默认值取决于列类型: (1)对于没有声明AUTO_INCREMENT属性的数字类型,默认值是0。对于一个AUTO_INCREMENT列,默认值是在顺序中的下一个值。 (2)对于除TIMEST

8、AMP以外的日期和时间类型,默认值是该类型适当的“零”值。对于表中第一个TIMESTAMP列,默认值是当前的日期和时间。 (3)对于除ENUM的字符串类型,默认值是空字符串。对于ENUM,默认值是第一个枚举值。 UNIQUE KEY | PRIMARY KEY:PRIMARY KEY和UNIQUE KEY都表示字段中的值是唯一的。PRIMARY KEY表示设置为主键,一个表只能定义一个主键,主键一定要为NOT NULL。 COMMENT string:对于列的描述,string是描述的内容。 reference_definition:指定参照的表和列,具体定义在第8章参照完整性中介绍。,7,定

9、义数据表MySQL,3.2 创建表,表选项table_option定义如下 ENGINE | TYPE = engine_name/*存储引擎*/ | AUTO_INCREMENT = value/*初始值*/ | AVG_ROW_LENGTH = value/*表的平均行长度*/ | DEFAULT CHARACTER SET charset_name COLLATE collation_name/*默认字符集和校对*/ | CHECKSUM = 0 | 1/*设置为1表示求校验和*/ | COMMENT = string/*注释*/ | CONNECTION = connect_strin

10、g/*连接字符串*/ | MAX_ROWS = value/*行的最大数*/ | MIN_ROWS = value/*列的最小数*/ | PACK_KEYS = 0 | 1 | DEFAULT | PASSWORD = string/*对.frm文件加密*/ | DELAY_KEY_WRITE = 0 | 1/*对关键字的更新*/ | ROW_FORMAT = DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT /*定义各行应如何储存*/ | UNION = (tbl_name,tbl_name.)/*表示哪个表应该合并*/ | INSERT_

11、METHOD = NO | FIRST | LAST /*是否执行INSERT语句*/ | DATA DIRECTORY = absolute path to directory/*数据文件的路径*/ | INDEX DIRECTORY = absolute path to directory/*索引的路径*/,8,定义数据表MySQL,3.2.1 数据类型,MySQL支持多种数据类型,数值类型、日期/时间类型和字符串(字符)类型不区分大小写。 (1) 数值数据类型 MySQL支持所有标准SQL数值数据类型。 MySQL支持 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUM

12、INT,INT 和 BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。 MySQL 支持3个浮点类型是 FLOAT、DOUBLE 和 DECIMAL 类型。FLOAT 数值类型用于表示单精度浮点数值,而 DOUBLE 数值类型用于表示双精度浮点数值。 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。,9,定义数据表MySQL,3.2.1 数据类型,(1) 数值数据类型,10,定义数据表MySQL,3.2.1 数据类型,(2) 字符串数据类型,11,定义数据表MySQL,3.2.1 数据类型,(2) 字符串数据类型 TEXT 和 BLOB

13、类型 对于字段长度要求超过 255 个的情况下,MySQL 提供了 TEXT 和 BLOB 两种类型。根据存储数据的大小,它们都有不同的子类型。这些大型的数据用于存储文本块或图像、声音文件等二进制数据类型。,12,定义数据表MySQL,3.2.1 数据类型,(3)日期和时间数据类型,13,定义数据表MySQL,3.2.1 数据类型,(4)复合类型 MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。一个 ENUM 类型只允许从一个集合中取得一个值;而 SET 类型允许从一个集合中取得任意多个值。,1

14、4,定义数据表MySQL,3.2.2 NULL值,空值NULL通常表示未知、不可用或将在以后添加的数据。若一个列允许为空值,则向表中输入记录值时可不为该列给出具体值;而一个列若不允许为空值,则在输入时必须给出该列的具体值。 注意:表的关键字不允许为空值。空值不能与数值数据0或字符类型的空字符混为一谈。任意两个空值都不相等。,15,定义数据表MySQL,3.2.1 创建表-例,【例3】创建学生成绩数据库(xscj)中,并在其中创建一个学生情况表,表名xs。 输入以下命令: CREATE DATABSExscj; USE xscj CREATE TABLE xs ( 学号 char(6) not

15、null primary key, 姓名 char(8) not null, 专业名 char(10) null, 性别 tinyint(1)not null default 1, 出生日期date not null, 总学分 tinyint(1) null, 照片 blob null, 备注 text null ),16,定义数据表MySQL,用show tables命令显示xscj数据库中产生了学生(xs)表,用describe xs/desc xs/show columns from xs命令可以显示xs表的结构。如图所示。,3.2.1 创建表-例,17,定义数据表MySQL,练习,1、

16、建立db_school数据库 2、在数据库中建立一张学生表tb_student 3、按照P36表3.1建立学生表,其中字符型用varchar, 前三列非空,籍贯默认为汉。学号为主键。 4、在mysql内查看表结构,18,定义数据表MySQL,3.2 创建表,2. 查看表 SHOW TABLES用于查看表,显示表的名称。 SHOW COLUMNS FROM tbl_name 或 DESC tbl_name 显示表的结构 Show Create table 可以查看建立表时的语句以及引擎、字符集,19,定义数据表MySQL,3.2 创建表,3. 复制表 语法格式: CREATE TEMPORARY TABLE IF NOT EXISTS tbl_name ( ) LIKE old_tbl_name | AS (select_statement); 说明: 使用LIKE关键字创建一个与old_table_name表相同结构的新表,列名、数据类型、空指定和索引也将复制,但是表的内容不会复制,因此创建的新表是一个空表。使用AS关键字可以复制表的内容,但索引和完整性约束是不会复制的。select_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学研究

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号