- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL高级操作剖析
昨日回顾列类型针对单独个体(记录中的某一个字段)的限制。日期时间型:timestamp时间戳JS是毫秒数php是秒数MySQL是DateTime列属性针对整列的一约束。primary key索引,MySQL索引包含(主键索引、唯一键索引、普通索引index、全文索引)创建:1、创建表时,直接在主键字段后使用primary key2、创建表时,在所有字段后primary key(字段名)3、修改表结构alter table 表名 add primary key (字段列表)复合主键创建方式只能使用2、3方法创建一般会自定义一个与用户数据无关的字段作为主键字段(id)。主键特点:值唯一、不可以是null模拟主键:当一个表中没有主键字段的时候,如果第一个具有not null与unique约束的字段会被MySQL默认为主键字段。主键的删除alter table 表名 drop primary key;auto_increment自增长使用条件:字段类型必须是整型自增长必须与primary key、unique配合使用。删除自增长alter table 表名 modify 字段名字段类型;不需要加primary key与auto_increment查看与自增长相关的变量show variables like auto_increment_%;auto_increment_increment步长auto_increment_offset起始值default缺省值unique唯一性约束删除alter table 表名 drop index 索引名(字段名);对于唯一键索引约束的字段的值,可以为Null,原因中null不等null关系:实体:现实中的一个事物,计算机就是用来存储事物的信息,在设计数据表中,一个实体,会单独设计成一个表。实体表与实体表之间就具有了与现实同样的关系。一对一一对多多对多范式理论:1NF原子性,字段不能可再进行拆分。2NF部分依赖,指的是非主键字段的信息依赖于部分主键,部分依赖是出现在复合主键的情况。解决办法:就是自定义一个与用户数据无关的字段作为主键字段(逻辑主键)3NF传递依赖,高级操作复制表结构语法:create table 表B like 表A;示例:复制表中的数据语法:create table 表B select *或字段列表 from 表A;蠕虫复制语法:insert into 表名【字段列表】 select *或字段列表from 表名;修改操作限制修改指定的行数。语法:update 表名 set 字段=值... 【where子句】 limit n;说明:在执行update语句时,限制最多修改n行示例:删除操作限制删除的行数语法:delete from 表名【where 子句】 limit n;说明:用于限制最多只能删除n条记录示例:插入操作主键冲突基本语法:insert into 表名【(字段列表)】 values(值列表);主键冲突insert into 表名【(字段列表)】 values(值列表) on duplicate key update 字段=值,字段=值...;示例:说明:主键冲突的方式也可应用在唯一键冲突。唯一键冲突同理replace into 表名【字段列表】 values(值列表);说明:在主键冲突或唯一键冲突时,替换冲突的记录示例:查询操作标准语法:select 【all|distinct】 *|字段列表|字段名【as】别名 from 数据源【where子句】【group by子句】【having子句】【order by 子句】【limit子句】说明:select选项all(缺省)表示显示所有的记录(包含重复的记录)distinct表示不显示重复的记录(去掉重复记录)示例:字段别名语法:字段名【as】别名示例:说明:只是在显示的更改字段的名子,并没有更改表结构中的字段的名子。一般是用在多表查询时表别名语法:from 表名【as】表别名示例:数据源数据的来源,数据的来源可以分3种:1、单表数据源select * from 表名;2、多表数据源select * from 表A,表B;说明:将多个表的字段进行横向连接,记录数相乘术语:迪卡尔积示例:3、子查询数据源select语句查询的结果是一个结果集,那再将此结果集作为from的一个数据源,此种数据源即为子查询数据源示例:说明:子查询数据源,必须将子查询使用括号括起来,并且设置一个别名【where子句】根据条件进行数据筛选,条件即为一个表达式,表达式就需要运算符is nullis not null=安全相等专用于判断null,只适用于MySQL SQL Server不适用betweenbetween m and n介于m与n之间(包含m与
文档评论(0)