100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 数据库——MySQL(一)(数据库常用命令 数据类型 创建表与修改表结构 约束 约束

数据库——MySQL(一)(数据库常用命令 数据类型 创建表与修改表结构 约束 约束

时间:2018-07-25 02:59:06

相关推荐

数据库——MySQL(一)(数据库常用命令 数据类型 创建表与修改表结构 约束 约束

MySQL数据库的概述:

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库信息增、删、查、改管理

------------------------------------------------------------------------------------------------------------------

数据库种类:

● 层次式数据库:像树一样,一个根,多个枝干,相当于文件夹,一个文件夹下面有多个文件(文件夹),子文件(文件夹)套子文件(文件夹)

● 网络式数据库:网状数据库,像蜘蛛网似的,纵横交错,不方便管理

● 关系式数据库:复杂的数据结构归结为简单的二元关系(x横向与y纵向形成的相交)(常用)

------------------------------------------------------------------------------------------------------------------

DOS命令操作数据库:(数据库可以不区分大小写,Java必须严格区分)

● 启动数据库服务: net start 数据库名字

● 关闭数据库服务: net stop 数据库名字

● 连接数据库: mysql -u用户名 -p密码(如果出现welcome to mysql...表示数据库连接成功)

● 显示所有的数据库: show databases;

● 创建数据库: create database 数据库名字;

● 删除数据库: drop database 数据库名字;

● 进入指定数据库: use 数据库名;

● 显示所有的表: show tables;

● 创建表: create table 表名(字段名1 数据类型,字段名2 数据类型,...字段名n 数据类型);

● 删除表: drop table 表名;

● 查看表结构: desc 表名;

● 查询指定表的所有数据:select * from 表名;

● 退出当前连接 : quit

注意:当一条语句写完后要使用分号(英文状态)来告诉计算机这条语句结束了。在创建表时,字段与字段之间用逗号进行分隔,但是最后一个字段不需要使用逗号

------------------------------------------------------------------------------------------------------------------

表:(行和列组成)

● 行:表示为一条数据

● 列:表示为一个字段,每个字段用于存储不同类型的数据

------------------------------------------------------------------------------------------------------------------

数据类型:(整数)

● tinyint(m): 1字节 -128 ~ 127

● smallint(m): 2字节 -32768 ~ 32767

● int(m): 4字节 -21亿 ~ 21亿(常用)

● bigint(m): 8字节

注意:m表示该字段可以表述的长度,未显示的指明长度,则为默认长度

------------------------------------------------------------------------------------------------------------------

数据类型:(浮点(小数))

● float(m,n): 4字节 单精度

● double(m,n): 8字节 双精度(常用)

● decimal(m,n): 精确到小数点后的位数

注意:m表示该字段总共多少长度,n表示保留多少位小数。未显示的指明长度,则为默认长度,当指明了总长度时,必须指明保留多少小数位

------------------------------------------------------------------------------------------------------------------

数据类型:(文本(字符串))

● char(m):0 ~ 255

● varchar(m): 0 ~ 65535(常用)

● nvarchar(m): 比varchar的长度还长

● text:存储长文本,指大小大于8kb的文件

● blob:用于存储二进制大文件(电影,图片,文件之类)

注意:m表示该字段可以表述的长度,未显示的指明长度,则为默认长度。当使用char类型定义时,如果赋予了长度,但是没有赋值,或者写入值的长度小于赋予的长度,会使用空格进行填充

------------------------------------------------------------------------------------------------------------------

数据类型:(时间日期)

● date:表示日期 1000-1-1 ~ 9999-12-31

● time:表示时间 00:00:00 ~ 23:59:59

● datetime: 表示日期时间 1000-1-1 00:00:00 ~ 9999-12-31 23:59:59(常用)

------------------------------------------------------------------------------------------------------------------

修改表结构:

● 增加列: alter table 表名 add 新列名 数据类型;

● 删除列: alter table 表名 drop 列名;

● 修改列名: alter table 表名 change 旧列名 新列名 数据类型;

● 修改列的类型:alter table 表名 modify 列名 新的类型;

● 修改表名: alter table 旧表名 rename 新表名; 或者写为:rename table 旧表名 to 新表名;

------------------------------------------------------------------------------------------------------------------

SQL语句分类:

● DDL(数据定义语言):create、drop、alter等,定义库或者表结构的语句

● DML(数据操作语言):select、insert、update、delete等,操作表中的记录的语句

● TCL(事物管理语言):commit、savepoint、roolback

● DCL(数据控制语言):权限管理语句

------------------------------------------------------------------------------------------------------------------

约束:(not null:非空约束,指定某列不为空)

注意:not null约束只能在定义表时,设置非空约束。 并且只能作用在列级别上的

------------------------------------------------------------------------------------------------------------------

约束:(unique: 唯一约束,指定某列或者几列组合的数据不能重复)

单列唯一约束:

联合唯一约束:

● 添加唯一约束 : alter table 表名 add unique(单个字段名(多个字段使用逗号分隔));

● 修改唯一性约束:alter table 表名 modify 字段名 数据类型 unique;

● 删除约束 : alter table 表名 drop index 字段名;

注意:unique不会约束null值,只会约束写入的值

------------------------------------------------------------------------------------------------------------------

约束:(primary key:主键约束,指定某列或者几列组合的数据唯一并且非空)

● 添加主键 : alter table 表名 add primary key(单个字段名(多个字段使用逗号分隔));

● 修改列为主键 :alter table 表名 modify 字段名 数据类型 primary key;

● 删除主键约束 :alter table 表名 drop primary key;

注意:主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键(与联合唯一约束用法相同),它保证着表结构的完整性,能加快数据库的操作速度。表的记录必须有唯一区分的字段。主键主要是用于其他表的外键关联,以及本记录的修改与删除。一个表只能有一个primary key约束,而且约束中的列不能接受空值(未写入时的null与写入的null没办法比较)。由于primary key约束确保唯一的数据,所以经常用来定义标识列。复合主键定义的字段都不能存在null值,拼接后的值不重复

------------------------------------------------------------------------------------------------------------------

标识列特点:(又叫自增列。auto_increment:和主键配合使用,使主键成为自增长)

● 列的数据类型为不带小数的数值类型

● 在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值

● 列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列

注意:如果不使用自增长需要自行输入主键值。主键列是可以使用字符串作为类的类型的,但是如果要使用自增长,该列必须为整数类型

------------------------------------------------------------------------------------------------------------------

默认值:(default)

------------------------------------------------------------------------------------------------------------------

约束:(foreign key:外键,指定该列记录属于主表中的一条记录)

如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。一张表中可以有多个外键

● 添加外键:alter table 表名 add foreign key (外键字段名) references 主表名 (主表中的主键列);

注意:外键与主键的数据类型要相同。外键的长度可以比主键的长,但是不能比主键少。外键字段名与主键字段名可以不同。关联的主表中的列,必须是主键列。当前表中的外键字段的值,必须在主表存在(已知A、B两个班,甲同学要么还没分班(null),要么只能为A、B班其中一个)

------------------------------------------------------------------------------------------------------------------

外键的默认作用有两点:

● 对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败

● 对父表的作用:对父表的主键字段进行删和改时,如果对应的主键在子表中被引用,操作就会失败

------------------------------------------------------------------------------------------------------------------

外键的三种约束模式:

● district: 严格模式(默认), 父表不能删除或更新一个被子表引用的记录

● cascade:级联模式, 父表操作后,子表关联的数据也跟着一起操作

● set null:置空模式,前提外键字段允许为null,父表操作后,子表对应的字段被置空

------------------------------------------------------------------------------------------------------------------

使用外键的前提:

● 表储存引擎必须是innodb,否则创建的外键无约束效果

● 外键的列类型必须与父表的主键类型完全一致

● 外键的名字不能重复

● 已经存在数据的字段被设为外键时,必须保证字段中的数据与父表的主键数据对应起来

------------------------------------------------------------------------------------------------------------------

约束:(check:检查,指定一个表达式,用于检验指定数据)

注意:check约束,在mysql中设置后无效果,check 也不约束null的值

------------------------------------------------------------------------------------------------------------------

约束:(constraint:给约束字段起别名)

注意: 起别名只需在constraint关键字后加上要命名的名字既可

------------------------------------------------------------------------------------------------------------------

表与表之间的关系:

● 一对一:人与身份证(一个人只有一个身份证)

● 一对多:班级与学生(一个班级有许多个学生)

● 多对多:学生与课程(一个学生有多门课程,一门课程有很多个学生学习)

------------------------------------------------------------------------------------------------------------------

自己整理,有些地方是扒拉的,如有侵犯,还望告知

数据库——MySQL(一)(数据库常用命令 数据类型 创建表与修改表结构 约束 约束修改添加)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。