【MySQL】常用语句整理

一、MySQL服务的启动和停止

(1)启动MySQL

net start mysql

也可以在“计算机管理”——“服务和应用程序”——“服务”中找到MySQL,右键“启动”。

(2)停止MySQL

net stop mysql

也可以在“计算机管理”——“服务和应用程序”——“服务”中找到MySQL,右键“停止”。


 二、使用数据库

这里的school为我自己建立的数据库。

(1)登录数据库

mysql [-h服务器主机地址] -u用户名 -p

注:-h表示所要登录的主机名,如果就是当前操作的机器,可以省略不写。

(2)查看所有数据库

SHOW DATABASES;

(3)创建一个数据库    

CREATE DATABASE school;

(4)删除一个数据库

DROP DATABASE school;

(5)修改数据库的编码格式

ALTER DATABASE school CHARACTER SET utf8;

(6)切换到要使用的数据库

USE school;

三、使用表

注:下面我进行的操作都是在school这个数据库的环境下

(1)创建表

CREATE TABLE [IF NOT EXISTS] 表名(
	列名1 列类型[属性][索引][注释],
	列名2 列类型[属性][索引][注释],
	……
	列名3 列类型[属性][索引][注释]
)[表类型][表字符集][注释];

e.g. 创建freshman表,表中存放:学号(id)、姓名(name)、性别(gender)、专业(major)

CREATE TABLE freshman(
    id int  UNSIGNED NOT NULL AUTO_INCREMENT primary key,
    name char(8) NOT NULL,
    gender char(4) NOT NULL,
    major char(10) NOT NULL
);
  • UNSIGNED——无符号,不可为负数
  • AUTO_INCREMENT——自动在上一个记录数上+1,通常用于设置主键(如果中间删除一个行数据,记录数不会补上)

扩:ZEROFILL——不足位用0填充,如int(3),那么就是005
     COMMENT——注释

效果:

(2)查看school数据库中所有表

SHOW TABLES;

效果:

(3)删除表

drop table freshman;

(4)查看freshman表

describe freshman;
也可以是:
desc freshman;

效果:


四、表的修改

(1)添加列
 

alter table 表名 add 列名 列数据类型 [after 插入位置];

默认是添加在表的最后:

alter table freshman add age tinyint unsigned not null;

也可以指定添加的位置:

alter table freshman add age tinyint unsigned not null after gender;

效果:

(2)修改列名称

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

e.g. 将freshman表中的“gender”名称改为“sex”:

alter table freshman change gender sex char(4);

效果:

(3)删除列

alter table 表名 drop 列名;

e.g. 删除freshman表中的“age”列

alter table freshman drop age;

效果:

(4)重命名表

alter table 旧表名 rename 新表名;

e.g. 将freshman表重命名为“dayi”

alter table freshman rename dayi;

效果:

(5)表中插入数据

insert into 表名 [(列名1,列名2,列名3,...)] values (值1,值2,值3,...);

 [(列名1,列名2,列名3,...)] 这部分可以省略不写,但是添加的值必须要与表结构中的数据列顺序相对应,且数量一致。
e.g. 在freshman表中插入一条完整的数据

insert into freshman values(001,"asherrr","male","Mechanical Engnering");

也可以插入部分数据:

insert into freshman(id,name) values(002,"Peter");

效果:


五、表的查询

(1)指定列查询

select id,name from freshman;

效果:

(2)去重查询(重复的只记录一次)
相同姓名的只显示一次:

select distinct name from freshman;

效果:

(3)列运算

  • 数量类型的列可以做加减乘除运算
select name,id+2 from freshman;

效果:

  • 字符串连接
select name,concat(major,'hi') from freshman;

效果:

  • 给列起别名
select name names,sex gender from freshman;

效果:

(4)模糊查询

  • 查询名字为两个字并且是以‘子’结尾
select *from freshman where name like '_子';

‘_子’ 有一条下划线,表示‘子’前面只有一个字,即:有几条下划线,‘子’前面就有几个字
效果:

  • 查询name列中带‘r’
select *from freshman where name like '%r%';

效果:

(5)排序

  • 升序

asc(ascending)是默认的,可以忽略不写

select *from freshman order by id [asc];

效果:

 

  • 降序 
select *from freshman order by id desc;

效果:

  • 多列排序
select * from freshman order by id desc,major desc;

效果:

(6)聚合函数
这里在freshman表中添加了score列:

  • 查询所有列不全为空的个数
select count(*) from freshman;

效果:

  • 查询score累加值
select sum(score) from freshman;

效果:

  • 查询score平均分数
select avg(score) from freshman;

效果:

  • 查询最高分数
select max(score) from freshman;

效果:

  • 查询最低分数
select min(score) from freshman;

效果:

(7)分组查询

  • 按性别分组,查询不同性别的人数
select sex,count(*) from freshman group by sex;

效果:

  • 查看不同性别的得分大于85分的人数
select sex,count(*) from freshman where score>85 group by sex;

效果:

(8)limit

select *from freshman limit 2,2;

limit检索是从0开始的,故limit2,2意思为检索出第三和第四行
效果:

(9)更新表中数据

update 表名 set 列名1=新值1[,列名2=新值2,列名3=新值4,...] where 更新条件;

e.g. 将freshman表中id为1的人的分数设为90分

update freshman set score=90 where id=1;

新值可以嵌套select查询语句
e.g. 将freshman表中id为4的人的分数赋给id为1的人

update freshman set score = 
(select score from
(select score from freshman where id = 4)
as num)
where id = 1;

效果:

(10)删除表中数据

  • delete命令
    delete from 表名 where 删除条件;

    e.g. 将freshman表中分数为80分以下的行

delete from freshman where score<80;
  • truncate命令
truncate [table] 表名;
  • truncate与deleted的区别
    • 相同
      • 都能删除数据,不删除表结构,但truncate速度更快
    • 不同
      • 使用truncate会重新设置AUTO_INCRIMENT计数器
      • 使用truncate不会对事务有影响

推荐一本MySQL入门书《MySQL必知必会》(文字版),如有需要的同学欢迎下载,大家一起加油啊!ヾ(◍°∇°◍)ノ゙
链接:《MySQL必知必会》(文字版)
提取码:kdpk 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值