文章目录
数据库、数据库管理系统
数据库(Database,简称DB)
概念
长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”
作用
保存、管理数据
分类
关系型数据库(SQL)
MySQL、Oracle、SQL Server、SQLite、DB2
非关系型数据库(NOSQL)
Redis、MongoDB
数据库管理系统(Database Management System)
数据管理软件,科学组织和存储数据、高效地获取和维护数据
mysql简介
概念
是现流行的开源、免费的关系型数据库
特点
免费、开源数据库
小巧、功能齐全
使用便捷
可运行于Windows或Linux操作系统
可适用于中小型甚至大型网站应用
设置编码格式
1、service mysql stop
2、vi /usr/my.cnf
3、[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation_server=utf8_general_ci
SQLyog管理工具
可手动操作、管理MySQL数据库的软件工具
特点
易用
简洁
图形化
使用sqlyog连接数据库
赋权前
use mysql;
select host,user from user;
赋权
grant all privileges on *.* to 'root'@'%' identified by 'ok';
GRANT:赋权命令
ALL PRIVILEGES:当前用户的所有权限
ON:介词
*.*:当前用户对所有数据库和表的相应操作权限
TO:介词
‘root’@’%’:权限赋给root用户,所有ip都能连接
IDENTIFIED BY ‘ok’:连接时输入密码,密码为ok
WITH GRANT OPTION:允许级联赋权
赋权后
通过sqlyog连接数据库
命令行连接数据库
mysql -h 服务器主机地址 –u 用户名 -p用户密码
-h 服务器主机地址 (不是当前主机登录时使用)
结构化查询语句SQL
结构化查询语句分类
命令行操作数据库
创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
删除数据库
DROP DATABASE IF EXISTS 数据库名;
查看数据库
SHOW DATABASES;
SHOW CREATE DATABASE test;
使用数据库
USE 数据库名;
创建表
显示表结构
desc 表名
显示表创建语句
show create table 表名
命令行创建表
CREATE TABLE [ IF NOT EXISTS ] 表名
(
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
反引号用于区别MySQL保留字与普通字符而引入的
列类型
规定数据库中该列存放的数据类型
分为
数值类型
字符串类型
日期和时间型数值类型
NULL值
数值类型
字符串类型
日期和时间型数值类型
列类型分类
NULL值
理解为“未知值”
不要用NULL进行算术运算,结果仍为NULL
选择数据类型
整数和浮点
日期类型
char和varchar
属性设置
1、UNSIGNED
无符号的
声明该数据列不允许负数
2、ZEROFILL
0填充的
不足位数的用0来填充,如 int(3),5则为 005
3、AUTO_INCREMENT
自动增长的,每添加一条数据,自动在上一个记录数上加1
通常用于设置主键,且为整数类型
可定义起始值和步长
4、NULL 和 NOT NULL
默认为NULL,即没有插入该列的数值
如果设置为NOT NULL,则该列必须有值
5、DEFAULT
默认的
用于设置默认值
例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
字段注释
COMMENT ‘ ’
表类型
ENGINE = MyISAM
ENGINE = InnoDB
MySQL的数据表的类型
MyISAM、InnoDB 、HEAP、BOB、CSV等
使用MyISAM: 节约空间及相应速度
使用InnoDB: 安全性,事务处理及多用户操作数据表
表字符集
可为数据库、数据表、数据列设定不同的字符集
设定方法
CHARSET = utf8
数据表的存储位置
MySQL数据表以文件方式存放在磁盘中
包括表文件、数据文件以及数据库的选项文件
位置:MySQL安装目录\data下存放数据表。目录名对应数据库名,该目录下文件名对应数据表
InnoDB类型数据表只有一个*.frm文件,数据文件为上一级目录的 ibdata1 文件
MyISAM类型数据表对应三个文件:
*.frm – 表结构定义文件
*.MYD – 数据文件
*.MYI – 索引文件
修改表(ALTER TABLE)
修改表名
ALTER TABLE 旧表名 RENAME TO/AS 新表名
添加字段
ALTER TABLE 表名 ADD COLUMN 字段名 列类型 [ 属性 ]
修改字段
ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]
修改字段的类型属性等,名字不变
ALTER TABLE test ADD COLUMN testId INT;
ALTER TABLE test MODIFY COLUMN testId INT(4);
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]
修改名字 类型属性等,修改力度比modify大
删除字段
ALTER TABLE 表名 DROP COLUMN 字段名
ALTER TABLE test DROP COLUMN testId;
删除数据表
DROP TABLE [ IF EXISTS ] 表名
IF EXISTS 为可选,判断是否存在该数据表
如删除不存在的数据表会抛出错误