数据库学习笔记

上传人:汽*** 文档编号:433156541 上传时间:2023-07-01 格式:DOCX 页数:39 大小:10.87MB
返回 下载 相关 举报
数据库学习笔记_第1页
第1页 / 共39页
数据库学习笔记_第2页
第2页 / 共39页
数据库学习笔记_第3页
第3页 / 共39页
数据库学习笔记_第4页
第4页 / 共39页
数据库学习笔记_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《数据库学习笔记》由会员分享,可在线阅读,更多相关《数据库学习笔记(39页珍藏版)》请在金锄头文库上搜索。

1、数据库学习笔记Sql基本操作1、基本操作CRUD(增删改查)2、将sql基本操作根据操作对象分类:库操作,表操作(字段),数据操作。2.1库操作:对数据库的增删改查;2.1.1新增数据库:基本语法:Create datebase 数据库名字 库选项库选项:用来约束数据库,分为两个选项l 字符集设定:charset(数据存储的编码格式):常用的有GBK与UTF8l 校对集设定:collate(数据比较的规则)当创建数据库的sql语句执行之后,发生了什么?1、 在数据库系统中增加了对应的数据库信息;2、 会在保存数据的文件夹下:Date目录,创建一个对应数据库名字的文件夹;3、 每个数据库下都有一

2、个opt文件,保存了库选项。2.1.2:查看数据库:1、查看所有数据库Show databases;2、查看指定部分的数据库:模糊查询Show databases like pattern;-pattern是匹配模式%:表示匹配多个字符;_:表示匹配单个字符;3、查看数据库创建语句:Show create database 数据库名字;eg: SHOW CREATE DATABASE imooc;数据库在执行sql语句之前会优化sql,系统保存的结果是优化后的结果。2.1.3更新数据库:数据库名字不可修改;数据库的修改仅限库选项:字符集和校对集(校对集依赖字符集)。Alter database

3、 数据库名字 库选项;Charset/character set 字符集;Collate 校对集;2.1.4删除数据库:Drop database 数据库名字;当删除数据库语句执行之后发生了什么?1、 在数据库内部看不到对应的数据库;2、 在对应的数据库存储的文件夹内,数据库名字对应的文件夹也被删除(级联删除:里面的数据表全部删除),数据库删除不可逆。2.2表操作表与字段密不可分2.2.1新增数据表语法:Create table if not exists 表名(字段名字 数据类型(x),(如果数据类型是字符型,需要将字符长度加上)字段名字 数据类型, -最后一行不需要逗号)表选项;If no

4、t exists :如果表名不存在则创建,如果存在则不执行创建代码:检查功能;表选项:控制表的表现,字符集:charset/character set 具体字符集;-保证表中数据存储的字符集;校对集:collate 具体校对集;存储引擎:engine 具体存储引擎(innodb和myisam);任何一个表的设计都必须指定数据库方案1:显示的指定表所属的数据库Create table if not exists 数据库名.表名();-将当前数据表创建到指定的数据库下。方案2:隐式的指定数据表所属数据库:先进入到某个数据库环境,然后这样创建的数据表自动归属到该数据库。进入数据库环境:use 数据库

5、名字;2.2.2查看数据表1、查看所有表 show tables;2、查看部分表:模糊匹配:Show tables likepattern;%:表示匹配多个字符;_:表示匹配单个字符;3、 查看表的创建语句;Show create table 表名;4.查看表结构:查看表中的字段信息Desc/describe/show columns(列)from 表名;2.2.3修改数据表2.2.3.1修改表本身表本身可以修改:表名和表选项;1、修改表名:Rename table 老表名 to 新表名;2、修改表选项:A 2.2.3.2修改字段(增、删、改、查)1、新增字段:Alter table 表名 a

6、ddcolumn 字段名 数据类型 列属性 位置;位置:字段名可以存放表中任意位置First:第一个位置;After:在哪个字段之后:after 字段名;默认的是在最后一个字段之后。2、修改字段:Alter table 表名 modify 字段名 数据类型【属性】【位置】;3、重命名字段Alter table 表名 change 旧字段 新字段名 数据类型【属性】【位置】;4、 删除字段:Alter table 表名 drop字段名;注意:如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)。2.2.4删除数据表Drop table 表名1,表名2,表名3;可以一簇删除多张表。2

7、.3数据操作:2.3.1新增数据:两种方案:方案1、给全表字段插入数据,不需要指定字段列表;要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致,凡是非数值数据都需要使用引号(建议使用单引号)包裹。Insert into 表名 values(值列表)【,(值列表)】;-可以一次插入多条数据。方案2、给部分字段插入数据,需要选定字段列表,字段列表出现的顺序与字段的顺序无关,但是值列表的顺序必须与选定的字段的顺序一致Insert into 表名(字段列表)values (值列表)【,(值列表)】;2.3.2查看数据:1、查看所有数据Select * from 表名;2、查看指定字段,指定条件的

8、数据Select 字段列表 from 表名 【where条件】;2.3.3更新数据:Update 表名 set 字段 = 值【where条件】;-建议都有where:要不是更新全部2.3.4删除数据:Delete from 表名【where条件】;3、中文数据问题中文数据问题本质是字符集问题。4、数据类型(列类型)Sql中将数据类型分为三大类:数值类型,字符串类型和时间类型4.1、整数型(tinyint,int)常用Tinyint和Int。SQL中的数据类型全部都是默认有符号,分正负;有的时候需要使用无符号的数据,需要给数据类型限定:int unsigned,-无符号从0开始。显示宽度没有特别

9、的含义,只是默认告诉用户可以显示的形式而已,实际上用户可以控制的,这种控制不会改变数据本身的大小。显示宽度的意义:5、列属性列属性:真正约束字段的是数据类型,但是数据类型的约束很单一,需要有一些额外的约束,来更加保证数据的合法性。列属性有很多:NULL/NOTNULL,default,Primary key,unique key,auto_increment,comment5.1、空属性两个值:NULL(默认的)和NOT NULL虽然默认为空,但实际开发中,尽可能保证所有数据都不为空,因为空数据没有意义,也无法参加运算。5.2、列描述列描述:comment,描述,没有实际含义:是专门用来描述字

10、段的,会根据表创建语句保存,用来给程序员(数据库管理员)来进行了解的。5.3、默认值默认值:某一种数据会经常性的出现某一个具体的值,可以在一开始便指定好,在需要真实数据的时候,用户可以选择性的使用默认值。6、 字段属性6.1、主键:主键:primary key,主要的键,一张表只能有一个主键,用来唯一的约束该字段里的数据,不能重复。6.1.1增加主键增加主键的三种方式:1、 创建表时直接在字段之后跟primary key关键字(主键本身不允许为空)优点:直接;缺点:只能使用一个字段作为主键。2、 创建表的时候,在所有字段之后使用primary key(主键字段列表)来创建主键(如果有多个字段为

11、主键,可以是复合主键)3、 当表已经创建好之后,再次额外追加主键,可以通过修改表字段属性,也可以直接追加。Alter table 表名 add primary key(字段列表)前提:表中字段对应的数据本身是独立的(不重复)。6.1.2主键约束主键对应的字段中数据不允许重复,一旦重复,数据操作失败。6.1.3更新主键&删除主键没有办法更新主键,主键必须先删除,才能增加。Alter table 表名 drop primary key; 6.1.4、主键分类6.2、自动增长自增长:当对应字段不给值或者给默认值或者给NULL时,自增长被系统触发,系统会从当前字段中已有的最大值进行+1操作,得到一个新

12、的不同字段。自增长通常与主键配合使用;自增长的特点:auto_increment6.2.1新增自增长1、 任何一个字段做自增长,前提本身必须是一个索引(key一栏有值);2、 字段必须是数字,而且是整型;3、 一张表最多只能有一个自增长。6.2.2自增长使用当对应字段不给值或者给默认值或者给NULL时,自增长被系统触发,系统会从当前字段中已有的最大值进行+1操作,得到一个新的不同字段。如果自增长对应字段输入了值,那么自增长将失效,但是下一次还是能自动的自增长(从最大值+1)如何确定下一次自增长是什么?可以通过查看创建表语句6.2.3修改自增长自增长如果涉及到字段改变,必须先删除自增长后增加(因

13、为一张表只能有一个自增长)。修改当前自增长已经存在的值,修改只能比当前已有的自增长的最大值大,不能小,(小不生效)。Alter table 表名 auto_increment =?;6.2.4删除字增长自增长是一个属性,可以通过modify来进行修改(保证字段里没有auto_increment即可)Alter table 表名 modify 字段 类型。6.3、唯一键一张表往往有许多字段需要具有唯一性,数据不能重复,但是一张表中只能有一个主键,唯一键(unique key)就可以解决多个字段需要唯一性约束的问题。唯一键本质与主键差不多,唯一键默认的允许自动为空,而且可以对个为空(空字段不参与唯

14、一性比较)。6.3.1增加唯一键基本与主键差不多1、在创建表时,字段之后直接跟unique/unique key2、在所有字段之后增加unique key (字段列表);-复合唯一。4、 在创建表之后增加唯一键;6.3.2唯一键约束唯一键与主键本质相同,唯一的区别就是唯一键默认允许为空,而且是多空;如果唯一键也不允许为空,与主键的约束作用是一致的。6.3.3更新唯一键&删除唯一键更新唯一键:先删除后新增(唯一键可以有多个,可以不删除)1、删除唯一键Alter table 表名 drop index 索引名字;唯一键默认使用字段名作为索引名字。6.4、索引几乎所有的索引都建立在字段之上索引:系统根据某种算法,将已有的数据(未来可能新增的数据)单独建立一个文件,文件能够实现快速的匹配数据,并且能快速的找到对应表中的记录。索引的意义:1、 提升查询数据的效率;2、 约束数据的有效性(唯一性等);增加索引的前提条件:索引本身会产生索引文件(有时候可能比数据文件还大),会非常耗费磁盘空间,Mysql中提供多种索引:1、 主键索引:primary key;2、 唯一索引:unique key;3、 全文索引:fulltext ind

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

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