资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,MySQL,数据库技术,MySQL Database Technology,MySQL,数据库概述,Introduction to MySQL,1962,年,3,月,3,日出生于芬兰赫尔辛基。开源,MySQL,数据库的创始成员、,MySQL AB,公司的首席技术官、,MySQL,数据库第一行代码的作者、,MySQL,数据库命名人、,MariaDB,创始人兼首席技术官;独自完成撰写,MySQL,数据库服务器端,95%,的代码。,Monty,有一个女儿,名叫,My,,因此他将自己开发的数据库命名为,MySQL,。,MySQL,之父,Michael Monty Widenius,MySQL,的发展历史,2000,2003,2006,2009,2010,推出,MyISAM,开放源代码,正式集成,I,nnoDB,引擎,SUN,公司收购了,MySQL,公司,Oracle,公司收购,SUN,MySQL 5.5,正式版发布,1994,第一版本,现在,MySQL 8.0,正式版发布,全球数据库排行,MySQL,的特点,01,开源软件,02,适用于,OLTP,场景,03,服务器数量大,04,主要应用于互联网行业,国内,MySQL,应用,连接层,完成连接处理、授权认证、及相关的安全方案。,处理层,完成缓存的查询,,SQL,的分析和优化以及部分内置函数的操作。,引擎层,负责数据的存储和提取。,存储层,将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。,MySQL,逻辑概念,MySQL,的,COMMAND,窗口,在,COMMAND,窗口输入简单的,SQL,语句。,在,COMMAND,窗口执行文件,如,Source d:demo.sql,MySQL,图形管理工具,-Workbench,可视化数据库管理;,操作直观、功能强大,实用工具丰富,;,数据库迁移方便。,MySQL,图形管理工具,-Navicat,可同时连接,MySQL,和,MariaDB,;,支持,MySQL,大部分最新功能,包括表、视图、函数或过程、事件等;,操作直观、功能强大,MySQL,图形管理工具,-PhpMyAdmin,PhpMyAdmin,是由,PHP,语言开发,以,WEB,形式控制和操作。,PhpMyAdmin,是,LAMP(Linux,apache,MySQL,PHP),软件包集成的工具软件。,PhpMyAdmin,是,PHP,开发最佳的数据库管理工具,灵活方便,功能强大。,学习本门课的基础,C,语言,Java,Python,课程整体概览,66,个数据库术语,CREATE,DATABASE,TABLE,ALTER,AUTO_INCREMENT,OLD,SHOW,SCHEMA,DESCRIBE,MODIFY,PRIMARY KEY,NEW,DROP,IF,FIRST,CHANGE,FOREIGN KEY,OUT,EXISTS,USE,AFTER,RENAME,REFERENCES,INOUT,ADD,NOT NULL,DEFAULT,UNIQUE,CONSTRAINT,TRANSACTION,DISTINCE,AS,BETWEEN AND,IN,AVG,PRIVILEGES,SUM,MAX,MIN,COUNT,GROUP BY,LOG,HAVING,ORDER BY,INNER JOIN,LEFT JOIN,RIGHT JOIN,MYSQLDUMP,DELETE,ALL,ANY,INSERT,UPDATE,GRANT,CASE,INDEX,VIEW,PROCEDURE,VARIABLES,REVOKE,ROLLBACK,WHILE,REPEAT,LOOP,TRIGGER,COMMIT,千里之行,,始于足下!,老子,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,MySQL,的安装,Install MySQL,MySQL,的版本,社区版,Community,可以自由下载而且完全免费,但是官方不提供任何技术支持,适用于大多数普通用户;,企业版,Enterprise,不仅不能自由下载而且还收费,但是该版本提供了更多的功能,可以享受完备的技术支持,适用于对数据库的功能和可靠性要求比较高的企业客户。,操作演示,卸载,MySQL,NO.1,NO.2,NO.3,NO.4,点击控制面板卸载程序,卸载掉所有相关的,MySQL,软件,删除安装目录下,C:Program Files,的,MySQL,文件夹,删除目录下,C:ProgramData,(是一个隐藏文件夹)的,MySQL,文件夹,删除注册表,HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventLogApplication,下的,MySQL,文件夹,下载与安装,Navicat,试一试,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,MySQL,的配置,Configurate MySQL,弓调而后求劲焉,,马服而后求良焉!,荀子,哀公,在“,C:ProgramData MySQLMySQL Server 5.7data,”目录下。,My.ini,文件的位置,My.ini,重要的设置,01,port,客户端和服务端的端口号,默认的端口号为,3306,03,character-set-server,服务器端字符集,如果要在数据表中正确地显示中文,必须将其设置为,UTF8,。,02,default-character-set,客户端字符集,如果要在数据表中正确地显示中文,必须将其设置为,UTF8,。,04,default-storage-engine,默认的存储引擎为,InnoDB,。,存储引擎其实就是对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。,什么是存储引擎?,MySQL,存储引擎类型,存储特性,MyISAM,InnoDB,MEMORY,存储限制,有,64TB,有,事务安全,不支持,支持,不支持,锁机制,表锁,行锁,表锁,B,树索引,支持,支持,支持,哈希索引,不支持,不支持,支持,全文索引,支持,不支持,不支持,集群索引,不支持,支持,不支持,支持,支持,支持,支持,数据缓存,支持,支持,索引缓存,支持,支持,支持,数据可压缩,支持,不支持,不支持,空间使用,低,高,N/A,内存使用,低,高,中等,批量插入的速度,高,低,高,支持外键,不支持,支持,不支持,SHOW VARIABLES LIKE%storage_engine%;,查询默认存储引擎,修改默认存储引擎,修改字符集,修改,my.ini,的注意事项,修改,my.ini,文件之前一定要停止,MySQL,服务,修改之后重新启动,MySQL,服务。,A,修改,my.ini,文件之后只对新创建的数据库有效。,B,操作演示,在,C:WINDOWSSystem32,文件下以管理员身份运行“,cmd”,命令。,在,DOS,窗口中,如果想查看,Windows,系统已经启动的服务,可以通过如下命令来实现:,NET START,DOS,窗口启动和关闭,MySQL,服务,如果,MySQL,软件的服务已经启动,可以通过命令来关闭,MySQL,服务,具体命令内容如下:,NET STOP MySQL57,关闭,MySQL,服务,如果,MySQL,软件的服务,MySQL,是处于关闭状态,可以通过命令来启动,MySQL,服务,具体命令内容如下:,NET START MySQL57,启动,MySQL,服务,小结,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,E-R,模型,E-R MODEL,E-R,模型的构成,主键,实体,睡眠,联系,属性,E-R,模型,区别于其他对象的“事件”或“物体”。,能唯一区分这个实体的属性。,每个实体固有的特征。,两个实体之间的关系,有,1:1,,,1:N,,,M:N,三种。,实体,姓名,性别,手机号码,订单编号,名称,编码,生产日期,厂家,顾客,商品,订单,订单日期,一对一联系(,1:1,),一对多联系,(1,:,N),多对多联系,(M,:,N),图书管理系统数据库,E-R,模型,关系模型:读者,读者编号,姓名,性别,出生日期,借书总量,101101,肖华,女,1993-3-1,2,101102,王明峰,男,1987-5-10,0,101103,钟汉生,男,1976-10-10,3,101104,秦飞飞,男,1967-12-11,0,101105,郑琴,女,1994-7-1,0,101106,张楚楚,女,1983-4-23,2,101107,王汉,男,1972-1-12,2,101108,肖之瑜,男,1984-3-12,0,字段名,行:记录,小结,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,创建数据库,Create Database,数据库,(Database,简称,DB),:,是按照一定的数据结构来组织、存放和管理数据的仓库。,什么是数据库?,数据库的基本原理,表,1,表,2,表,3,表,4,表,5,数据库,1,数据库,2,数据库类型,系统数据库,英文,中文,英文,中文,CREATE,创建,DATABASE,数据库,SHOW,查看,SCHEMA,数据库,DROP,删除,IF,假如,EXISTS,存在,USE,使用,创建数据库术语,创建数据库,SQL,语句,如果程序读写优盘,尝试:,保存一个尺寸极小,甚至只有一项的文件。,然后保存一个很大的,刚好在优盘容量限制之内的文件。保存空文件。,保存尺寸大于优盘容量的文件。,边界条件,:,磁盘,语法,CREATE DATABASE|SCHEMA IF NOT EXISTS database_name,;,说明,database_name,:创建的数据库名。,IF NOT EXISTS,:在创建数据库前加上一个判断,只有该数据库目前尚不存在时才执行,CREATE DATABASE,操作。,失之毫厘,,谬以千里。,礼记,.,经解,查看数据库,语法,SHOW DATABASES;,选择数据库,语法,USE database_name;,删除数据库,语法,DROP DATABASE database_name;,创建图书管理系统数据库,方法,1,:通过,COMMAND,命令窗口创建,CREATE DATABASE db_library;,创建图书馆数据库,db_library,打开,MySQL Workbench,在,SCHEMAS,栏内单击右键,选择,Create Schema,输入数据库名,db_library,再点击“,Apply,”“,Finish,”。,方法,2,:通过,MySQL Workbench,创建,操作演示,小结,你能,用我们今天讲到的方式,创建一个学生数据库,(db_student),吗?,举一反三,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,数据类型,Data Type,数据类型是数据的一种属性,是决定存储数据的存储格式、有效范围和相应的限制。,数据类型概述,MySQL,数据类型,整数类型,整数类型,字节,最小值,最大值,备注,TINYINT,1,有符号,-128,无符号,0,有符号,127,无符号,255,微整型,SMALLINT,2,有符号,-32768,无符号,0,有符号,32767,无符号,65535,小整型,MEDIMINT,3,有符号,-8388608,无符号,0,有符号,8388607,无符号,1677215,中整型,INT,或,INTEGER,4,有符号,-21448648,无符号,0,有符号,2147483647,无符号,4294967295,整型,BIGINT,8,有符号,-92372036854775808,无符号,0,有符号,92372036854775807,无符号,18446744073709551615,大整型,整数类型举例,表:图书,复本量、库存量,小数类型,浮点数类型,字节,最小值,最大值,备注,FLOAT,4,1.7549435E-38,3.402823466E+38,单精度浮点数,DOUBLE,8,2.2250738585072014E-308,1.7976931348623157E+308,双精度浮点数,定点数类型,定义,说明,备注,DEC(M,D),或,DECIMAL(M,D),DECIMAL(length,precision),length,决定小数的最大位数,precision,用于设置小数位数,定点数,小数类型举例,表:图书,图书价格,日期时间型,日期和时间类型,字节,描述,格式,备注,DATE,4,1000-101-01,YYYY-MM-DD,日期型,DATETIME,8,1000-01-01 00:00:00,YYYY-MM-DD HH:MM:SS,日期时间型,TIMESTAMP,4,19700101080001,YYYY-MM-DD HH:MM:SS,时间戳型,TIME,3,-835:59:59,HH:MM:SS,时间型,YEAR,1,1901,YYYY,年,日期时间型举例,表:读者,出生日期,CHAR,系列字符串类型,字节,描述,备注,CHAR(M),M,M,为,0-255,之间的整数,定长字符串,VARCHAR(M),M,M,为,0-65 535,之间的整数,不定长字符串,字符串类型:,CHAR,与,VARCHAR,备注:如果需要存储少量字符串则可以选择,CHAR,和,VARCHAR,类型,如果字符串长度经常发生变化选择,VARCHAR,类型。,字符串类型:,CHAR,与,VARCHAR,举例,表:图书,书名、作者,字符串类型:,TEXT,TEXT,系列字符串类型,字节,描述,备注,TINYTEXT,0-255,值的长度为,+1,个字节,微文本,TEXT,0-65 535,值的长度为,+2,个字节,文本,MDIUMTEXT,0-167 772 150,值的长度为,+3,个字节,中文本,LONGTEXT,0-4 294 967 295,值的长度为,+4,个字节,长文本,备注:如果需要存储大量字符串则选择,TEXT,类型。,二进制类型:,BINARY,BINARY,系列类型,大小,备注,BINARY(M),0-255,字节,定长二进制,VARBINARY(M),0-65535,字节,不定长二进制,备注:,BINARY,系列字符串系列可以存储二进制数据,如图片、音乐等文件。,位类型,大小,备注,BIT,0-63,字节,位类型,二进制类型:,BLOB,BLOB,系列类型,大小,备注,TINYBLOB,0-255,字节,微二进制,BLOB,0-65 535,字节,二进制,MDIUMBLOB,0-167 772 15,字节,中二进制,LONGBLOB,0-4 294 967 295,字节,长二进制,备注:如果需要存储大量二进制数据,如电影等视频文件,则选择,BLOB,系列字符串类型。,复合型,类型,大小,备注,Enum(“value1”,“value2”,),0-65535,字节,该类型的列只可以容纳所列值之一或为,NULL,Set(“value1”,“value2”,),0-63,字节,该类型的列可以容纳一组值或为,NULL,定义:,Gender enum(,男,女,),Interest set(,唱歌,游泳,网球,),在符合应用要求(取值范围、精度)的前提下,尽量在符合应用要求的前提下,使用“短”数据类型。,一些数字类型的字段,如学号、电话号码,设置成字符串类型;如果需要设置成自增,则设置成整型,如,ID,。,在,MySQL,中,日期型默认宽度为,8,,日期时间型默认为,14,,不需要自己去定义宽度。,尽量采用精确小数类型(例如,decimal,),而不采用浮点数类型。,选择数据类型的注意事项,小结,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,创建数据表,Create Table,创建数据表元素,1.,采用,26,个英文字母,(,区分大小写,),和,0-9,的自然数,(,经常不需要,),加上下划线,_,组成,命名简洁明确,多个单词用下划线,_,分隔。,2.,一般采用小写命名。,3.,禁止使用数据库关键字,如:,table,time,datetime,primary,等。,4.,字段名称一般采用名词或动宾短语,如,user_id,,,is_good,。,5.,采用字段的名称必须是易于理解,一般不超过三个英文单词。,字段命名规范,英文,中文,CREATE,创建,SHOW,查看,DROP,删除,TABLE,数据表,DESCRIBE,描述,创建数据表术语,CREATE TABLE table_name(,col_name 1 data_type1,,,col _name 2 data_type 2,,,col_name n data_type n,),说明:,table_name,为创建的数据表的表名,col_name,为创建的字段名,data_type,为要创建的字段的数据类型。,创建数据表,SQL,语句,语法,DESCRIBE table_name;,查看表结构语句,语法,例:,DESCRIBE t_student;,SHOW TABLES;,查看所有数据表,语法,说明:如果是复制其他数据库的表结构,在,table_name2,前加上数据库的名称:,例:将数据库,db_library,中的,reader,表结构复制到当前数据库,命名为表结构,t_readerr,;,CREATE TABLE t_reader LIKE db_library.reader;,复制表结构,CREATE TABLE table_name1 LIKE table_name2;,语法,db_name,删除表,DROP TABLE table_name;,语法,例:删除表,t_student,DROP TABLE t_student;,图书管理系统数据库,E-R,模型,创建,db_library,的数据表,读者,t_reader,出版社,t_press,图书,t_book,归还记录,t_return_record,借阅记录,t_borrow_record,读者,:t_reader,reader_id,(读者编号),reader_name,(读者姓名),reader_sex,(读者性别,),reader_birthday,(读者出生日期),reader_borrowtotal,(借书总量),字段名称,数据类型,reader_id,CHAR(6),reader_name,VARCHAR(50),reader_sex,CHAR(2),reader_birthday,DATE,reader_borrowtotal,FLOAT,图书,:t_book,ISBN,(书籍编号),book_name,(书籍名称),book_author,(作者),book_price,(价格),press_id,(出版社编号),字段名称,数据类型,ISBN,CHAR(17),book_name,VARCHAR(50),book_author,VARCHAR(20),book_price,DEC(6.1),press_id,CHAR(3),出版社,:t_press,press_id,(出版社编号),press_name,(出版社名称),website,(网址),postcode(,邮编,),press_telephone,(出版社电话),press_email(,邮箱,),press_address(,地址,),字段名称,数据类型,press_id,CHAR(3),press_name,VARCHAR(50),website,VARCHAR(50),postcode,CHAR(6),press_telephone,VARCHAR(20),press_email,VARCHAR(50),press_address,VARCHAR(100),借阅记录,:t_borrow_record,borrow_id,(借阅编号),reader_id,(读者编号),ISBN,(图书编号),borrow_date,(借阅日期),字段名称,数据类型,borrow_id,CHAR(6),reader_id,CHAR(6),ISBN,CHAR(17),borrow_date,DATE,return_id(,归还编号,),borrow_id,(借阅编号),return_date,(归还日期),ISBN,(图书编号),borrow_date,(借阅日期),归还记录:,t_return_record,字段名称,数据类型,return_id,CHAR(9),borrow_id,CHAR(6),return_date,DATE,ISBN,CHAR(17),borrow_date,DATE,操作演示,小结,创建数据表元素,不可,三天打鱼,,两天晒网!,中国俗语,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,修改数据表,Alter Table,修改数据表之单词大比拼,修改表名,语法,ALTER TABLE old_table_name RENAME new_table_name;,举例,修改表,t_reader,为新的表名,reader,ALTER table t_reader RENAME reader;,增加字段,语法,ALTER TABLE table_name ADD col_name1 data_type FIRST|AFTER col_name2;,举例,在表,reader,中添加一个字段,reader_address;,ALTER TABLE student ADD reader_address VARCHAR(100);,删除字段,语法,ALTER TABLE table_name DROP col_name,举例,删除添加的字段“地址”,ALTER TABLE student DROP,地址,;,修改字段的数据类型,语法,ALTER TABLE table_name MODIFY col_name1 data_type,举例,将地址,reader_address,的数据类型由,varchar,改为,char,ALTER TABLE reader MODIFY reader_address CHAR(100);,修改字段的名称,语法,ALTER TABLE table_name,CHANGE old_col_name new_col old_data_type,举例,将将字段名,reader_address,修改为,address,ALTER TABLE reader CHANGE reader_address ADDRESS CHAR(100);,修改字段的顺序,语法,ALTER TABLE table_name,MODIFY col_name1 data_type FIRST|AFTER col_name2,举例,将字段名“,address,”调整到字段名,reader_telephone,之后,ALTER TABLE reader MODIFY,地址,VARCHAR(100)AFTER reader_telephone;,01,将表,t_book1,重命名为,t_book,。,03,删除,t_return_record,表下的两个字段,ISBN,(图书编号),,borrow_date,(借阅日期)。,02,在,t_book,表下添加两个字段:,book_copy,(复本量),,book_ inventory,(库存量),数据类型均为,INT,。,04,将表,t_reader,中的字段,reader_borrowtotal,的数据类型改为,INT,;将表,t_press,中的字段,website,改名为,press_website,,字段,postcode,改名为,press_postcode,。,修改数据表实例,01,ALTER TABLE t_book1 RENAME t_book;,将表,t_book1,重命名为,t_book,。,修改数据表实例,02,ALTER TABLE t_book ADD book_copy INT,;,ALTER TABLE t_book ADD book_inventory INT;,在,t_book,表下添加两个字段:,book_copy,(复本量),,book_ inventory,(库存量),数据类型均为,INT,。,修改数据表实例,03,ALTER TABLE t_return_record DROP borrow_date,;,删除,t_return_record,表下的两个字段,ISBN,(图书编号),,borrow_date,(借阅日期)。,修改数据表实例,04,ALTER TABLE t_reader MODIFY reader_borrowtotal INT;,ALTER TABLE t_press CHANGE website press_website VARCHAR(50);,ALTER TABLE t_press CHANGE postcode press_postcode CHAR(6);,将表,t_reader,中的字段,reader_borrowtotal,的数据类型改为,INT,;将表,t_press,中的字段,website,改名为,press_website,,字段,postcode,改名为,press_postcode,。,操作演示,修改数据表术语测试,世上无难事,,只要肯攀登!,毛泽东,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,数据表约束,-,非空与默认值,TABLE RESTRICTION-NOT NULL AND DEFAULT VALUE,什么是数据完整性?,对于已经创建好的数据表,已经设置了数据类型,但是表中所存储的数据是否合法并没有进行检查。因此可以对已经创建好的表定义完整性约束,或者在创建新表的时候就进行完整性约束的定义。,数据完整性是指数据的精确性和可靠性。防止数据库中存在不符合语义规定的数据和防止因数据库操作员错误数据的输入,输出而造成数据库中存在的错误数据。,数据完整性的分类,实体完整性,Entity Integrity,指关系中的主属性值不能为,Null,且不能有相同值。,参照完整性,Referential Integrity,两个表的主键和外键的数据应对应一致,用户定义完整性,User-defined Integrity,针对某个特定关系数据库的约束条件。,实体完整性,t_reader,参照完整性的父表与子表,主键,外键,t_book,t_press,参照完整性的规则,01,禁止在从表中插入包含主表中不存在的关键字的数据行。,02,禁止删除在从表中有对应记录的主表记录。,03,禁止会导致从表中相应值孤立的主表中的外键值改变。,读者编号,姓名,性别,出生日期,借书总量,101101,肖华,女,1993-3-1,2,101102,王明峰,男,1987-5-10,0,101103,钟汉生,男,1976-10-10,3,101104,秦飞飞,男,1967-12-11,0,101105,郑琴,女,1994-7-1,0,101106,张楚楚,女,1983-4-23,2,101107,王汉,男,1972-1-12,2,101108,肖之瑜,男,1984-3-12,0,101109,张芸,女,1991-9-4,3,101110,朱强,男,1982-4-15,0,101111,王中磊,男,1991-10-31,0,101112,明道,男,1992-5-25,1,101113,钟双双,女,2000-12-18,1,101114,杜晓云,女,2001-9-10,1,101115,王芝,女,2000-6-10,1,101116,肖明明,男,1993-4-12,0,用户定义完整性,读者编号前,5,位只是,10110,性别只能是男和女,借书总量不超过,6,数据表约束类型,完整性约束关键字,含义,NOT NULL,约束字段的值不能为空,DEFAULT,设置字段的默认值,UNIQUE KEY(UK),约束字段的值是唯一,AUTO_INCREMENT,约束字段的值为自动增加,PRIMARY KEY(PK),约束字段为表的主键,可以作为该表记录的唯一标识,FOREIGN KEY,约束字段为表的外键,非空与默认值,完整性约束关键字,含义,NOT NULL,约束字段的值不能为空,DEFAULT,设置字段的默认值,NOT NULL,非空,DEFAULT,默认值,创建新表时设置,语法,CREATE TABLE table_name,(,col_name data_type,NOT NULL,DEFAULT,);,非空约束,-,设置已存在的表,语法,ALTER TABLE table_name MODIFY col_name data_type,NOT NULL,|,DEFAULT,;,设置非空与默认值实例,01,创建新表,t_reader1,,为,reader_id,设置非空,设置性别的默认值为“男”。,03,设置表,t_reader,中的,reader_borrowtotal,(借书总量)的默认值为,0.,02,为已存在的表,t_book,,设置,ISBN,为非空。,设置非空与默认值实例,01,创建新表,t_reader1,,为,reader_id,设置非空,设置性别的默认值为“男”。,CREATE TABLE t_reader1,(,reader_id INT NOT NULL,reader_name VARCHAR(50),reader_sex CHAR(2)DEFAULT,男,reader_birthday DATE,reader_borrowtotal INT,);,设置非空与默认值实例,02,为已存在的表,t_book,,设置,ISBN,为非空。,ALTER TABLE t_book MODIFY ISBN CHAR(17)NOT NULL;,设置非空与默认值实例,03,设置表,t_reader,中的,reader_borrowtotal,(借书总量)的默认值为,0.,ALTER TABLE t_reader MODIFY reader_borrowtotal INT DEFAULT 0;,操作演示,小结,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,数据表约束,-,唯一键与自增,Table Restriction-Unique and Auto_increment,唯一键与自增,完整性约束关键字,含义,UNIQUE KEY(UK),约束字段的值是唯一,AUTO_INCREMENT,约束字段的值为自动增加,UNIQUE,唯一键,公民的身份证号,学生的学号,职工的编号等,哪些必须设置唯一键?,公民的身份证号,学生的学号,职工的编号,AUTO_INCREMENT,自增,创建新表时设置,语法,CREATE TABLE table_name,(,col_name data_type,UNIQUE,|,AUTO_INCREMENT,);,设置已存在的表,语法,ALTER TABLE table_name MODIFY col_name data_type,UNIQUE,|,AUTO_INCREMENT,;,删除唯一键,语法,ALTER TABLE table_name DROP INDEX index_name,;,说明,索引一般是设置唯一约束的字段名,必须是整数类型才可以设置,AUTO_INCEREMENT,必须先定义为一个键(主键或者唯一键)才可以设置为,AUTO_INCEREMENT,。,可以用,ALTER TABLE table_name AUTO_INCREMENT=default_value,为字段设置自增的初始值。,设置自增的注意事项,设置唯一键与自增实例,01,创建新的数据表,t_reader2,,表结构与,t_reader,一致,设置,return_id,为整型,且为,AUTO_INCREMENT,和,UNIUQE,02,为已存在的表,t_press,,将,press_id,设置唯一键与自增。,设置唯一键与自增实例,01,创建新的数据表,t_reader2,,表结构与,t_reader,一致,设置,return_id,为整型,且为,AUTO_INCREMENT,和,UNIUQE,CREATE TABLE t_reader2,(,reader_id int UNIQUE AUTO_INCREMENT,reader_name VARCHAR(50),reader_sex CHAR(2),reader_birthday DATE,reader_borrowtotal INT,);,设置唯一键与自增实例,为已存在的表,t_press,的,press_id,设置唯一键与自增。,ALTER TABLE t_press MODIFY press_id INT UNQUE AUTO_INCREMENT;,操作演示,世界上的一切都必须按照一定的规则秩序各就各位。,波兰作家 莱蒙特,小结,谢谢聆听,THANK YOU FOR YOUR ATTENTION,MySQL,数据库技术,MySQL Database Technology,数据表约束,-,主键与外键,TABLE RESTRICTION-PRIMARY KEY AND FOREIGN KEY,英文,中文,英文,中文,PRIMARY KEY,主键,NOT NULL,非空,FOREIGN KEY,外键,DEFAULT,默认值,REFERENCES,参照,UNIQUE,唯一,CONSTRAINT,约束,AUTO_INCREMENT,自增,数据表约束术语,主键与外键的参照关系,ISBN,book_name,book_author,book_price,press_id,book_copy,book_inventory,103,103,103,103,105,101,101,101,104,106,102,press_id,press_name,press_website,press_telephone,press_email,press_address,press_postcode,101,102,103,104,105,106,子表,t_book,主表,t_press,单字段主键,创建新表,设置,CREATE TABLE table_name(,col_name data_type PRIMARY KEY,);,为已存在的表设置,ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(col_name);,删除主键,ALTER TABLE table_name DROP PRIMARY KEY;,多字段主键,创建新表时,设置,CREA
展开阅读全文