【MYSQL学习笔记】管理MYSQL和使用MYSQL语句

一、前言

MySQL提供了大量的SQL语句用于管理。很多时候,通过SSH远程连接时,只能使用SQL命令,所以,了解并掌握常用的SQL管理操作是必须的。

二、管理MYSQL

输入SQL后,记得加一个;,再回车执行该语句。虽然有些不需要,但是MYSQL里面,select不加;则会让客户端继续等待输入。如果在图形界面或则会程序开发中集成则不用加;

2.1 创建数据库

create database test;

2.2 删除数据库

drop database test;

*注意:如果删除数据库,其所有表会被删除。

所以在删除数据库的时候,要先切换为当前数据库,然后在删除。

use test;

2.3 表相关操作

2.3.1 查看所有表

show tables;

2.3.2 查看表结构

desc students;

2.3.3 查看创建表

show create table students;

2.3.4 创建和删除表

create table students;

drop table students;

2.3.5 修改表

//修改表会更复杂一些

//给表students添加一列birth

alter table students add column birth varchar(10) not null;

//修改birth列,改为birthday,类型改为varchar(20)

alter tabble students change cloumn birth birthday varchar(20) not null;

//删除列birthday

alter table students drop cloumn birthday;

2.3.6 退出MYSQL

exit;//仅断开客户端和服务器的连接,服务器仍继续运行。

三、实用的SQL语句

3.1 插入或替换

insert则如果有存在则需要删除,再插入。

如果replace则不必先先查询,再决定是否先删除后插入。

replace into students(id,class_id,name,gender,score)values(1,1,‘XM’,‘F’,99)

//若id=1,先删除后再插入新记录。不然则,用replace插入新记录。

3.2 插入或更新

如果记录存在,则更新记录,可以使用insert into …on duplicate key update…

insert into students(id,class_id,name,gender,score)values(1,1,‘XM’,‘F’,99) on duplicate key update name='小明‘,gender=‘F’,score=99;

//id=1 记录被更新,更新字段由update指定。否则,id=1不存在,insert将插入新记录。

3.3 插入或忽略

语法:insert ignore into

如果存在则忽略,什么也不做。如果存在不存在则插入一条。

insert ignore into students(id,class_id,name,gender,score)values values(1,1,‘XM’,‘F’,99);

3.4 快照

复制一份表,则可以使用create table和select。创建的表和查询表,结构一致。

create table classstudent1 select *from students where class_id=1;

3.5 写入查询结果集

语法:insert + select

insert into static(classid,average) select classid,avg(score) from students group by class_id;

3.6 强制使用制定索引

查询的时候回自动选择索引,但不一定是最优。如果知道如何选择索引,那么可以强制使用索引。

语法:force index,前提是使用的索引要存在。

案例:select * from students force index (idxclass_id) where classid=1 order by id desc;

四、参考文章

管理MYSQL
实用MYSQL语句

你可能感兴趣的:(数据库,mysql)