mac使用brew安装mysql
先查看mac上边有没有安装brew
brew -v
可查看brew版本
没有安装可先安装brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
检查brew能否正常工作
brew doctor
更新brew包
brew update
安装mysql
brew insatll mysql
启动mysql
brew services start mysql
重启:
brew services restart mysql
启动MySQL服务
mysql.server start
需要权限时可以用
sodu mysql.server start
设置密码
mysql_secure_installation
查看 mysql 初始的密码策略
SHOW VARIABLES LIKE 'validate_password%';
修改mysql初始的密码策略
set global ...
set global validate_password.length=6;
连接mysql
输入 mysql -uroot -p
回车输入密码
mysql -uroot -p
查看当前的数据库端口号
mysql的默认端口号是3306
show global variables like 'port';
查看当前的数据库
SHOW DATABASES;
创建数据库时设置字符编码
直接创建的数据库,数据库的编码方式是 MySQL 默认的编码方式 latin1 (单字节编码) ,通常我们会在数据库中存放中文数据,所以最好把数据库的编码方式设置成 utf-8 ,这样中文才能正常显示。
CREATE DATABASE USER CHARSET UTF8;
删除数据库
MySQL中,删除数据库通过SQL语句DROP DATABASE。其语法格式如下:
DROP DATABASE User
查看和显示数据库的编码方式
使用 show create database 数据库名; 显示数据库的创建信息。
show create database User;
修改数据库编码
使用 alter database 数据库名 character set utf8;
如果一个数据库的编码方式不符合使用需求,可以进行修改。刚才创建的 MyDB_one 经过修改后,编码方式也变成了 utf-8 。
alter database User character set utf8;
进入或切换数据库
使用 use 数据库名 进入或切换数据库。
刚连接上 MySQL 时,没有处于任何一个数据库中,如果要使用某一个数据库,就需要进入到这个数据库中。
use 数据库名 这个命令后面的分号可以省略,这是 SQL 语句中唯一可以省略分号的语句。
use User;
显示当前数据库
进入数据库中,可以使用 select database(); 来查看当前处于哪个数据库中。长时间操作数据库时,在很多数据库中来回切换后,查看当前的数据库,避免操作错了数据库。
select database();
查看当前数据库中的表
使用 show tables;查看当前数据库中有哪些表。
show tables;
创建表
使用 create table 表名(字段1 字段类型,字段2 字段类型,字段3 字段类型,…); 来创建一张表。
在 User 中创建了一个叫 userinfo 的数据表,这张表有三个字段 id,username,password 。为了增加 SQL 的可读性,字段名我用的是小写,字段类型用大写。
create table if not exists userinfo (
id int unsigned auto_increment,
username varchar(100) not null,
password varchar(20) not null,
primary key ( id )
)engine=innodb default charset=utf8;
如果你不想字段为 null 可以设置字段的属性为 not null, 在操作数据库时如果输入该字段的数据为null ,就会报错。
auto_increment定义列为自增的属性,一般用于主键,数值会自动加1。
primary key关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
engine 设置存储引擎,charset 设置编码。
删除表
drop table userinfo
显示表信息
用 show create table 表名; 来显示已创建的表的信息。
show create table userinfo;
查询表内容
select * from userinfo;
如果想更好地展示表的字段信息,可以使用 desc 表名; 来显示表的字段信息。
desc userinfo;
给表增加字段
使用 alter table 表名 add 字段名 数据类型; 为已存在的表添加一个新字段。
alter table userinfo add age CHAR(20);
删除表的字段
使用 alter table 表名 drop 字段名; 删除一个表中已存在的字段。
alter table userinfo drop age;
修改字段的数据类型
使用 alter table 表名 modify 字段名 数据类型; 修改表中现有字段的数据类型。
alter table userinfo modify username VARCHAR(12);
修改字段的数据类型并且改名
使用 alter table 表名 change 原字段名 新字段名 数据类型; 修改表中现有字段的字段名和类型。
将表的 name 改成了 username ,同时修改了 username 的数据类型。
alter table userinfo change username name CHAR(18);
MySQL 常用字段类型
整数类型
数据类型 | 数据范围 |
---|---|
TINYINT | -128 – 127 |
SMALLINT | -32768 – 32767 |
MEDIUMINT | -2^23 – 2^23-1 |
INT | -2^31 – 2^31-1 |
BIGINT | -2^63 – 2^63-1 |
字符串类型
数据类型 | 字节范围 | 用途 |
---|---|---|
CHAR(n) | 0 – 255字节 | 定长字符串 |
VARCHAR(n) | 0 – 65535字节 | 变长字符串 |
TEXT | 0 – 65535字节 | 长文本数据 |
LONGTEXT | 0 – 2^32-1字节 | 极大文本数据 |
BLOB | 0 – 65535字节 | 二进制长文本数据 |
LONGBLOB | 0 – 2^32-1字节 | 二进制极大文本数据 |
小数类型
m 表示浮点数的总长度,n 表示小数点后有效位数。
数据类型 | 数据用法 | 数据范围 |
---|---|---|
Float | Float(m,n) | 7位有效数 |
Double | Double(m,n) | 15位有效数 |
Decimal | Decimal(m,n) | 28位有效数 |
时间类型
数据类型 | 格式 | 用途 |
---|---|---|
DATE | YYYY-MM-DD | 日期 |
TIME | HH:MM:SS | 时间 |
YEAR | YYYY | 年份 |
DATETIME | YYYY-MM-DD HH:MM:SS | 日期和时间 |
TIMESTAMP | 10位或13位整数(秒数) | 时间戳 |