预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

DDL创建数据库,表以及约束(极客时间学习笔记) DDL DDL是DBMS的核心组件,是SQL的重要组成部分.DDL的正确性和稳定性是整个SQL发型的重要基础. DDL的基础语法及设计工具 DDL的英文是DataDefinitionLanguage,也就是数据定义语言.定义了数据库的结构和数据表的结构.常用的功能急救室增删改,对应的命令分别是CREATE、DROP和ALTER. 对数据库进行定义 CREATEDATABASEnba;//创建名为nba的数据库 DROPDATABASEnba;//删除名为nba的数据库 对数据表进行定义 CREATETABLEtable_name;//创建表,table_name指表名 创建表的结构呢?举个实际的例子,我们创建一个球员表,表名为player,里面有两个字段,一个是player_id,它是int类型,另一个是player_name字段是varchar(255)类型,两个字段都不能为空,并且player_id是递增的. 接下来创建表的语句这么就是: CREATETABLEplayer( player_idint(11)NOTNULLAUTO_INCREMENT, player_namevarchar(255)NOTNULL ); 注意的是每个字段定义的语句最后使用,作为结束符,最后一个字段的定义结束之后没有逗号的,并且语句最后是以;结尾的.数据类型中int(11)代表整数类型,显示长度是11位,括号中的参数11代表的是最大有效显示长度,与类型包含的数值大小无关.varchar(255)代表的是最大长度为255的可变字符串类型.NOTNULL表名整个字段不能为空值,是一种数据约束.AUTO_INCREMENT代表主键自动增长.(一般情况下使用可视化工具类创建和操作数据库和数据库表,比如Navicat) 接下来针对player表,设计下面字段: 其中player_id是数据表player的主键,且自动增长,也就是player_id会从1开始,然后每次加一,不必为它赋值.player_id、team_id、player_name这三个字段均不为空,height字段可以为空. 使用Navicat工具创建表并导出的SQL文件如下所示: DROPTABLEIFEXISTS`player`; CREATETABLE`player`( `player_id`int(11)NOTNULLAUTO_INCREMENT, `team_id`int(11)NOTNULL, `team_name`varchar(255)CHARACTERSETutf8collateutf8_general_ciNOTNULL, `height`float(3,2)NULLDEFAULT0.00, PRIMARYKEY(`player_id`)USINGBTREE, UNIQUEINDEX`player_name`(`player_name`)USINGBTREE )ENGINE=InnoDBCHARACTERSET=utf8COLLATE=utf8_general_ciROW_FORMAT=Dynamic; 可以看到整个SQL文件中的DDL处理,首先删除player表(如果数据库中存在该表的话),然后再创建player表,里面的字段名和表名都使用了反引号,这是为了避免名称与MYSQL保留字段相同,对数据库表和字段名都加上反引号. 其中player_name字段的字符集是utf8,排序规则是utf8_general_ci,代表对大小写不敏感,如果设置为utf8_bin,表示对大小写敏感. 因为player_id设置为了主键,所以在DDL中使用PRIMARYKEY进行规定,同时索引方法采用BTREE. 对player_name字段进行索引,在设置索引时,可以设置UNIQUEINDEX(唯一索引),也可以设置为其它索引方式,比如NORMALINDEX(普通索引),这里我们采用UNIQUEINDEX.唯一索引和普通索引的区别在于对字段进行了唯一性约束.在索引方式上,可以选择BTREE和HASH,这里采用BTREE方法进行索引. 整个数据表的存储规则采用InnoDB,是MYSQL5.5之后的默认存储引擎,将字符集设置为utf8,排序规则设置为utf8_general_ci,行格式为Dynamic,就可以定义数据表的最后约定了: ENGINE=InnoDBCHARACTERSET=utf8COLLATE=utf8_general_ciROW_FORMAT=Dynamic; 修改表结构 创建完表之后,可以对表结构进行修改,使用DDL命令来完成. 添加字段 ALTERTABLEplayerADD(ageint(11));