Mysql语法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql语法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6267字,纯文字阅读大概需要9分钟。
内容图文
![Mysql语法](/upload/InfoBanner/zyjiaocheng/859/b5277e282ab94a9c94c957109a0dc12d.jpg)
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 into 表 values(字段1的值,字段2的值,字段3的值,字段4的值);#向表中所有字段插入值insert into 表 (字段1,字段3,字段4) values (值_1,值_3,值_4);#给表中的部分字段插入值
6.删除表中的数据
delete from 表 where 字段 = 值;#删除字段值=**的数据delete from 表;#删除表中的所有数据truncate 表;#删除表中的数据并创建一个一样的空表start transaction;#开始事务delete from 表 where 字段=值;#删除字段值为**的数据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 * from 表 where 字段 in (值1,值2,值3);like --模糊匹配查询like "值_" like "值%"select * from 表 where 字段 like "值%"and orselect * from 表 where 字段1>值 and 字段2 like "值%";select * from 表 where 字段1 <值 or 字段2 <值;select 字段1 别名,字段2 as 别名 from 表 where 字段3 >值;#条件查询
7.3 查询–对结果进行排序order
【select 字段1,字段2 from 表 order by 字段 asc/desc】
select * from 表 order by 字段 asc;#对该字段进行升序排序select * from 表 order by 字段 desc;#对该字段进行降序排序select 字段1 as 别名 ,(字段2 +字段3) as 别名 from 表 order by (字段2+字段3) desc;#按该字段进行降序排序select 字段1 as 别名 ,字段2 ,字段3 from 表 order by 字段2 desc,字段3 desc;#多种排序规则select 字段1,字段2 from 表 where 字段3 like "值%" oder by 字段1 desc;
7.4 聚合函数
【求数量、求和、平均值、最大值、最小值】
count() 求数量select count(*) from 表;#统计数量select count(字段) from 表;#统计数量select count(字段) from 表 where 字段 >字段;#统计符合条件的数量select count(*) from 表 where (字段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 * from 表 group by 字段;#按字段分组select count(*) from 表 group by 字段;select * from 表 group by 字段;select sum(字段1) from 表 group by 字段2;select sum(字段1) from 表 group by 字段2 having 字段条件;
8.多表的查询
8.1 单表的约束(主键)
【非空、唯一、被引用】 【主键的声明 primary key】 【测试主键】create table 表( 字段1 字段类型 primary key,字段2 字段类型, );insert into 表 values(值1,值2);【主键的**自动增长**】 自动增长只能是int,bigint类型 关键字 auto_incrementcreate table 表( 字段1 类型 primary key auto_increment,字段2 类型 );insert into 表 values(null,值1)insert into 表 values(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 int ,foreign 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 * from 表1,表2;
【多表查询–内链接】
普通内链接
关键字:表1 inner join 表2 on 条件;
语法:select * from 表1 inner join 表2 on 表1.字段=表2.字段;
测试语句:select * from dept inner join emp on dept.did=emp.dno;
隐式内连接
语法:select...from 表1, 表2 where 表1.字段=表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 * from 表1 left outer jion 表2 on 条件; outer可省略
举例:select * from dept left join emp on dept.did=emp.dno;
右外链接
语法:select * from 表1 right outer jion 表2 on 条件; outer可省略
举例:select * from dept right join emp on dept.did=emp.dno;
内链接与外链接的区别
举例
往emp、dept表中增加数据
9.4 子查询
select * from 表 where (sql查询语句);
一次查询的结果作为另一次查询的语句
举例,查出年龄小于平均年龄的的人员信息。
10.图形界面----navcat
内容总结
以上是互联网集市为您收集整理的Mysql语法全部内容,希望文章能够帮你解决Mysql语法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。