Mysql语法

Mysql基础语法-SQL语句

database

1.创建数据库

create databse 数据库名;

2.查看数据库

show databses;
show create database 数据库名;

3.删除数据库

drop database 数据库名;

4.修改数据库字符集

alter database 数据库名 character set utf8 collate utf8_bin;

table

1.创建表

create table 表名 
(
字段1 int,
字段2 varchar(20),
字段3 int,
字段4 int,
字段5 date
);

2.查看表结构

show tables;#查看该数据库下的所有表
show create table 表名;#查看这个表的创建语句
desc 表名;#查看这个表的结构

3.修改表结构

alter table user  add 新字段 int;#增加字段
alter table user  modify 要修改类型的字段 varchar(20);#修改字段类型
alter table user drop 字段;#删除字段
alter table user change 旧字段名 新的字段名 varchar(20);#修改字段名称
rename table 旧的表名 to 新的表名;#给表重命名

4.删除表

drop table 表名;

5.插入数据

insert intovalues(字段1的值,字段2的值,字段3的值,字段4的值);#向表中所有字段插入值
insert into(字段1,字段3,字段4) values (值_1,值_3,值_4);#给表中的部分字段插入值

6.删除表中的数据

delete fromwhere 字段 =;#删除字段值=**的数据
delete from;#删除表中的所有数据
truncate;#删除表中的数据并创建一个一样的空表
start transaction;#开始事务
delete fromwhere 字段=;#删除字段值为**的数据
rollback;#回滚,值恢复

7.查询【select 字段1,字段2 from 表 where 条件】

select * from 表名;#查表中所有信息
select 字段1,字段2,字段3 from;#查询部分字段
select distinct 字段1,字段2,字段3  from;#查询相关字段,去掉重复值

7.1 查询-设置字段别名

select 字段1 as '别名',字段2 as '别名' from;#查询相关字段并设置别名
select 字段1   '别名',字段2   '别名' from;#查询相关字段,并设置别名  as可以省略
select 字段1+as '别名',字段2+as '别名' from;#查询相关值并做计算
select 字段1 as "别名",字段2+字段3 as "别名" from;#查询相关值并做计算

7.2 条件查询 where 后的语句
【in、like、and 、or】

in --代表的范围
select * fromwhere 字段 in  (1,2,3);
like --模糊匹配查询like "值_"   like "值%"
select * fromwhere 字段 like "值%"
and  or
select * fromwhere 字段1>and 字段2 like "值%"select * fromwhere 字段1 <or 字段2 <;
select 字段1 别名,字段2 as 别名 fromwhere 字段3 >;#条件查询

7.3 查询–对结果进行排序order
【select 字段1,字段2 from 表 order by 字段 asc/desc】

select * fromorder by 字段 asc;#对该字段进行升序排序
select * fromorder by 字段 desc;#对该字段进行降序排序
select 字段1 as 别名 ,(字段2 +字段3) as 别名 fromorder by (字段2+字段3desc;#按该字段进行降序排序
select 字段1 as 别名 ,字段2 ,字段3 fromorder by 字段2 desc,字段3 desc;#多种排序规则
select 字段1,字段2 fromwhere 字段3 like "值%" oder by 字段1 desc;

7.4 聚合函数
【求数量、求和、平均值、最大值、最小值】

count() 求数量
select count(*) from;#统计数量
select count(字段) from;#统计数量
select count(字段) fromwhere 字段 >字段;#统计符合条件的数量
select count(*) fromwhere (字段1+字段2) > 270;#统计符合条件的数量
sum() 求和只对数值类型有效
select sum(字段) from;#这个班级所有人数学成绩和
select sum(字段1),sum (字段2) from;#分别统计字段和
select sum(字段1+字段2) from;#统计字段和
select sum(字段1)/count(*) from;#统计该字段平均分
avg()平均
select avg(字段) from;
max()最大
select max (字段) from;
min()最小
select min (字段) from;

7.5 分组查询
【group by 】【having 】

select * fromgroup by 字段;#按字段分组
select count(*) fromgroup by 字段;
select * fromgroup by 字段;
select sum(字段1)  fromgroup by 字段2;
select sum(字段1) fromgroup by 字段2 having 字段条件;

8.多表的查询
8.1 单表的约束(主键)

【非空、唯一、被引用】
【主键的声明 primary key】
【测试主键】
create table 表(
字段1 字段类型 primary key,
字段2 字段类型,
);
insert intovalues(1,值2);

【主键的**自动增长**】
自动增长只能是int,bigint类型
关键字 auto_increment
create table 表(
字段1 类型 primary key auto_increment,
字段2 类型
);
insert intovalues(null,1)
insert intovalues(null,2)

8.2 多表约束(外键)

【保证表数据的完整性】
create table dept(
did int primary key auto_increment,
dname varchar(20)
);
create table emp(
eid int primary key auto_increment,
ename var char(20),
sal double,
dno int
 );
 insert into dept values(1,'it');
 insert into dept values(2,'hr');
 
 insert into emp values(1,'迪迦',10000,1);
 insert into emp values(2,'雷欧',19990,2);
delete from dept where did=1;#可以正常删除

添加外键------映射到另外一个表的主键上并取值

create table dept(
did int primary key auto_increment,
dname varchar(20)
);
create table emp(
eid int primary key auto_increment,
ename var char(20),
sal double,
dno intforeign key (dno) references dept (did)#添加外键
 );
 insert into dept values(1,'it');
 insert into dept values(2,'hr');
 
 insert into emp values(1,'迪迦',10000,1);
 insert into emp values(2,'雷欧',19990,2);
 
 insert into emp values(3,'雷欧',19990,3);#将会报错
 delete from dept from where did =1;#将会报错

9 . 多表设计
一对一 一对多 多对多
9.1一对多
主表(一方),从表(多方)
建表原则:在多方表中添加字段,把该字段作为外键,指向一方表的主键
在这里插入图片描述
9.2多对多
场景:订单表 -----商品表 用户表—角色表
建表原则:用户表和角色表举例,都需要创建一张中间表,存储数据关系
在这里插入图片描述
9.3 多表查询
准备实验表

MariaDB [db1]> create table dept(
    -> did int primary key auto_increment,
    -> dname varchar(22)
    -> );
Query OK, 0 rows affected (0.06 sec)

MariaDB [db1]> create table emp(
    -> eid int primary key auto_increment,
    -> ename varchar(22),
    -> sal double,
    -> dno int,foreign key emp(did) references dept(did)
    -> );

在这里插入图片描述

【笛卡尔积—两个表乘积】

语法: select * from1,表2

在这里插入图片描述

【多表查询–内链接】
普通内链接
关键字:表1 inner join 表2 on 条件;

语法:select * from1 inner join2 on1.字段=2.字段;
测试语句:select * from dept inner join emp on dept.did=emp.dno;

在这里插入图片描述
隐式内连接

语法:select...from1, 表2 where1.字段=2.字段;
测试语句:select  * from dept,emp where dept.did=emp.dno;
设置别名:select * from dept d,emp e where d.did=e.dno;
指定字段 :select d.dname,e.ename,e.sal from dept d,emp e where d.did=e.dno;

在这里插入图片描述
【多表查询-外链接】
左外链接、右外链接
左外链接

语法:select * from1 left outer jion 表2 on 条件;    outer可省略
举例:select * from dept left join emp on dept.did=emp.dno;

在这里插入图片描述

右外链接

语法:select * from1 right outer jion 表2 on 条件;    outer可省略
举例:select * from dept right join emp on dept.did=emp.dno;

在这里插入图片描述
内链接与外链接的区别
在这里插入图片描述
举例
往emp、dept表中增加数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.4 子查询

select * fromwheresql查询语句);

一次查询的结果作为另一次查询的语句
举例,查出年龄小于平均年龄的的人员信息。
在这里插入图片描述
10.图形界面----navcat

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值