首先我们登录MySQL。1
mysql -u root -p
查询目前已存在的数据库。1
sql> show databases;
下面我们开始进行增删改查的操作。
本文按照 增删改查 的顺序进行说明和演示,每个分类又分别按照对数据库,对表,对数据操作进行。但是实际操作中不一定是按照此顺序进行的,所以请根据实际情况进行操作。
增
增加数据库
语法:create database + 数据库名称 + [库选项]
库选项是用来约束数据库的,为可选项(有默认值),共有两种,分别为:
- 字符集设定:charset/ character set + 具体字符集,用来表示数据存储的编码格式,常用的字符集包括GBK和UTF8等。
- 校对集设定:collate+ 具体校对集,表示数据比较的规则,其依赖字符集。
示例:1
create database blog charset utf8;
注意 :这里的字符编码应该写作utf8,不能写作utf-8。
增加表
语法:create table [if not exists] + 表名(
字段名称 数据类型,
……
字段名称 数据类型 /* 最后后一行,不需要加逗号 */
)[表选项];
其中,
if not exists
表示如果表名不存在,就执行创建代码;如果表名存在,则不执行创建代码。(强烈建议你使用if not exists
选项,因为当数据库中出现大量表时候,你很难判断该表是否存在,使用该选项可以避免很多的麻烦问题。)
表选项则是用来控制表的表现形式的,共有三种,分别为:
- 字符集设定:charset/ character set+ 具体字符集,用来表示数据存储的编码格式,常用的字符集包括GBK和UTF8等。
- 校对集设定:collate+ 具体校对集,表示数据比较的规则,其依赖字符集。
- 存储引擎:engine+具体存储引擎,默认为InnoDB,常用的还有MyISAM。
由于表是依附于数据库的,所以在创建表的时候,都必须先指定具体的数据库。
指定数据库:use database_name;
示例:1
use blog;
下面开始创建表
示例:1
2
3
4create table if not exists user(
-> name varchar(10),
-> id int,
-> age int)charset utf8;
增加数据
语法:insert into + 表名 + values(值列表)[,(值列表)];
示例:1
insert into user values('bingyu',1,20);
删
删除数据库
基本语法:drop database + 数据库名称;
在这里,需要注意的是在删除数据库之前,应该先进行备份操作,因为删除为不可逆操作,所以不要随意删除数据库。
示例:1
drop database blog;
删除表
语法:drop table + 表名1,表名2 ...;
在这里,需要注意:删除表为不可逆操作,所以需要你谨慎使用此语法。
示例:1
drop table user;
删除数据
基本语法:delete from + 表名 + [where 条件];
当然,我们也可以用drop来实现删除操作,不过与delete相比,drop的威力更强,其在执行删除操作的时候,不仅会删除数据,还会删除定义并释放存储空间;而delete在执行删除操作的时候,仅会删除数据,并不会删除定义和释放存储空间.
示例:1
delete from user;
改
改数据库
语法:alter database + 数据库名称 + [库选项];
数据库的修改仅限库选项,即字符集和校对集(校对集依赖字符集)。
- charset/character set[=] 字符集;
- collate[=] 校对集;
示例:1
alter database blog charset gbk; # 修改此数据库的字符集编码为gbk.
改表
对表的修改包括新增、修改、重命名和删除字段。
新增字段语法:
alter table + 表名 + add + [column] + 字段名 + 数据类型 + [列属性][位置];
修改字段语法:
alter table + 表名 + modify + 字段名 + 数据类型 + [列属性][位置];
其中,位置表示此字段存储的位置,分为first(第一个位置)和after + 字段名(指定的字段后,默认为最后一个位置).
示例:1
alter table user modify id int after age;
- 重命名字段语法:
alter table + 表名 + change + 旧字段名 + 新字段名 + 数据类型 + [列属性][位置];
其中,位置表示此字段存储的位置,分为first(第一个位置)和after + 字段名(指定的字段后,默认为最后一个位置).
示例:1
alter table user change id ID int;
- 删除字段语法:
alter table + 表名 + drop+ 字段名;
示例:1
alter table user drop age;
改数据
语法:update + 表名 + set + 字段 = 值 + [where 条件];
改数据其实是更新数据。
示例:1
update user set age = 18 where id = 1;
查
查数据库
- 查看全部数据库语法:show databases;
示例:1
show databases;
- 查看部分(模糊查询)基本语法:
show databases like 'pattern';
其中,pattern是匹配模式,有两种,分别为:
- % :表示匹配多个字符;
- _ :表示匹配单个字符。
示例:1
show databases like 'blog'; # 表示匹配所有blog开头的数据库。
查看数据库的创建语法:show create database + 数据库名称;
在这里,查看的结果有可能与咱们书写的 SQL 语句不同,这是因为数据库在执行 SQL 语句之前会优化 SQL,系统保存的是优化后的结果。
查表
- 查看全部基本语法:
show tables;
示例:1
show tables;
- 查看部分()模糊查询)基本语法:
show tables like 'pattern';
其中,pattern是匹配模式,有两种,分别为:
- %:表示匹配多个字符;
- _:表示匹配单个字符。
示例:1
show tables like '%er'
查看表的相关 描述信息
语法:describe 表名;
示例:1
describe user;
查数据
- 查看全部语法:
select * from + 表名 + [where 条件];
示例:1
select * from user;
- 查看部分语法:
select + 字段名称[,字段名称] + from + 表名 + [where 条件];
示例:1
select name,id from blog where age=10;
以上内容收集于网上,由我本人重新整理排版而成,如果哪里有误还请反馈于我,以便我及时更正。
本文作者:冰羽
本文地址: https://bingyublog.com/2018/10/01/SQL基本操作-增删改查/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!