Mysql]基本操作

Mac 下GUI-Sequel Pro

Mysql v8.0以上会用不了

查看https://blog.csdn.net/zt15732625878/article/details/83388468

https://sequelpro.com/test-builds

系统库(不能删除)

登陆

$ mysql -uroot -p12345678 #明文密码方式

$ mysql -uroot -p #输入密码方式
$ ********

mysql>

基本操作

# 设置数据库编码
set names utf8;

# 导入数据库文件
# 注意:1.数据结构都会修改 2. .sql文件没有涉及的表不会自己删除
use d_name; 								# 选择d_name
source xx/xx/new_name.sql;	# 把当前库修改成new_name.sql内容


use d_name;# 选择d_name数据库
show databases;# 查看所有库
show tables;# 查看当前库 所有表
desc t_name;# 查看t_name表的结构

# 创建新名字为test的数据库
create database test;

#复制一个表
CREATE TABLE <表名> LIKE <被复制表>

#复制一个表和他的数据
CREATE TABLE <表名> SELECT * FROM <被复制表>


# == == == == 添加字段
#添加一个字段
ALTER TABLE <表名> ADD <列名> <数据类型> <其他>;
#<数据类型>
#	数字 tinyint smallint mediumint int bigint float double ...
#<其他>可以是
ALTER TABLE 表名 ADD 字段名 字段类型 [约束条件] [位置]
ALTER TABLE t_test ADD nickname varchar(25);# 例子-普通
ALTER TABLE t_test ADD nickname varchar(25) COMMENT ‘昵称’;# 例子-带约束条件
ALTER TABLE t_test ADD nickname varchar(25) FIRST;# 带位置
ALTER TABLE t_test ADD nickname varchar(25) AFTER gender;# 添加到<已存在字段>后

删 库、表

# 库
drop database letoo_game;
# 表
drop table t_users;

# == = = = == = = 数据
# 删所有 delete from <table name>;
delete from t_users;

# 筛选删 delete from <table name> WHERE <clause>;
delete from t_users where u_id=3;


改数据

UPDATE <表名>
SET 字段1=值1 [,字段2=值2… ] 
[WHERE 子句 ]
[ORDER BY 子句]
[LIMIT 子句]

#举例
UPDATE user_game SET coin="1e+10" WHERE use_id=2;

改表结构



# == == == == 要修改名字
ALTER TABLE 表名 CHANGE 旧名 新名 类型 [约束条件];

ALTER TABLE t_test CHANGE name nickname int DEFAULT 0 NOT NULL;

# == == == == 修改其他
ALTER TABLE 表名 MODIFY COLUMN 名字 类型 [约束条件];

ALTER TABLE t_test MODIFY COLUMN nickname int DEFAULT 0 NOT NULL;


# == == == == 删除字段
ALTER TABLE t_test ALTER DROP COLUMN nickname;


# 设置字段条件
ALTER TABLE t_test ALTER COLUMN nickname SET DEFAULT ‘刘德华’;
# 删除字段条件
ALTER TABLE t_test ALTER COLUMN nickname DROP DEFAULT;

# == == == == 修改表结构-约束条件
ALTER TABLE t_user ADD unique(username);
ALTER TABLE t_user ADD primary key(username);

select * from t_name;# 列出表中所有内容

约束条件

PRIMARY KEY			#(主键)
NOT NULL				#(非空)
AUTO_INCREMENT	#(自增长)
UNIQUE					#(值唯一)
FOREING KEY			#(外键)
DEFAULT 1				#(默认值)

导出

-d表示只导出结构

> 表示写入这个文件

>>表示添加到这个文件尾

# 导出数据库
mysqldump -u用户名 -p密码 [-d] 库名 >文件名.sql; 
 
#导出某张表
mysqldump -u用户名 -p密码 [-d] 库名 表名>文件名.sql;

#只导出指定的多张表
mysqldump -u用户名 -p密码 库名 表名1 表名2 表名3>文件名.sql;

其他

时间戳与date类型转换

# 把时间戳转成date类型
FROM_UNIXTIME(123123123)
# date类型转成时间戳
UNIX_TIMESTAMP('2020-09-23 20:00:35')

添加时间



DATE_ADD(date,INTERVAL expr type)
# 参数:date
now() #当前时间
'2020-09-23 20:00:35' #时间字符串
# 参数:expr type
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH


# 获取当前时间
select now(); 

# 更新当前时间
UPDATE user_games SET speed2_endtime=date_add(now(),interval 15 minute)WHERE user_id = 10 LIMIT 1;


mysql 命令

看所有库

show databases;

选择表

use 表名;

看所有表

show tables; 

看xxx表所有数据

select * from 表名; 
select 键1,键2 from 表名 where 条件;

创建数据库

create database xxx;

显示表结构

describe xxx; 

插入数据

insert into xxx(id,username,age,sex) values(1,"zhangsan",23,1);

修改数据

update xxx set yyy=123 where id=2;

删除数据

delete from xxx where id=3;

排序

select * from 表 order by id asc;(升序)
select * from 表 order by id desc;(降序)
select * from 表 order by id desc,sex asc;(多字段,多排序)

统计

select count(第几列) from 表

限制

select * from 表 limit 查询数
select * from 表 limit 跳过数,查询数

删除表、库

drop table 表名
drop database 库名

##查询

SELECT * FROM <表名> WHERE <条件>

删除

DELETE FROM <表名> WHERE <条件>

##更新修改

UPDATE <表名> SET <修改参数> WHERE <条件>

条件

不等于

<>

包含

in()

匹配XXX字段

( NOT ) LIKE 'XXX'

带%通配 如wang% 代表以wang为开头的所有

清空表数据

TRUNCATE <表名>

刷新root请求权限

# 到系统表
use mysql;
# 察看所有用户与host
select user,host from `user`;
# 更新root的host
update `user` set host="%" where user = "root" limit 1;
# 刷新权限
flush privileges

条件 WHERE

IS NOT NULL 有值
IS NULL 无值

select * from 表 where address IS NOT NULL or address ="";

BETWEEN 在范围内
NOT BETWEEN 不在范围内

select * from 表 where score BETWEEN 70 AND 90;

IN 指定范围内

select * from 表 where score IN (70,88,90);

OR(或)、AND(与)、NOT(非)

LIKE 搜索指定模式 模糊查询

%表示忽略
%xx:以xx结尾
xx%:以xx开头
%xx%:包含xx

select * from 表 where email like "%qq.com%";

分组函数

括号里可以写列idkey

写法作用
AVG()平均值
COUNT()数量
MAX()最大
MIN()最小
SUM()

评论