数据库一般命令指南 (各处搬运)

# 常用指令
select version();
# 查看mysql的版本

show databases;
# 显示当前所有的数据库

use database_name;
# 选择使用的数据库名字

create database database_name charset utf8;
# 创建数据库


```bash
# 对于数据表的操作(对数据表的操作使用alter)

show tables;
# 显示当前数据库中所有的数据表

create table table_name(
    id int unsigned auto_increment primary key not null,
    name varchar(50)
);
# 创建一个数据表,int unsigned无符号整型,auto_increment:自动增长
# primary key:主键, not null:不为空
# 创建表的时候,需要定义数据表的字段名,以及属性(varchar(50))
# 注意(name varchar(50),后面没有逗号)

desc table_name;
# 查看使用的数据库所选择的数据表的字段

alter table table_name add 字段名 字段属性(int/varchar(n));
# 给相应的数据表添加字段

alter table table_name change 字段名(原名) 字段名(新名) 字段类型 约束(not null);
# 对数据表进行字段修改(同时名字也修改)

alter table table_name modigy 字段名 类型 约束;
# 对数据表进行字段的修改(不修改字段名)

alrer table table_name drop 字段名;
# 删除数据表中的某个字段

drop table table_name;
# 删除数据表

# 对数据表中的数据进行操作

insert into table_name values(id,'name','gender',score...),(id,'name','gender',score)....;
# 这样是对照表的字段名,进行数据填充,必须所有的字段名都有

insert into table_name(name) values('name'),('name')...;
# 这里是这填充相应字段的数据

update table_name set 字段名=值 where id = n;
# 对数据进行修改,where进行限定

delete table_name where id = n;
# 对数据进行删除

# 对数据进行查询

select * from table_name;
# 查询表中的所有数据

select name,gender,... from table_name;
# 从数据表中查询对应的数据

select * from table_name where id in (3,5,6);
# 查询表中id=3,id=5,id=6的数据

select * from table_name where id between 3 and 5;
# 查询数据表中连续的3到5的数据

select * from table_name where id > 5;
# 查询数据表中id>5的数据

select * from table_name where id >5 and gender ="男";
# 可以使用and来进行俩个条件同时限制的查询

# 优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
# and比or先运算,如果同时出现并希望先算or,需要结合()使用 

select * form table_name order by score (asc/desc);
# 将查询的结果集进行排序,默认是asc(升序),然后是desc(降序)

select * from talbe_name limit 0,count;
# 进行查询结果的分页操作
# 0是从第几条开始,默认是0
# count是每页有几条数据

# 聚合函数使用的查询
select max(score) from people where gender = '男';
# 选择男生里最高的成绩

select num(score) from people where gender='男';
# 查询男生的总成绩

select avg(score) from people where gender='男';
select sum(score)/count(*) from people where gender='男';
# 查询男生的平均成绩

select gender from people group by gender;
# 根据性别进行分组,并查看分组结果

# 分组查询的用法
select gender, group_concat(id) from people group by gender;
# 根据性别进行分组,并且查询对应组的id
# select gender,count(*) from people group by gender;
# 根据性别进行分组,并且根据查询出每组对应的人数

select gender,group_concat(name) from people group by gender having id>2;
# 这里的having是和where的效果一样的,但是只适用于group by

select gender,count(*) from students group by gender with rollup;
# 这里的with rollup是专门在最后新增一行,来记录当前表中该字段对应的操作结果

# 连接查询的规则
select * from 表1 inner/left/right join 表2 on 表1.列 运算符 表2.列
select * from people inner join book on people.book_id = book.id
# 内连接就是查询表和表之间满足连接条件的数据

# 数据库的左右内连接查询
mysql> select * from book;
+----+----------------+--------+-------------+
| id | name           | author | create_time |
+----+----------------+--------+-------------+
|  1 | <三国演义>     | 1985   | 李四        |
|  2 | <西游记>       | 1888   | 张三        |
|  3 | <红楼梦>       | 1898   | 王五        |
|  4 | <西游记>       | 1888   | 张三        |
+----+----------------+--------+-------------+
4 rows in set (0.00 sec)

mysql> select * from people;
+----+--------+--------+-------+-------+---------+
| id | name   | gender | class | score | book_id |
+----+--------+--------+-------+-------+---------+
|  1 | 张三   || a     |  NULL |       3 |
|  2 | 李四   || b     |  NULL |       3 |
|  3 | 王六   || c     |  NULL |       3 |
|  4 | 周七   || d     |  NULL |       1 |
+----+--------+--------+-------+-------+---------+
4 rows in set (0.00 sec)

mysql> select * from people inner join book on people.book_id = book.id;
+----+--------+--------+-------+-------+---------+----+----------------+--------+-------------+
| id | name   | gender | class | score | book_id | id | name           | author | create_time |
+----+--------+--------+-------+-------+---------+----+----------------+--------+-------------+
|  4 | 周七   || d     |  NULL |       1 |  1 | <三国演义>     | 1985   | 李四        |
|  1 | 张三   || a     |  NULL |       3 |  3 | <红楼梦>       | 1898   | 王五        |
|  2 | 李四   || b     |  NULL |       3 |  3 | <红楼梦>       | 1898   | 王五        |
|  3 | 王六   || c     |  NULL |       3 |  3 | <红楼梦>       | 1898   | 王五        |
+----+--------+--------+-------+-------+---------+----+----------------+--------+-------------+
4 rows in set (0.00 sec)

mysql> select * from people left join book on people.book_id =book.id;
+----+--------+--------+-------+-------+---------+------+----------------+--------+-------------+
| id | name   | gender | class | score | book_id | id   | name           | author | create_time |
+----+--------+--------+-------+-------+---------+------+----------------+--------+-------------+
|  4 | 周七   || d     |  NULL |       1 |    1 | <三国演义>     | 1985   | 李四        |
|  1 | 张三   || a     |  NULL |       3 |    3 | <红楼梦>       | 1898   | 王五        |
|  2 | 李四   || b     |  NULL |       3 |    3 | <红楼梦>       | 1898   | 王五        |
|  3 | 王六   || c     |  NULL |       3 |    3 | <红楼梦>       | 1898   | 王五        |
+----+--------+--------+-------+-------+---------+------+----------------+--------+-------------+
4 rows in set (0.00 sec)

mysql> select * from people right join book on people.book_id =book.id;
+------+--------+--------+-------+-------+---------+----+----------------+--------+-------------+
| id   | name   | gender | class | score | book_id | id | name           | author | create_time |
+------+--------+--------+-------+-------+---------+----+----------------+--------+-------------+
|    1 | 张三   || a     |  NULL |       3 |  3 | <红楼梦>       | 1898   | 王五        |
|    2 | 李四   || b     |  NULL |       3 |  3 | <红楼梦>       | 1898   | 王五        |
|    3 | 王六   || c     |  NULL |       3 |  3 | <红楼梦>       | 1898   | 王五        |
|    4 | 周七   || d     |  NULL |       1 |  1 | <三国演义>     | 1985   | 李四        |
| NULL | NULL   | NULL   | NULL  |  NULL |    NULL |  2 | <西游记>       | 1888   | 张三        |
| NULL | NULL   | NULL   | NULL  |  NULL |    NULL |  4 | <西游记>       | 1888   | 张三        |
+------+--------+--------+-------+-------+---------+----+----------------+--------+-------------+
6 rows in set (0.00 sec)

 #登录MySQL,使用命令

 mysql -u root -p或mysql -u root -ppassword【ps:-ppassword后面的密码是你的root密码】
  #修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  #更新用户密码     

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
 #刷新权限

FLUSH PRIVILEGES; 
 #重置密码
alter user 'root'@'localhost' identified by '你的密码';

/usr/local/mysql/bin/mysql -uroot 进入mysql命令
建议:更改环境变量PATH,增加mysql的绝对路径 (export PATH=/usr/local/mysql/bin)
mysqladmin -uroot password’123456’ 给root用户增加密码
密码更改操作:mysqladmin -uroot p’123456’ password’13456’
密码重置
vi /etc/my.conf mysqld增加一行skip-grant 意思忽略授权
之后重启mysql /etc/init.d/mysql restart
进入mysql 打开mysql库 use mysql
update user set password =password(‘123456’) where user =‘root’; 设置root的新密码为123456
修改后将skip-grant 删掉 重启mysql
4.常用连接mysql的命令
mysql -uroot -p12345
mysql -uroot -p12345 -h127.0.0.1 -p3306 远程连接
mysql -uroot -p12345 -S/tmp/mysql.sock sock连接
mysql -uroot -p12345 -e “show databases” 直接使用命令一般用于shell脚本
5.查询库 show databases;
6.切换库 use mysql;
7.查看库里的表 show tables;
8.查看表里的字段 desc tb_name;
9.查看建表时的语句 show create table tb_name\G; G是竖排显示,不加会乱
10.查看当前用户 select user ();
11.查看当前使用的数据库 select database();
创建库 create database db1 ;
13.创建表 use db1 ; create table t1(‘id’ int(4),‘name/ char(40)) ;
14.查看当前数据库版本 select version() ;
15.查看数据库状态 show status ;
查看各参数 show variables ; show variables like ‘max_connect%’ ;
17.查看队列 show processlist ; show full processlist ;
18.mysql创建用户以及授权 grant 授权,允许 identified 认定为 %通配符
grant all on . to ‘user1’ @‘127.0.0.1’ identified by ‘passwd’ ; 授权user1用户来源于127.0.0.1
grant SELECT,UPDATE,INSERT on db1. to ‘user2’ @‘192.168.133.1’ identified by ‘passwd’ ;
grant all on db1 , to ‘user3’@’%’ identified by ‘passwd’ ;
show grants ;
show grants for user2@192.168.133.1 ; 用来查看指定用户的授权情况
grant完之后,还要执行 flush privileges;
例:怎么查询mysql当前有多少个用户呢?
use mysql;
select user,host from user;
19 。常用sql 语句
myusam 引擎查找很快,会统计行数 InnoDB 查找很慢,不会自动统计行数占资源
select 选择 insert 插入 update 修改 drop 删除 truncate table 清空表(不删除) desc 查看
set是修改系统参数或者设置变量用的
seletc count () from mysql.user ; count ()查找整个表的行顺 库和表中间有个点
select from mysql.db ; 查看所有内容 查看myql库下db表所有内容 可加\G
select db from mysql.db ; 查看单个字段
select db ,user from mysql.db ; 查看多个字段
select * from mysql.db where host like ‘192.168.%’ ; 模糊查询 查看mysql下db的192.168开头字段
insert info db1.t1 vlaues (1,‘abc’) ;
update db1.ti set name =‘aaa’ where id =1 ;
truncate table db1.t1 ; 清空db1库下的ti表
drop table db1.t1 ; 删除db1库下的ti表
drop database db1 ; 删除db1库
Mysql 数据库的备份与恢复 备份时先库后表 此适用于小型数据库
备份库 mysqldump -uroot -p12345 mysql >/tmp/mysqlbak.sql 备份mysql库到/tmp/mysqbakl.sql
恢复库 mysql -uroot -p12345 mysql </tmp/mysqlbak.sql
备份表 mysqldump -uroot -p12345 mysql user >/tmp/user.sql
恢复表 mysql -uroot -p12345 mysql </tmp/user.sql 只需库名
备份所有库 mysqldump -uroot -p -A >/tmp/123.sql -A相当于所有
只备份表结构 mysqldump -uroot -p12345 -d mysql >/tmp/mysql.sql
一些最重要的 SQL 命令
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

mysql alert用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值