MYSQL-1

1. MYSQL分类

关系型数据库:(SQL)
MySql Oracle Sql Server DB2 SQLlite
通过表与表之间,列与列之间的关系进行数据存储
非关系型数据库:(NoSQL,not only sql)
Redis MongoDB
通过对象进行存储,通过对象自身的属性决定操作

DBMS 数据库管理系统
是一个数据库的管理软件,数据库用于存储数据,DBMS用于管理和操作数据。

MYSQL
mysql是关系型数据库管理系统,使用语言为SQL语言,分为社区办和商业版。体积小、速度快、成本低。

2. 安装MYSQL

安装建议

  1. 不要用EXE安装,卸载不干净
  2. 尽可能使用压缩包安装

安装

  1. 解压压缩包
  2. 将解压后的包,放在自己电脑环境目录下
  3. 添加环境变量:Mysql的bin目录
  4. 新建mysql配置文件,在bin的同级下创建文件my.ini
    [mysqld]
    basedir=安装包所在目录,如D:\Pg\mysql-5.7\
    datadir=没有改目录不用管,会自动生成,如D:\Pg\mysql-5.7\data\
    port=3306
    skip-grant-tables   \\用于免登陆
    
  5. 启动管理员下的CMD,运行所有的命令(往注册表里注册服务,安装)
    · 切换到mysql的bin目录下,mysqld -install
    · 初始化数据文件,就是my.ini中配置的data目录,mysqld --initialize-insecure --user=mysql,查看bin同级下是否新生成data目录
  6. 启动mysql,修改密码
    · net start mysql net stop mysql
    · mysql -uroot -p
    · updata mysql.user set authentication_string=password(‘root’) where user=‘root’ and Host=‘localhost’;

安装可视化软件SQLyog

3. 数据库操作

3.1 连接数据库

mysql -uroot -proot  --连接数据库
update mysql.user set authentication_string=password('12345') where user = 'root' and Host = 'localhost' ;   --修改用户名密码
flush privileges;   --刷新权限
-------------------------------------------------------------
show databases;    --查询数据库
use 数据库名称;      --切换数据库
show tables;       --查看数据库下的表
describe 表名;      --查看表中字段的信息
-------------------------------------------------------------
create database 数据库名;    --创建一个数据库
exit     --退出连接
--   单行注释
/*    */   多行注释

3.2 数据库操作

create database [if not exists] 数据库名;
drop database [if exists] 数据库名; 
use 数据库名;    --注意,如果数据库名是一个特殊字符,就需要带飘,use `数据库名`;
show databases;    --查看所有数据库

3.3 数据库列类型*

数值:
tinyint 1个字节
smallint 2个字节
mediumint 3个字节
int 4个字节,标准整数
bigint 8个字节,对应long
float 4个字节,浮点数
double 8个字节,(存在精度问题)
decimal 字符串形式的浮点数,用于金融计算

字符串
char 0~255,固定大小的字符串
varchar 0~65535,可变长度字符串,对应String
tinytext 2^8-1,微型文本
text 2^16-1,文本串,保存大文本

时间日期
date YYYY-MM-DD 日期格式
time HH:mm:ss 时间格式
datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
timestamp 时间戳,1970.1.1到现在的毫秒数

null
没有值,未知,不要使用null进行运算,如果运算结果为null

3.4 数据库的字段属性

unsigned
无符号整数,声明了该列取值不能为负数

zerofill
默认字段使用0填充,不足的位数使用0填充,如果长度设置为5,35就会写成00035

自增
自动在上一条基础上+1,用来设置唯一的主键,必须是整数类型,可以自定义设置主键自增的起始值和步长

非空
NULL 和 not null,设置为not null,如果新增的时候不给赋值就会报错

默认
设置默认的值

注意:开发时, 每个表都应有几个固定字段,包括ID(主键),version(做乐观锁的),is_delete(伪删除),gmt_create(创建时间),gmt_update(修改时间)

3.5 操作数据库表

注意点:
使用英文括号,表名称和字段名称用飘圈起来
1. 创建数据库表
语法:
create table if not exits `表名` (
`id` int(4) not null auto_increment comment ‘这里是英文的点’,
`name` varchar(30) not null default ‘默认值’ comment ‘姓名’,
`birthday` datetime default null comment ‘出生日期’,
primary key (`id`) – 一般写在表的最后,方便查看
)engine=innodb default charset=utf8; --声明引擎和默认字符集


Innodb(默认使用)和Myisam的区别

MYISAMINNODB
支持事务不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约为myisam两倍

总结:
1. myisam节约空间,速度较快
2. innodb安全性高,事务的处理,多表多用户操作
3. 所有的数据库文件都存在data目录下,一个文件夹对应一个数据库,本质都是文件存储:
innodb在数据库表中只有一个*.frm文件,以及上级目录下的ibdata文件
myisam对应文件:*.frm 表结构的定义文件,*.MYD 数据文件,*.MYI 索引文件

2. 修改数据库表

alter table 原表名 rename as 新表名;

3. 增加数据库表字段

alter table 表名 add 字段名 列属性;
eg> alter table teacher add age int(11) not null;

** 4. 修改数据库表字段**

1. 重命名表字段
alter table 表名 change 原列名 新列名
eg> alter table teacher change age age1;
2. 修改字段约束
alter table 表名 modify 字段名 列属性;
eg> alter table teacher modify age varchar(11);

5. 删除数据库表字段

alter table 表名 drop 字段名;
drop table if exists 表名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值