MySQL 快速入门 之常使用到的语句

在工作室不太忙时,整理了份实训文档,帮老师交给他所带的班上的师弟师妹(我可真是好人~)。留下精髓,记录一下经常使用的mysql语句。

一、 MySQl程序操作

1.1 在终端上操作

启动(管理员权限打开)

net start mysql

关闭(管理员权限打开)

net stop mysql

远程访问

mysql -hip -uroot -p   或   mysql --host=ip --user=root --password=密码

登录数据库

mysql -u root -p

查看数据库版本

mysql -V (或登录后输入status)

查看连接端口

show global variables like 'port';

退出

exit(或quit)

1.2 通用语法

1.以分号结尾

2.SQL语句不区分大小写(关键字建议用大写)

3.注释方式:
单行注释:–注释内容#注释内容
多行注释:/注释内容/

二、 数据库命令行操作

2.1 操作数据库

创建数据库

create database 库名;

删除数据库

drop database  库名;

选择/使用数据库

use 库名;

查询数据库

show databases;

查询当前数据库

select database();

查询数据库结构

show create database 库名;

修改数据库的字符集

alter database 库名 character set 字符集名; /*utf8*/

2.2 操作数据表

创建表

create table 表名;

删除表

drop table 表名;

查看数据表

show table;

显示数据表结构

desc/describe 表名;

查询表结构

show create table 表名;

复制完整表结构

create table 表名 like 被复制表的名

修改表名

alter table 表名 rename to 新表名;

修改表的字符集

alter table 表 character set 字符集;

添加一列

alter table 表名 add 列名 数据类型;

修改列名称

alter table 表 change 列 新列 新数据类型;

修改列类型

alter table 表名 modify 列名 新数据类型;

删除列

alter table 表名 drop 列名;

2.3 创建表实例

在这里插入图片描述
1.如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。

2.auto_increment定义列为自增的属性,一般用于主键,数值会自动加1。

3.primary key关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。

4.engine设置存储引擎,charset设置编码。

三、 crud命令行操作

crud是指在做计算处理时的增加(Create)、读取(Read)、更新(Update)和删除(Delete)几个单词的首字母简写。

3.1 增加

插入数据

insert into 表名 (字段1,) values (1,);

3.2 读取

查询数据(查询条件是区分大小写的)

select 字段1, 字段2 from 表名 where 限定条件;

3.3 更新

更新数据(如果不加条件,就会修改表中所有记录)

update 表 set 字段1=值… where 限定条件;

在这里插入图片描述

指定条件更新(replace用法)

update 表set 字段1=replace(值)… where 限定条件;

在这里插入图片描述

3.4 删除

删除表(指定条件删除)

delete from 表名 where 限定条件;

四、 DQL(数据库查询语句)

4.1 查询语句

多字段查询 (可以用 * 这个符号代替查询所有字段)

select 字段名1, 字段名2... from 表名;

去除重复 (两个字段名要都相同才能去重)

select distinct 字段名 from 表名;

计算列 (可以使用四则运算来简单计算数据)

select 字段名1+字段名2 from 表名;

若数据中有null, null参与运算,计算结果为null, 则将有null的字段用 IFNULL(字段名, 0)

例如:

select NAME, math, english, math + IFNULL(english, 0) from stu;

起别名 (可以用AS, 也可以用一个或多个空格)

select 字段名 AS 别名 from 表名;

4.2 条件查询

1.where子句后跟条件

2.运算符

算数运算符 符号
除法 /
除法(有余数) %
比较运算符 符号
等于 ==
不大于 =
不等于 != 或 <>
不小于 !<
不大于 !>
位运算符 符号
左移 (左操作数的值向左移动右操作数指定的位数) <<
右移 >>
如果同时存在于两个操作数中,二进制 AND运算符复制一位到结果中 &
如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中 (双竖线)
二进制补码运算符是一元运算符,具有"翻转"位效应 ~
逻辑运算符 符号
在最小值与最大值范围内搜索 between
用于子查询条件中,若真则返回主查询 exists
把某个值与使用通配符运算符的相似值进行比较 like (模糊查询)
把某个值与使用通配符运算符的相似值进行比较(与like的区别是,它是大小写敏感的) grob
把某个值与一系列指定列表的值进行比较 in
作用与 = 运算符相似 is
搜索指定表中的每一行,确保唯一性(无重复 unique
占位符 符号
单个任意字符 _
多个任意字符 %

例如: 查询名字中包含陈的学生的所有信息。

   select * from stu where name LIKE '%陈%';

4.3 排序查询

4.3.1 order by 语句
order by 排序字段1 排序方式, 排序字段2 排序方式2;

例如:

select * from stu ORDER BY math; /*默认升序排列*/
4.3.2 排序方式:asc 升序(默认),desc 降序

例如:

 select * from stu ORDER BY math ASC;

 select * from stu ORDER BY math DESC;

4.4 聚合函数

1.count 计算个数
2.max 最大值
3.min 最小值
4.sum 计算和
5.avg 平均值

例如: 查询stu表中math的平均成绩,如果列中有null, 则为0。

    select AVG(IFNULL(math, 0) from stu;

4.5 分组查询

group by分组字段;

4.5.1 where 与having 的区别

(1)where 在分组之前进行限定, 如果不满足条件, 则不参与分组。 having 在分组之后进行限定, 如果不满足结果, 则不会被查询出来。

(2)where 后不可以跟聚合函数, having 可以进行聚合函数的判断。

例如: 按照性别分组, 查询stu表, 分数大于70分, 分为男 女两组, 分别显示数学平均成绩和男女所占人数。

select sex , AVG(math), COUNT(id) peo_sum from stu 
where math > 70 GROUP BY sex HAVING peo_sum > 2;

分析:首先, 分组前用where进行筛选, 查询数学大于70, 接着用GROUP BY对性别进行分组. 分组完成后, 上面将COUNT(id)起名为peo_num, 最后用HAVING对分组后的数据进行筛选, 查询人数大于2的数据。

4.6 LIMIT用法

作用:限制查询结果的条数。

select * from 列表 limit m,n
解释:m是记录开始的index,从0开始,表示第一条记录;n是从m+1开始,取n条记录。

开始的索引 = 查询的页码 - 1

1.不指定位置偏移量,只取4条

SELECT * FROM stu LIMIT 4;

2.指定位置偏移量,从第4条起取3条

select * from stu LIMIT 3, 3; 
/*因为索引是从0开始计数的,所以第4条对应的索引是3*/

另外,推荐下载Navicat,使用Navicat操作数据库比较友好。


文章来源: https://blog.csdn.net/qq_45069279 ,作者:苜苜的烂笔头,版权归原作者所有,如需转载,请联系作者。

原文链接:https://blog.csdn.net/qq_45069279/article/details/105727633

(完)