8、MYSQL命令整理

查询

show table status from mysql like 'user'\G;**   **该命令将输出Mysql数据库管理系统的性能及统计信息**
grant select,insert,update,****DELETE****,****CREATE****,****DROP** **on mysql.\* to 'tom'@'localhost' identified by '123456';     授权tom用户,查询、插入、更新、删除、创建、删除库 的权限**
desc table;                       显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。**
show index from table;            显示数据表的索引信息,包括PRIMARY KEY(主键)**
show status like 'Threads%';      查看当前连接数据库的数量** Threads_connected**、当前并发数**Threads_running
show processlist;                 查看当前连接的状态**
show variables like '%max_connections%'         查看当前数据库设置的最大连接数!** set GLOBAL max_connections=256; 
show global status like 'Max_used_connections'; 查看服务器响应的最大连接数,**服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上

create table t1(t1_id int not null auto_increment,
​    -> t1_title varchar(100) not null,
​    -> t1_author varchar(100) not null,
​    -> submission_data date,
​    -> primary key (t1_id)
​    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;                   创建t1表,设置t1_id 主键,并自动增加,并设置submission_data 日期自动更新,但是不能自动添加时间
insert into t1(t1_title, t1_author, submission_data) value('aa', 'bb', NOW());      插入数据,时间会自动更新


SELECT * from tutorials_tbl WHERE BINARY tutorial_author='sanjay';    数据库默认不比较字符串大小写,使用binary,区分大小写
select * from t1 where t1_title like "%jay";                          查询表中已“jay”结尾的所有记录

修改

alter table t1 modify submission_data datetime;                      修改t1表中submission_data类型
alter table t1 add  column  t1_end  varchar(100)  default  null;     在表中增加一个列t1_end
alter table t1 drop column  t1_end;                                  删除表中一列t1_end
alter table t1 rename t2;                                            修改表的名字
alter table t1 add primary key;                                      删除表中设置的主键索引,如果删除不了,请先修改列的类型,把自动增长auto_increment 给更改
alter table t1  add  primary key(t1_id);                             设置某列为主键

更新

update students set name="小明", age=19 where tel="13288097888";    将手机号为 13288097888 的姓名改为 "小明", 年龄改为 19
update students set tel=default where id=5;                         将 id 为 5 的手机号改为默认的
update students set age=age+1;                                      将所有人的年龄增加 1
UPDATE runoob_tbl SET runoob_title = REPLACE(runoob_title, 'C++', 'Python') where runoob_id = 3;   更新 runoob_id 为 3 的runoob_title 字段值的 "C++" 替换为 "Python":

删除

DELETE FROM tl WHERE tl_id=3;           删除 tl表中t1_id=3 的数据

多表联合查询

https://www.cnblogs.com/tugenhua0707/p/10771935.html

1)内连接:join, inner join
2)外连接:left join, left outer join, right join, right outer join, union;
3) 交叉连接:cross join
join的含义是:用于多表中字段直接的联系。
基本语法如下:
select * from table1 inner|left|right join table2 on conditiona
说明:table1 是指第一张表。table2是指第二张表。 on 后面的含义是:满足这个条件。
join按照功能可以分成如下三类:
1) inner join(内连接,或叫等值连接):取得两个表中存在连接匹配关系的记录。
2)left join(左连接):取得左表(table1)完全记录,右表(table2)如果有条件相符合的记录就匹配,否则为null;
3) right join(右连接): 取得右表(table2)完全记录,左表(table1)如果有条件相符合的记录就匹配,否则为null;

Last updated