随笔 - 20  文章 - 0  评论 - 0  阅读 - 9032

mysql基础语法_曾佳豪

一、建库、建表、数据类型

1.建库

create database if not exists 库名 default charset utf8;

2.建表

create table if not exists 表名(字段名 数据类型,字段名 数据类型);

 

 

 3.数据类型

整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIGINT

浮点数类型:FLOAT、DOUBLE、DECIMAL

字符串类型:CHARVARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB

日期类型:Date、DateTime、TimeStamp、Time、Year

其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等

 

 

 

 

 

 二、增删改查

1.增

insert into 表名(字段名,字段名)values(“内容”,内容);

2.删

  2.1删库

drop database 库名 ;

  2.2删表

 

drop table 表名;

  2.3删除指定数据

delete from 表名 where 字段名=" ";

3.改

update 表名 set 修改字段名="修改内容" where 字段名="  ";

4.查

select * from 表名;

 

 

三、表关联查询

 

1.websites表数据如下:

 

 

 

 

2.access_log表数据如下

 

 

 

 

 

1.内连接(inner join ... on)
SELECT * FROM 表1 别名 INNER JOIN 表2 别名 ON 别名.字段名=别名.字段名;

例如:

 

 

 查询结果:

2.左连接 (left join ... on)
SELECT * FROM 表1 别名 LEFT  JOIN 表2 别名 ON 别名.字段名=别名.字段名;

例如:

 

 查询结果:

3.右链接(right join ... on)
SELECT * FROM 表1 别名   RIGHT JOIN 表2 别名 ON 别名.字段名=别名.字段名;

例如:

 

 查询结果:

 

 

4.全连接  (union关键字)
SELECT * FROM 表1 别名 LEFT  JOIN 表2 别名 ON 别名.字段名=别名.字段名;
UNION
SELECT * FROM 表1 别名   RIGHT JOIN 表2 别名 ON 别名.字段名=别名.字段名;

例子:

查询结果:

 

 

四、子查询

  MySQL子查询是嵌套在另一个查询 (如 SELECT , INSERT , UPDATE 或 DELETE )中的查询。

 

1.子查询,单值(子查询语句的结果为单个值)

  是指子查询返回的是单一值的标量,如一个数字或一个字符串,也是子查询中最简单的返回形式。 可以使用 = > < >= <= <> 这些操作符对子查询的标量结果进行比较,通常子查询的位置在比较式的右侧 

复制代码
SELECT * FROM emp 
WHERE salary >=(
SELECT salary FROM emp WHERE emp_name="曹光思"
);
#查询工资大于张国建的员工信息
SELECT * FROM emp
WHERE 
dept_id =(SELECT dept_id FROM emp WHERE emp_name="Tom")
AND 
salary >=(SELECT salary FROM emp WHERE emp_name="张建国");
#查询与tom相同部门并且工资大于张国建的员工信息
复制代码

2.子查询,多值(子查询语句的结果为多个值)

(1). N 行一列

  指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回,可以使用 IN、ANY、SOME 和 ALL 操作符,不能直接使用 = > < >= <= <> 这些比较标量结果的操作符。 

SELECT * FROM emp 
WHERE 
dept_id IN(SELECT dept_id FROM emp WHERE emp_name LIKE "孙%");
#查询姓孙的员工的员工信息(因为子查询中姓孙员工可能存在多个部门,所以使用“in”关键字)

(2).一行N列

  指子查询返回的结果集是一行 N 列,该子查询的结果通常是对表的某行数据进行查询而返回的结果集。 

 

3.子查询,中间表

SELECT * FROM (SELECT * FROM emp WHERE dept_id>2 AND salary>5000) e;
#结果 e 可在多表查询中使用

 

posted on   搁浅的小鲸鱼  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示