• 生活的道路一旦选定,就要勇敢地走到底,决不回头。——左拉
  • 坚强的信心,能使平凡的人做出惊人的事业。——马尔顿
  • 人不可有傲气,但不可无傲骨。 --徐悲鸿
  • 古之立大志者,不惟有超世之才,亦必有坚韧不拔之志。 --苏轼
  • 时间像海绵里的水,只要你愿意挤,总还是有的。 --鲁迅

常用SQL语句

MySQL zkinogg 2年前 (2020-08-04) 271次浏览 0个评论

一.语义
1.DDL   数据定义语言    (create、drop)
2.DCL   数据控制语言    (grant、revoke)
3.DML   数据操作语言    (insert、delete、update)
4.DQL   数据查询语言    (select、desc)


#1.查看mysql表的user,host,password列
mysql> select user,host,password from mysql.user;   #mysql5.6查看方式
mysql> select user,host,authentication_string from mysql.user; #mysql5.7查看方式


#2.查看mysql表结构
mysql> desc mysql.user;

#3.跳过授权表和网络启动mysql和关闭mysql 注:此方法端口不起,是通过本地socket文件起的
mysql> mysql_safe --skip-grant-tables --skip-networking & 
[root@db01 bin]# mysqladmin shutdown -uroot -p123


#4.修改密码
方法一:grant all on *.* to root@'localhost' identified by '1234';
方法二:alter user root@'localhost' identified by '123';
方法三:set password for root@localhost = password('123');  

 
#5.两种启动方式
TCP/IP:mysql -uroot -p123 -h 10.0.0.51 -P3306
Socket: mysql -uroot -p123 -S /tmp/mysql.sock


#6.查看用户权限 
mysql> show grants for wordpress@'10.0.0.%';

#7.收回权限 
mysql> revoke delete on wordpress.* from wordpress@'10.0.0.%';


#8.表中添加列
alter table 表名 add 列名 varchar(20) not null comment ' xxx';

#9.修改数据类型属性
alter table 表名 modify 列名 新类型 varchar(64) not null comment 'xxx';
alter table 表名 change 旧列名 新列名 新类型 char(4) not null comment 'xxx';
#注:
mysql中alter语句中change和modify的区别为
当需要修改字段名称使用change;当需要修改字段类型时使用modify
change和modify的具体使用场景如下
CHANGE子句对列进行重命名。重命名时,需给定旧的和新的列名称和列当前的类型。要把一个INTEGER列的名称从column_a变更到column_b:

1
ALTER TABLE t1 CHANGE column_a column_b INTEGER;
如果想要更改列的类型而不是名称, CHANGE语法仍然要求旧的和新的列名称,即使旧的和新的列名称是一样的。例如:

1
ALTER TABLE t1 CHANGE column_b column_b BIGINT NOT NULL;
使用MODIFY来改变列的类型,此时不需要重命名:
1
ALTER TABLE t1 MODIFY column_b BIGINT NOT NULL


#10.删除列
alter table 表名 drop 列名;
desc 表名;
...

#10.授权命令
##1.授权命令(没有grant权限)
mysql> grant all on *.* to root@'172.16.1.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

##2.全库全表授权
mysql> grant all on *.* to root@'172.16.1.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

##3.单库授权
mysql> grant all on mysql.* to root@'172.16.1.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

##4.单表授权
mysql> grant all on mysql.user to root@'172.16.1.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

##5.单列授权(脱敏)
mysql> grant select(user,host) on mysql.user to root@'172.16.1.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

##6.授权一个超级管理员并回收授权权限
grant all on *.* to root@'172.16.1.%' identified by '123' with grant option;
Query OK, 0 rows affected (0.00 sec)
revoke grant option on *.* to 'root@172.16.1.%';


#11.插入数据规范写法
insert into student(name,age,birthday) values('张鑫','22','1996-02-20');

#12.修改
update student set age=18 where name='张鑫';

#13.删除
delete from student where id=8;
##如果就是要清空表
 delete from student where 1=1;



#12.2 select 通用语法(单表) *****
select  列   按顺序
from  表   
where 条件  
group by  条件 
having   条件 
order by 条件
limit 加数字 
常用聚合函数
MAX()  ,MIN() ,  COUNT(),   SUM() , distinct() , avg()     concat();   group_concat();
最大值 ,最小值 ,数量 ,     总和      去重          平均值      组合          竖行变横行


LIMIT M,N     :跳过M行,显示一共N行
LIMIT Y OFFSET X: 跳过X行,显示一共Y行

union 和 union all 作用: 多个结果集合并查询的功能
union all   不做去重复
union       会做去重操作



int             整数  -2^31 - 2^31-1    (-2147483648 - 2147483647)
tinyint         最小整数   -128 - 127   #年龄  0 - 255
varchar         字符类型(变长)    #身份证
char            字符类型(定长)
enum            枚举类型    #给它固定选项,只能选则选择项中的值    性别
datetime        时间类型    年月日时分秒

not null:           #非空
primary key:        #主键(唯一且非空的)
auto_increment:     #自增(此列必须是:primary key或者unique key)
unique key:         #唯一键,单独的唯一的
default:            #默认值
unsigned:           #非负数
comment:            #注释



# 13常用查看状态语句
show  databases;                          #查看所有数据库
show tables;                              #查看当前库的所有表
SHOW TABLES FROM                          #查看某个指定库下的表
show create database world                #查看建库语句
show create table world.city              #查看建表语句
show  grants for  root@'localhost'        #查看用户的权限信息
show  charset;                           #查看字符集
show collation                            #查看校对规则
show processlist;                         #查看数据库连接情况
show index from                           #表的索引情况
show status                               #数据库状态查看
SHOW STATUS LIKE '%lock%';                #模糊查询数据库某些状态
SHOW VARIABLES                            #查看所有配置信息
SHOW variables LIKE '%lock%';             #查看部分配置信息
show engines                              #查看支持的所有的存储引擎
show engine innodb status\G               #查看InnoDB引擎相关的状态信息
show binary logs                          #列举所有的二进制日志
show master status                        #查看数据库的日志位置信息
show binlog evnets in                     #查看二进制日志事件
show slave status \G                      #查看从库状态
SHOW RELAYLOG EVENTS                      #查看从库relaylog事件信息
desc  (show colums from city)             #查看表的列定义信息


喜欢 (1)
[17551054905]
分享 (0)

您必须 登录 才能发表评论!