MySQL常用语法

2023-06-28,,

数据库级别操作

#查看有哪些数据库
show databases; 

#创建数据库
create database 【数据库名字】; 

#显示数据库的字符集
show create database 【数据库名字】; 

#字符集不一致时导致数据库乱码的罪魁祸首,使help create database还可以看到校对规则。
create database 【数据库】 default character set【字符集,如utf8,gbk】;

#删除数据库
drop database 【数据库】;

#切换数据库
use 【数据库】;

#查看当前数据库
select database(); 

#查看有哪些表
show tables;

#显示指定数据库的表
show tables from 【数据库】;



用户管理设置密码

#创建用户
create user '用户'@'主机域';

#设置密码
set password for '用户'@'主机域' = password('密码');

#创建用户
create user '用户'@'主机域' identified by '密码';

#删除系统多余账户
drop user '用户名'@'主机域'; 

#删除指定用户
delete from mysql.user where user='用户' and host='主机域';

#刷新更新
flush privileges;

赋予收回权限

#授权
grant all on 【数据库】.【*或表】 to '用户'@'主机域';

#所有权限,可单独给usage连接,主要select,create,update,insert,delete。
grant all privileges on 【数据库】 to '用户'@'主机域';

#查看该用户的权限
show grants for 用户@主机域;

#收回权限
revoke 【权限】 on 【数据库】.【*或表】 from 用户@主机域;

表操作

#新建表
create table test (字段1 类型(数) 参数1,2.. comment ‘中文注释’,字段2 类型(数) 参数1,2..);

#类型:int 整数,double 双精度浮点型,char 定长字符串优化效率,varchar 变长字符串,date 日期型
#参数:primary key主键,not null不为空,auto_increment自动增长

#查看表的结构
desc 【表】;

#显示建立这个表的语句
show create table 【表】; 

#插入记录
insert into 【表】(【字段1】,【字段2】) values(【值1】,【值2】), (【值1】,【值2】)…;

#若没写字段则按照表里面字段的顺序来,可同时插入需多条,一次插入多条属于优化。

查询记录

select 【列名】 from 【表】 where 【字段】='【%可匹配任意】';

#查看表
select * from test; 

#查看前两行
select * from test limit 2; 

#从第二行开始查接下来的两行
select * from test limit 2,3;

#id降序【asc升序】排列再查前两行
select * from test order by id desc limit 2; 

#范围查询
select * from test where id >2 and【or】 id<4; 

#多表查询
select t1.id t1.name t2.age from t1,t2 where t1.name=t2.name and t1.name='zhangsan';

更新数据

#更新记录:要跟where,不然就挂了
update 【表】 set 【列】=【值】 where 【列】='【值】';

#删除记录:要跟where,不然就挂了
delete from 【表名】 where id >3;

#清空数据
truncate table 【表】;

#插入字段
alter table 【表】 add 【字段名】 【类型参数】 after 【字段】;
add添加,change改变,drop删除

#更改表名
rename table 【原表名】 to 【改名】;