MySQL学习教程第2章.ppt
《MySQL学习教程第2章.ppt》由会员分享,可在线阅读,更多相关《MySQL学习教程第2章.ppt(45页珍藏版)》请在三一办公上搜索。
1、网络数据库技术应用,第二章 数据库和表,2.1 命令方式创建数据库和表,安装完后,系统自动创建information_schema数据库和mysql数据库,如果删除这些数据库将MySQL将无法正常工作。可用show databases来查看已有的数据库对数据库的操作主要有三种:创建 使用 删除,2.1.1 创建数据库,使用CREATE DATABASE或CREATE SCHEMA命令可以创建数据库。语法格式:CREATE DATABASE|SCHEMA IF NOT EXISTS db_name create_specification,create_specification.其中creat
2、e_specification:DEFAULT CHARACTER SET charset_name|DEFAULT COLLATE collation_name,2.1.1 创建数据库,说明:db_name:数据库名。在文件系统中,MySQL的数据存储区将以目录方式表示MySQL数据库。因此,命令中的数据库名字必须符合操作系统文件夹命名规则。值得注意的是:在MySQL中是不区分大小写的。IF NOT EXISTS:在建数据库前进行判断,只有该数据库目前尚不存在时才执行CREATE DATABASE操作。用此选项可以避免出现数据库已经存在而再新建的错误。,2.1.1 创建数据库,DEFAULT
3、:指定默认值。CHARACTER SET:指定数据库字符集,charset_name为字符集名称。COLLATE:指定字符集的校对规则,collation_name为校对规则名称。,【例1】创建一个名为test1的数据库。,MySQL不允许两个数据库使用相同的名字,使用IF NOT EXISTS从句可以不显示错误信息。,创建了数据库之后使用USE命令可指定当前数据库。语法格式:USE db_name;说明:这个语句也可以用来从一个数据库“跳转”到另一个数据库,在用CREATE DATABASE语句创建了数据库之后,该数据库不会自动成为当前数据库,需要用这条USE语句来指定。注意:在MySQL中
4、,每一条SQL语句都以“;”作为结束标志。,修改数据库,数据库创建后,如果需要修改数据库的参数,可以使用ALTER DATABASE命令。语法格式:ALTER DATABASE|SCHEMA db_name alter_specification,alter_specification.说明:ALTER DATABASE用于更改数据库的全局特性,这些特性储存在数据库目录中的db.opt文件中。用户必须有对数据库进行修改的权限,才可以使用 ALTER DATABASE。修改数据库的选项与创建数据库相同,功能不再重复说明。如果语句中数据库名称忽略,则修改当前(默认)数据库。,【例2】修改数据库my
5、data(假设mydata已经创建)的默认字符集和校对规则。ALTER DATABASE mydataDEFAULT CHARACTER SET gb2312DEFAULT COLLATE gb2312_chinese_ci;,删除数据库,已经创建的数据库需要删除,使用DROP DATABASE命令。语法格式:DROP DATABASE IF EXISTS db_name其中,db_name是要删除的数据库名。可以使用IF EXISTS子句以避免删除不存在的数据库时出现的MySQL错误信息。,2.1.2 表操作,表的操作主要有三种:创建表结构 修改表结构修改表名复制表 删除表表结构和表表结构只
6、是表的基本结构,不包括表中数据;表指表结构和表中数据。,创建表结构,创建表使用CREATE TABLE命令。语法格式:CREATE TEMPORARY TABLE IF NOT EXISTS tbl_name(column_definition,.|index_definition)table_option select_statement;,说明:TEMPORARY:该关键字表示用CREATE命令新建的表为临时表。不加该关键字创建的表通常称为持久表,在数据库中持久表一旦创建将一直存在,多个用户或者多个应用程序可以同时使用持久表。有时候需要临时存放数据,例如,临时存储复杂的SELECT语句的结
7、果。此后,可能要重复地使用这个结果,但这个结果又不需要永久保存。这时,可以使用临时表。用户可以像操作持久表一样操作临时表。只不过临时表的生命周期较短,而且只能对创建它的用户可见,当断开与该数据库的连接时,MySQL会自动删除它们。,IF NOT EXISTS:在建表前加上一个判断,只有该表目前尚不存在时才执行CREATE TABLE操作。用此选项可以避免出现表已经存在无法再新建的错误。table_name:要创建的表的表名。该表名必须符合标志符规则,如果有MySQL保留字必须用单引号括起来。column_definition:列定义,包括列名、数据类型,可能还有一个空值声明和一个完整性约束。,
8、创建表结构,index_definition:表索引项定义,主要定义表的索引、主键、外键等。select_statement:可以在CREATE TABLE语句的末尾添加一个SELECT语句,在一个表的基础上创建表。table_option:用于描述表的选项。表选项table_option定义如下:说明:表中大多数的选项涉及的是表数据如何存储及存储在何处。多数情况下,不必指定表选项。ENGINE选项是定义表的存储引擎。,ENGINE|TYPE=engine_name/*存储引擎*/|AUTO_INCREMENT=value/*初始值*/|AVG_ROW_LENGTH=value/*表的平均行长
9、度*/|DEFAULT CHARACTER SET charset_name COLLATE collation_name/*默认字符集和校对*/|CHECKSUM=0|1/*设置为1表示求校验和*/|COMMENT=string/*注释*/|CONNECTION=connect_string/*连接字符串*/|MAX_ROWS=value/*行的最大数*/|MIN_ROWS=value/*列的最小数*/|PACK_KEYS=0|1|DEFAULT|PASSWORD=string/*对.frm文件加密*/|DELAY_KEY_WRITE=0|1/*对关键字的更新*/|ROW_FORMAT=DE
10、FAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT/*定义各行应如何储存*/|UNION=(tbl_name,tbl_name.)/*表示哪个表应该合并*/|INSERT_METHOD=NO|FIRST|LAST/*是否执行INSERT语句*/|DATA DIRECTORY=absolute path to directory/*数据文件的路径*/|INDEX DIRECTORY=absolute path to directory/*索引的路径*/,创建表结构,列定义column_definition格式如下:col_name type NOT
11、NULL|NULL DEFAULT default_value AUTO_INCREMENT UNIQUE KEY|PRIMARY KEY COMMENT string reference_definition说明:col_name:表中列的名字。列名必须符合标志符规则,长度不能超过64个字符,而且在表中要唯一。如果有MySQL保留字必须用单引号括起来。type:列的数据类型,有的数据类型需要指明长度n,并用括号括起。,创建表结构,AUTO_INCREMENT:设置自增属性,只有整型列才能设置此属性。当插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,在这里
12、value是此前表中该列的最大值。AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。NOT NULL|NULL:指定该列是否允许为空。如果不指定,则默认为NULL。,创建表结构,DEFAULT default_value:为列指定默认值,默认值必须为一个常数。其中,BLOB和TEXT列不能被赋予默认值。如果没有为列指定默认值,MySQL自动地分配一个。如果列可以取NULL值,默认值就是NULL。如果列被声明为NOT NULL,默认值取决于列类型:(1)对于没有声明AUTO_INCREMENT属性的数字类型,默认值是0。对于一个AUTO_
13、INCREMENT列,默认值是在顺序中的下一个值。(2)对于除TIMESTAMP以外的日期和时间类型,默认值是该类型适当的“零”值。对于表中第一个TIMESTAMP列,默认值是当前的日期和时间。(3)对于除ENUM的字符串类型,默认值是空字符串。对于ENUM,默认值是第一个枚举值。,创建表结构,UNIQUE KEY|PRIMARY KEY:PRIMARY KEY和UNIQUE KEY都表示字段中的值是唯一的。PRIMARY KEY表示设置为主键,一个表只能定义一个主键,主键一定要为NOT NULL。COMMENT string:对于列的描述,string是描述的内容。reference_def
14、inition:指定参照的表和列。,创建表结构,值得注意的是,在字符数据类型和数值数据类型之后,MySQL允许指定一个数据类型选项用来改变数据类型的属性和功能。对于字符数据类型,MySQL支持两种数据类型选项:CHARACTER SET和COLLATE。如果要区分字符的大小写情况,可以在字符类型后面加上BINGARY。对于除BIT以外的数值数据类型,MySQL允许添加一个或多个数据类型选项。UNSIGNED:不允许负值。ZEROFILL:当插入的值长度小于字段设定的长度时,剩余部分用0填补。spatial_type是空间类型数据。,【例3】设已经创建了数据库XSCJ,在该数据库中创建学生情况表
15、XS。USE XSCJ;CREATE TABLE XS(学号 char(6)NOT NULL PRIMARY KEY,姓名 char(8)NOT NULL,专业名 char(10)NOT NULL,性别 tinyint(1)NOT NULL DEFAULT 1,出生日期date NOT NULL,总学分 tinyint NULL,照片 blob NULL,备注 text NULL)ENGINE=InnoDB;在上面的例子里,每个字段都包含附加约束或修饰符,这些可以用来增加对所输入数据的约束。“PRIMARY KEY”表示将“学号”字段定义为主键。“DEFAULT 1”表示“性别”的默认值为1。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 学习 教程
链接地址:https://www.31ppt.com/p-6512876.html