MySQL部分常用基础语法

前言

蠢博主最近在学习MySQL,整理了一些语法基础,使自己能在需要的时候方便查找。撰写是以个人理解的角度写的,所以有错误的地方还望大家及时指正。

版本查看

//数据库内操作
select version()

基础语法

部分()中的"/"表示可选项。数据库中的单行注释为“#”,下文写惯了。。。。。。错误示范哈。

//新建数据库示例
create database if exists '库名'
default character set gb2312
default collate gb2312_chinese_ci;

//修改库
alter database '库名'
default character set gb2312
default collate gb2312_chinese_ci;


//删除库
drop database '库名';

//新建表范例,带索引
 create table db_school.tb_student
(
	studentNo char(10) ,
	studentName char(6) not null default'默认值',
	courseNo int(6) index,
	classNo int(3) unique,
	constraint PK_student primary key(studentNo),
	constraint FK_student1 foreign key(courseNo) references tb_crourse(crourseNo),
	constraint FK_student2 foreign key(classeNo) references tb_calss(classNo),
	constraint CK_class check (classNo=3)
)engine=innodb;


//更新表约束示例,添加或删除约束
alter table db_school.tb_class drop foreign key FK_class1;
若未命名,使用show语句查看系统命名

//查询示例
select distinct 列名/表达式 as ‘虚拟名’ from 表名
where 表达式
group by 表达式  having 表达式
order by 列名(asc升序,desc降序)
limit 显示行数,第几行开始;

//左右连接查询
select 列名 from 表1 left join 表2 on 列名=列名;

//子查询
外层查询 in (内层查询);

//模糊查询
select distinct 列名/表达式 as ‘虚拟名’ from 表名
where 列名 like '%_';

//联合查询示例
select distinct 列名/表达式 as ‘虚拟名’ from 表名
union
select distinct 列名/表达式 as ‘虚拟名’ from 表名;

//插入数据
insert into 表名(列名) values('0','1'),('2','3');

//更新数据
update 表名 set 列名='值';

//删除数据
delete 列名 from 表名 where 表达式;

//创建索引
create index 索引名 on 表名(列名)
或
alter table 表名 add index/unique/key 索引名 表名(列名);

//删除索引
drop index 索引名 on 表名;

//创建、修改视图
create/alter view 视图名(列名) 
as
select 语句
with check option;

//删除视图
drop view 视图名;

//更新视图,insert、uodate、delete
语法同更新表(换了个对象)

//创建触发器
create trigger 触发器名 触发时间(after/befor) 
触发事件(insert/update/delete)
on 表名 for each row 触发器主体

//创建触发器示例
create trigger db_school.tb_student_insert_trigger after insert 
on db_school.tb_student for each row set @str='one student added!';

//删除触发器
drop trigger 触发器名;

//查看事件调度器
show variables like'event_scheduler';

//开启事件调度器
set global event_scheduler=on;

//创建、修改事件
create/alter event 事件名 
on schedule 时间调度(例:every 1 minute)
事件属性(enable/disable/ disable on slave)
do 事件主体(做啥事); 

//创建用户示例
create user '测试账户'@'localhost' identified by '123';

//删除用户
drop user '用户名'@'用户类型';

//修改用户名
rename user 旧名称 to 新名称;

//修改密码
set password for '用户名'@'用户类型'=possword('');

//授予权限
grant 权限名称(delete/select/update等)
	on 数据库名.表名
	to '用户名'@'用户类型' by '密码',
		 '用户名1'@'用户类型1' by '密码1',
	with 转移(权限名称 option)或限制(例:MAX_CONNECTIONS_PER_HOUR 1);

//撤销权限
revoke 权限名
	on 数据库名.表名
	from '用户名'@'用户类型' by '密码';

//php中常用函数
mysql_connect()  //连接数据库
mysql_pconnect()  //持久连接
mysql_selcet_db()  //选择数据库
mysql_query()		//执行操作
mysql_fetch_array()	//读取查询结果的记录
mmysql_close()   //关闭连接

常见问题

密码相关

1、忘记密码,但是navicat有保存密码:参考大佬

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值