MySQL(一)数据库操作

1.关系型数据库与非关系型数据库区别与联系

1.关系型数据库 ( SQL )

MySQL , Oracle , SQL Server , SQLite , DB2 , …
关系型数据库通过外键关联来建立表与表之间的关系

2.非关系型数据库 ( NOSQL )

Redis , MongoDB , …
非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

2.DBMS

数据库管理系统 ( DataBase Management System )

数据库管理软件 , 科学组织和存储数据 , 高效地获取和维护数据

数据字段属性

UnSigned

无符号的

声明该数据列不允许负数 .

ZEROFILL

0填充的

不足位数的用0来填充 , 如int(3),5则为005

Auto_InCrement

自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)

通常用于设置主键 , 且为整数类型

可定义起始值和步长

当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表

SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

NULL 和 NOT NULL

默认为NULL , 即没有插入该列的数值

如果设置为NOT NULL , 则该列必须有值

DEFAULT

默认的

用于设置默认值

例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值

3.创建数据库表

格式([]内的可填可不填)

CREATE TABLE [IF NOT EXISTS ]`表名` (
`字段名` 列类型 【属性】 【索引】 【注释】,
`字段名` 列类型 【属性】 【索引】 【注释】,
`字段名` 列类型 【属性】 【索引】 【注释】,
) 【表类型】【字符集设置】【注释】
CREATE TABLE IF NOT EXISTS `student` (
`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` varchar(30) NOT NULL DEFAULT '姓名1' COMMENT '姓名',
`pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` datetime DEFAULT NULL COMMENT '生日',
`address` varchar(100) DEFAULT NULL COMMENT '地址',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 IF NOT EXISTS 如果不存在就创建
2.COMMENT 起别名
3.NOT NULL AUTO_INCREMENT 没有值自增
4.NOT NULL DEFAULT 没有值默认值为“姓名1”,“123456“…
5.datetime DEFAULT NULL 默认为空
6.PRIMARY KEY (id) 默认ID为主键,一般一个表只有一个唯一的主键
在这里插入图片描述

-- 查看数据库的定义
SHOW CREATE DATABASE school;
-- 查看数据表的定义
SHOW CREATE TABLE student;
-- 显示表结构
DESC student;  -- 设置严格检查模式(不能容错了)SET sql_mode='STRICT_TRANS_TABLES';

4.常见的 MyISAM 与 InnoDB 类型:

在这里插入图片描述

适用 MyISAM : 节约空间及相应速度

适用 InnoDB : 安全性高 , 事务处理及多用户操作数据表

MySQL数据表以文件方式存放在磁盘中

包括表文件 , 数据文件 , 以及数据库的选项文件

位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表 .

  • . frm – 表结构定义文件

  • . MYD – 数据文件 ( data )

  • . MYI – 索引文件 ( index )

InnoDB类型数据表只有一个 *.frm文件 , 以及上一级目录的ibdata1文件

设置数据表字符集

为数据库,数据表,数据列设定不同的字符集,设定方法 :

创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;

如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定

5.修改数据库

修改表名 :ALTER TABLE 旧表名 RENAME AS 新表名

添加字段 : ALTER TABLE 表名 ADD字段名 列属性[属性]

修改字段 :

ALTER TABLE 表名 MODIFY 字段名 列类型[属性]

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性]

删除字段 : ALTER TABLE 表名 DROP 字段名

将数据库student名字改为student1
ALTER TABLE student RENAME AS student1
增加一个字段age1 定义为int11ALTER TABLE student1 ADD age1 INT(11)
更改age1的约束 由int改为varchar
ALTER TABLE student1 MODIFY age1 VARCHAR(11)
字段重命名 age1改为age2
ALTER TABLE student1 CHANGE age1 age2 INT(1)
删除字段age2的那一列
ALTER TABLE student1 DROP age2

删除表
DROP TABLE [IF EXISTS] 表名

DROP TABLE IF EXISTS student1

注意

IF EXISTS为可选 , 判断是否存在该数据表
如删除不存在的数据表会抛出错误

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值