开启/关闭mysql服务
sudo mysql.server start/stop
net start/stop mysql (windows下)
打开mysql
mysql -u root -p -P(3306) -h(127.0.0.1) /*-P(3306)为默认端口时候, -h(127.0.0.1)为本地回环地址的时候可省略*/
-P:端口号 默认3306
-h:服务器名称 默认本地回环地址
本地回环地址:127.0.0.1
默认端口:3306
查看mysql版本
mysql -V;(未进入mysql)
select version();(进入mysql)
显示当前日期
select now();
显示当前用户
select user();
退出mysql
exit;
quit;
\q;
修改root密码
1、mysql -u root -p '原来的密码'
2、show databases;
3、use mysql;
4、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码’;
查看mysql进程:ps -ef|grep mysqld
杀掉mysql进程:mysqldkill -9
重置mysql的root的密码(忘记密码的情况下)
关闭mysql服务器
sudo /usr/local/mysql/support-files/mysql.server stop
也可以在系统偏好里有个MySQL里关闭。
cd /usr/local/mysql/bin 进入目录
sudo su 获取权限
./mysqld_safe --skip-grant-tables & 重启服务器
重开个终端,
配置短命令:
alias mysql=/usr/local/mysql/bin/mysql
mysql -u root -p
use mysql进入mysql数据库
flush privileges;大概就是获取权限。
set password for 'root'@'localhost'=password('新密码'); 完成修改
数据库的操作
创建数据库
{}内为必须有的,[]为可有可无的,()是mysql语法的一部分,/**/内为注释,大写的为mysql的命令,且是固定的,小写的是自己命名的部分,不固定的。
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS ] name/*数据库的名字*/[DEFAULT] CHARACTER SET [=] character_name/*编码名称*/
例:创建utf8字符类型的数据库k2:CREATE DATABASE IF NOT EXISTS k2 CHARACTER SET utf8;
修改数据库
ALTER {DATABASE | SCHEMA} [name/*数据库的名字*/] [DEFAULT] CHARACTER SET [=]character_name/*编码名称*/
例:将数据库k2改为utf8字符类型:ALTERDATABASE k2CHARACTERSETutf8;
进入数据库
USE name/*数据库的名字*/;
删除数据库
DROP {DATABASE | SCHEMA} [IF EXISTS ]name/*数据库的名字*/
数据表的操作(数据表是二维表格)
创建数据表
CREATE TABLE [IF NOT EXISTS ] table_name/*数据表的名字*/(
column_name /* 数据表字段名*/ data_type /*数据类型*/,
column_name /* 数据表字段名*/ data_type /*数据类型*/
)
查看数据库中的数据表
SHOW TABLES [FROM db_name/*数据库的名字*/] [LIKE ‘pattern' | WHERE expr]
查看数据表结构
SHOW COLUMNS FROM table_name/*数据表的名字*/
删除数据表
DROP TABLE table_name/*数据表的名字*/
添加单列
ALTER TABLE table_name/*数据表的名字*/ADD [COLUMN] column_name /* 数据表字段名 数据类型 约束*/ [FIRST/AFTER column_name /* 要添加到某一字段之下,默认为添加到最后*/]
例:给数据表tb1添加字段名为age的一列: ALTER TABLE tb1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;
添加多列
ALTER TABLE table_name/*数据表的名字*/ADD[COLUMN](column_name /* 数据表字段名 数据类型 约束*/,…… )
删除列
ALTER TABLE table_name/*数据表的名字*/ DROP[COLUMN] column_name /* 数据表字段名*/;
例:删除数据表tb1中的age和password字段(可使用多个DROP删除多个列;也可在后面输入,ADD执行添加列的操作): ALTER TABLE tb1DROP agd, DROP password;
修改列定义
ALTER TABLE table_name/*数据表的名字*/ MODIFY[COLUMN] column_name /* 数据表字段名 数据类型 约束*/[FIRST/AFTER column_name /* 位置变为某一字段之后,默认位置不变*/]
修改列名称(同时也可修改列定义)
ALTER TABLE table_name/*数据表的名字*/ CHANGE[COLUMN] old_column_name/*修改前的字段名*/new_column_name/* 修改后的字段名 */ column_name /* 数据表字段名 数据类型 约束*/[FIRST/AFTER column_name /* 位置变为某一字段之后,默认位置不变*/]
数据表更名
1.ALTER TABLE table_name/*数据表的名字*/ RENAME[TO|AS] new_table_name/*修改后的数据表的名字*/
2.RENAMETABLEtable_name/*数据表的名字*/ TOnew_table_name/*修改后的数据表的名字*/ [,table_name2 TOnew_table_name2……/*可改多张表*/]
记录的操作
记录查找
SELECT expr,……… FROM table_name/*数据表的名字*/
查看本数据表所有内容
SELECT *FROM table_name/*数据表的名字*/ ;
插入记录(3种)
1.INSERT [INTO] table_name/*数据表的名字*/ [(column_name /* 数据表字段名*/,…… )] VALUES(val/* 字段值*/,……),(val/* 字段值*/,……)/* 插入多条记录*/
例:在tb1中给id,name,sex三个字段分别赋值为1,bob,0:INSERT INTO tb1 (id,username,sex) VALUES (4,"bob",0); 或者 INSERT INTO tb1 VALUES (4,"bob",0); 注意,省略字段名的情况下,后面的VALUES 的顺序和数量必须和字段名保持一致,即使id为AUTO_INCREMENT的约束下也不能省略,赋值为NULL或者DEFAULT,如果sex有默认值的约束的话,使用DEFAULT赋默认值,即INSERT INTO tb1 VALUES (NULL/DEFAULT,"bob",DEFAULT)
2.INSERT[INTO] table_name/*数据表的名字*/ SET column_name /* 数据表字段名*/ = {val/* 字段值*/|DEFAULT}
注:此种插入方法可以省略字段值约束为NULL或者DEFAULT的字段
3.INSERT[INTO] table_name/*数据表的名字*/[(column_name /* 要插入的表的字段名*/,…… ] SELECT …………/*select语句*/
更新记录(单表更新)
UPDATE [LOW_PRIORITY] [IGNORE] table_name/*数据表的名字*/ SETcolumn_name /* 数据表字段名*/ = {val/* 字段值*/|DEFAULT}[,column_name /* 数据表字段名*/ = {val/* 字段值*/|DEFAULT}]…………/* 多个字段更新*/ [WHERE where_condition/*where条件*/]
删除记录(单表删除)
DELETE FROM table_name/*数据表的名字*/[WHERE where_condition/*where条件*/]