MySQL数据库的基础操作

目录

一、数据库的基础操作

1、创建数据库

2、显示数据库

3、使用数据库

4、删除数据库

二、常用数据类型

1、数值类型:

2、字符串类型:

3、日期类型:

三、表的基础操作

1、创建表

2、显示表

3、查看表结构

4、删除表

四、表的增删改查(基础)

1、新增数据

(1) 单行数据全列插入:

(2) 单行数据指定列插入:

(3) 多行数据全列插入:

2、查询数据

(1) 全列查询

(2) 指定列查询

(3) 查询字段为表达式

(4) 别名

(5) 去重

(6) 排序

(7) 条件查询

(8) 分页查询

3、修改数据

(1) 修改指定行的指定列

(2) 修改指定行的所有列

4、删除数据

(1) 删除指定行

(2) 删除所有行


一、数据库的基础操作

1、创建数据库

语法:create database 数据库名;

注意:

(1) 数据库名一般不可以是SQL中的关键字(如create 、database、where、between......)

如果非要使用关键字来命名,可以借助 ` `

(2) 不可以存在同名的数据库:

当我们再次创建名为“demo”的数据库时,MySQL就会提示该数据库已存在:

如果我们不确定将要创建的数据库是否已经存在时,可以加个判断条件:

语法:create database if not exists 数据库名;

如果数据库已经存在,就会报警告,如果数据库不存在,则创建成功。 

(3) 创建数据库时可以指定该数据库采用的字符集,如果不指定,则默认采用拉丁文,不能表示汉字:

语法:create database 数据库名 character set 字符集名;

指定为utf8可以表示汉字。

2、显示数据库

语法:show databases;(注意此处的database是复数形式)

3、使用数据库

语法:use 数据库名;

4、删除数据库

红温警告⚠,该操作属于危险操作,谨慎使用~

语法:drop database 数据库名;

注意:

(1) 删除和使用关键字命名的数据库时,也是需要加上` `;

(2) 删除不存在的数据库时会报错,如果不确定要删除的数据库是否存在时,也可以加个判断条件,如果数据库存在则删除,不存在则报警告。

语法:drop database if exits 数据库名;

二、常用数据类型

1、数值类型:

 数值类型可以指定为无符号类型(unsigned),但是不建议。 

2、字符串类型:

3、日期类型:

三、表的基础操作

对数据库中的表进行操作前,需要先使用该数据库:use 数据库名;

1、创建表

语法:create table 表名(数据类型 字段名,数据类型 字段名......);

可以使用comment -- (空格)添加注释:

2、显示表

显示当前数据库中所有的表,语法:show tables;

当前数据库中只有刚才创建的一个student表,注意此处的table也是复数~ 

3、查看表结构

语法:desc 表名;

4、删除表

红温警告⚠,该操作属于危险操作,谨慎使用~

语法:drop table 表名;    或者    drop table if exits 表名;

四、表的增删改查(基础)

1、新增数据

(1) 单行数据全列插入:

语法:insert into 表名 values (数据,数据...);

注意:插入数据时,数据的类型以及数量要和表中定义的类型和数量一致。 

(2) 单行数据指定列插入:

语法:insert into 表名(字段名,字段名...) values (数据,数据);

此处的数据当然也必须是互相对应的:

(3) 多行数据全列插入:

语法:insert into 表名 values (数据,数据...),(数据,数据...),...,(数据,数据...);

同样地,每行数据都得和表中定义的类型和数量一致。 

2、查询数据

(1) 全列查询

语法:select * from 表名;

通常情况下,不建议使用全列查询,如果数据量过于庞大,全列查询的效率会非常低下。 

(2) 指定列查询

语法:select 列名,列名... from 表名;   (列名即字段名)

(3) 查询字段为表达式

语法:select (列名和表达式的组合) from 表名;

注意:加上表达式的查询结果并不会改变表中实际存放的数据:

 

(4) 别名

语法:select 列名 as 别名 from 表名;

关键字 as 可以省略,但是不建议~ 

(5) 去重

关键字:distinct

语法:select distinct 列名 from 表名;

如果同时给多个列去重,那么需要对应行的对应列都重复:

(6) 排序

关键字:order by、asc(升序)、desc(降序)

语法:select 列名 from 表名 order by 待排序的列名 asc/desc;

注意: 

(1) null数据视为比任何数值都小,升序时在最上面,降序时在最下面;

(2) 可以对多个列进行排序,排序优先级按照书写顺序;

(3) 升序时的关键字 asc 可以省略(见上图),但是不建议这样写。 

(7) 条件查询

关键字:where

比较运算符:

逻辑运算符:

示例:

(1) 查询分数大于90分的同学:

(2) 查询年龄大于18并且分数大于80分的同学:

(3) 查询年龄大于18,或者分数大于80分的同学:

(4) 查询分数在[90,100]的同学:

使用and也可以做到,但是and的效率不如between高。

(5) 查询年龄是18或19岁的同学:

使用 or 也可以做到,但是效率不如 in。 

(6) 查询姓名是“悟”开头的同学:

注意:% 表示任意多个字符,而 _ 表示一个字符:

如果是‘%悟’,则表示查询以“悟”字结尾的名字,前面有多少个字都可以;

如果是‘%悟%’,则表示查询名字中有‘悟’字的,‘悟’字在开头、结尾、中间都可以。

如果是“_悟',则表示查询以“悟”字结尾的两个字的名字;

如果是“悟_',则表示查询以“悟”字开头的两个字的名字;

如果是“_悟_',则表示查询名字中间是“悟”字的三个字的名字;

(7) 查询分数为null的同学

如果使用 = 查询 ,则结果为空:

注意:

(1) 条件查询可以使用表达式,但不能使用别名,因为条件查询执行的优先级高于别名查询;

(2) and 的优先级高于 or ,可以使用()来选中需要优先执行的语句。

(8) 分页查询

关键字:limit

语法:select 列名 from 表名 limit n;       (从第0行往后查询n行数据)

语法:select 列名 from 表名 limit n offset m;       (从第m行往后查询n行数据)

(1) 按分数降序查询所有同学:

 (2) 查询分数前三高的同学:

(3) 从第2行往后查询分数前三高的同学:

3、修改数据

关键字: update

(1) 修改指定行的指定列

语法:update 表名 set 列名 = 表达式 where 条件;

示例:把八戒的分数改为60分

(2) 修改指定行的所有列

红温警告⚠,该操作属于危险操作,谨慎使用~

语法:update 表名 set 列名 = 表达式;

示例:把所有同学的分数改为0分

4、删除数据

红温警告⚠,该操作属于危险操作,谨慎使用~

关键字:delete

(1) 删除指定行

语法:delete from 表名 条件;

示例:删除名为八戒的数据

(2) 删除所有行

语法:delete from 表名;

示例:删除student表中所有的数据

删除表和删除数据库都是相当危险的操作,务必谨慎使用~

  • 27
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃点橘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值