MySQL基础语法总结

一、MySQL的库操作

本文章主要是复习MySQL时,总结了一下MySQL的基础语法,如有问题多多指教
MySQL的登陆和退出操作

//登陆
MySQL -u 用户名 -p密码
//退出
exit;

1.数据库创建

//数据库的创建
create database 数据库名;

2.数据库的查看

//查看已经创建好的数据库
show databases;

3.删除数据库

//删除数据库
drop database 数据库名;

4.数据库的进入

use 数据库名;

二、关于表的操作

1.表的创建

1.1常用数值类型

在这里插入图片描述

1.2常用字符类型

在这里插入图片描述

1.3日期时间类型

在这里插入图片描述

1.4完整性约束表

完整性约束对插入数据的时候有约束
primary key表示当前属性为该表的主键,可以区分不同的行记录 不能重复
foreign key修饰的属性为该表的外键,表之间关联使用的键
not null表示属性不能为空
unique表示属性的值是唯一的 属性值不能重复
auto_incrementMYSQL特色,表示属性是自增的,自增类型为整形
default给属性设定默认值

主键 :通过主键推出其他的所有属性的值。
如果不满足上述条件说明主键设置的有问题。
一个表只能有一个主键 ,主键不能为空,不能重复

1.5表的相关操作

(1)查看库中的所有表

show tables;

(2)查看表的结构

desc 表名;

查看表的相关属性

show create table 表名:

(3)创建表

create table 表名 (	
属性名1 数据类型 完整性约束(可以没有的),
属性名2 数据类型 完整性约束,	
属性名3 数据类型 完整性约束,	
..........	
属性名N 数据类型 完整性约束);

例如:创建一个学生表,包含学生学号、姓名、年龄、性别

create table Student(
stu_id int not null,
name varchar(10)not null,
age int,
sex varchar(10));

(4)修改表
添加字段

alter table 表名 add 列名 类型;
alter table Student add birthday datetime;

修改表名

alter table 表名 rename 新名;
alter table Student rename Stu;

修改字段-数据类型

alter table 表名modify 列名 类型 约束;
alter table Student modify sex varchar(5)

修改字段-属性重命名

alter table 表名 change 旧属性名 新属性名 新数据类型
alter table Student change sex sexs varchar(10);

删除字段

alter table 表名 drop 列名;
alter table Student drop age;

2.插入数据

(1)属性不可缺省方式:

test_user(id  int ,name varchar(20),age int)
insert into(into可以不写) 表名 values
(属性值1,属性值2,属性值3,属性值4......);
//例如:插入学生小李
insert Student values(stu_id,name,sex)values
(2,'小李''男');
 

(2)属性可缺省方式:

insert into(into可以不写) 表名 (属性1,属性2,属性3,属性4......)values
   (属性值1,属性值2,属性值3,属性值4......);	
//例如:插入学生小明 
insert Student values 
(1,'小明'12'男');

字符串类型 日期时间 加 ‘’ 如: ‘Bob’ ‘1990’**

3.删除语句

delete from 表名 where 筛选条件
//例如:删除年纪大于60岁的人   	
delete from student where age > 60;

delete from 表名——删除整个表中数据

4.修改语句

update 表名 set 属性1=新值1,属性2=新值2......where 筛选条件
//例如:修改5号同学名字为小虎年龄为20	   
update student set name = '小虎', age = 20 where  stu_id = 5;

5.查询语句

select * from 表名 where 筛选条件;
*代表显示全部属性

select 属性1,属性2.....from 表名 where 筛选条件;

in(元素1,元素2,…,元素n)——表示在集合中的数据

select * from 表名 where 属性 in  ();
//例如:学号为1,2,4学生的信息
select * from student where stu_id in(1,2,4);

6.各种特殊使用

between 取值1 and 取值2——取值1<=结果<=取值2

//学生年龄在12到20直接的——[12,20]
select * from student where age between 12 and 20;

like '字符串’
在这里插入图片描述
在没有通配符时:like等效于=;
查询空值——is [not] null
消除重复结果select distinct 属性 from 表名

对查询结果排序
(升序)select * from 表名 order by 属性(asc);

//例如:对学生的年龄排序
//升序
 select * from student order by age;
 //(降序)
 select * from student order by age desc;

分组——group by

select * from student group by sex;//对性别分组

group by 与group_concat()

在这里插入图片描述
group by 与集合函数一起使用
在这里插入图片描述
group by与having一起使用
显示记录数大于等于3的,如下
在这里插入图片描述
having表达式作用于分组后的记录,用于选择满足条件的分组
group by 与with rollup一起使用
在这里插入图片描述
最后记录count(sex)的值为上面分组和

limit 限制查询结果数量

在这里插入图片描述
limit的初始位置为0,
limit 0,2;——输出0,1条数据

7.集合函数

count——统计记录数

按学号分组
在这里插入图片描述

sum()函数——求和函数

对学号为1的成绩求和
在这里插入图片描述

avg()函数——求平均值

course_id——不同科目
在这里插入图片描述

max()函数——最大值

各科目的最大值
在这里插入图片描述

min()函数——最小值

各科目的最小值
在这里插入图片描述

cast(属性 as dec(n.m)——小数保留设置

在这里插入图片描述

8.复合查询

内连接查询

select 表1,属性名……表2 from表1,表2 where 表1.EX=表2.EX and……
//例如:查询学生的成绩
在这里插入图片描述

左连接查询

A、B两表,以A表为左(主)
select A.……B.…… from A left join B on A.EX=B.XE
例如:通过左连接以Student为主表,查询学生的成绩
在这里插入图片描述

右连接查询

A、B两表,以B表为右(主)
select A.……B.…… from A right join B on A.EX=B.XE
例如:通过右连接以Student为主表,查询学生的成绩
在这里插入图片描述

9.子查询

语法:select 属性列表 from 表1 where 连接方式(select 属性列表 from 表2 where 刷选条件)
连接方式:in、not in、exists、not exists 比较运算符 还有any、all
exists:当内层查询查询到结果记为true,外层才执行
not exists:当内层查询查询到结果记为false,外层才执行
any:与任何一个比较,满足一个条件就可以
all:与任何一个比较,满足全部条件才可以
例如:查询学生成绩大于60的信息
在这里插入图片描述

10.合并查询(union)

语法:查询语句1
union
查询语句2……;

注:本内容用的的两张表分别为
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值