前言:MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等。可以将其安装在服务器甚至桌面系统上。 此外,MySQL是可靠,可扩展和快速的,如果您开发网站或Web应用程序,MySQL是一个不错的选择(强烈建议使用)。

建库:

语法:
CREATE DATABASE IF NOT EXISTS '指定库名' DEFAULT CHARSET UTF8;
例:
CREATE DATABASE IF NOT EXISTS dbtest DEFAULT CHARSET UTF8;
解析:
CREATE - 创建
DATABASE - 库
IF NOT EXISTS - 如果不存在则创建
DEFAULT - 默认
CHARSET - 字符集
UTF8 - 可变长度字符编码(支持部分中文)
创建一个名字为'dbtest'的库指定默认字符编码为UTF8格式

指定库

USE dbtest;
指定为dbtest库(让数据库知道你在使用此库,之后查询和建表都会在此库)

建表

语法:
CREATE TABLE IF NOT EXISTS '表名' ('字段名称' '数据类型','字段名称' '数据类型')
ENGINE=INNODB DEFAULT CHARSET=UTF8;

例:
CREATE TABLE IF NOT EXISTS studentinfo
(
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
name VARCHAR(20) NOT NULL,
age INT NOT NULL,
gender VARCHAR(5) NOT NULL,
birthday DATE NOT NULL,
phone VARCHAR(30) NULL
)ENGINE=INNODB DEFAULT CHARSET=UTF8;

解析:
TABLE - 表
ENGINE=INNODB - 数据库存储引擎
PRIMARY KEY - 主键
AUTO_INCREMENT - 自增
NOT NULL - 不可为空
NULL - 可以为空
INT - 整型数据类型(阿拉伯数字)
VARCHAR('指定字段长度') - 字符串数据类型(字母、中文、符号)
DATE - 日期类型(格式:2022-01-01)
创建一个学生表指定数据库储存引擎字符编码为UTF8格式、有字段(id,姓名,年龄,性别,生日,电话)

插入数据(增)

语法:
--单条数据插入
INSERT INTO '表名' ('指定插入字段') VALUES ('按照前面的指定按顺序插入对应');
例:
INSERT INTO studentinfo (name,age,gender,birthday,phone) VALUES ('张三',23,'男','1987-05-01',18874562135);
--多条数据插入
INSERT INTO '表名' ('指定插入字段')
VALUES
('按照前面的指定按顺序插入对应-数据1'),
('按照前面的指定按顺序插入对应-数据2'),
('按照前面的指定按顺序插入对应-数据3'),
('按照前面的指定按顺序插入对应-数据4'),
('按照前面的指定按顺序插入对应-数据5'),
('按照前面的指定按顺序插入对应-数据6'),
('按照前面的指定按顺序插入对应-数据7');

例:
INSERT INTO studentinfo (name,age,gender,birthday,phone)
VALUES
('张三',23,'男','1987-05-01',18874562135),
('李四',19,'男','2002-08-11',14796325674),
('王五',24,'男','1991-05-01',14756895552),
('赵四',21,'男','1999-05-01',18956235412),
('小明',69,'男','2001-05-01',13875652325),
('小红',18,'女','2003-05-01',18745632565),
('小丽',22,'女','2000-05-01',19856987456);

解析:
INSERT INTO - 插入
插入数据7条数据到学生表里面
注:我这里id字段是自增的、他会自己自增可以不插入、也可以不指定插入字段,那么必须按照顺序插入表的所有字段,除非字段是NULL(可以为空)

查询数据(查)

语法:
--全表查询
SELECT * FROM '表名';
例:
SELECT * FROM studentinfo;
结果:(如图)

解析:
SELECT - 查询
从学生表查询全表数据(*代表全部数据)

--分别查询学生表所有男生、女生
查询男生:
SELECT (name) FROM studentinfo WHERE gender='男';
结果:(如图)

查询女生:
SELECT (name) FROM studentinfo WHERE gender='女';
结果:(如图)

解析:
WHERE - 后面跟需要查询的条件
*换成name就是不查询整张表的信息,只查询name字段

--查询年龄大于20岁的数据
SELECT * FROM studentinfo WHERE age > 20;
结果:(如图)

--查询生日大于1995年的数据
SELECT * FROM studentinfo WHERE YEAR(birthday) < 1995;
结果:(如图)
 解析:
YEAR - 年份函数
可以理解成这里做了一个强制类型转换,把日期类型转换成YEAR类型--查询电话号码是以18开头的数据
SELECT * FROM studentinfo WHERE phone LIKE '18%';
结果:(如图)

解析:
LIKE - MySQL中的谓词
主要是针对VARCHAR字符型字段的,在一个字符型字段列中检索包含对应子串的。
% - 通配符、代表匹配0个或多个任意字符

--查询姓小的同学和名字中带明的同学(这里就可以用到刚刚提到的like了)
SELECT * FROM studentinfo WHERE name LIKE '小%'
UNION
SELECT * FROM studentinfo WHERE name LIKE '%明%';

结果:(如图)

解析:
UNION - 合并两个或多个 SELECT 语句的结果集

--查询男生的平均年龄
SELECT SUM(age)/COUNT(*) FROM studentinfo WHERE gender='男';
结果:(如图)

解析:
COUNT - 统计函数
SUM - 求和函数
平均年龄=总年龄和/个数

修改表数据(修改)

语法:
UPDATE '表名' SET '需要修改的字段结果' WHERE '条件';
--修改小明的年龄为18岁
UPDATE studentinfo SET age=18 WHERE name='小明';
结果:(如图)

解析:
UPDATE - 修改
修改学生表数据年龄字段为18、条件是姓名为小明的数据;

删除表数据(删除)

语法:
DELETE FROM '表名' WHERE '条件';
--删除年龄是18-20岁的数据
DELETE FROM studentinfo WHERE age>17 AND age<21;
结果:(如图)

解析:
DELETE - 删除
AND - 与(二个条件必须满足)

表关联查询

条件:必须是二个或以上的表进行关联,必须有关联字段
示例:
我这里有二张表(如下图):
图一:(websites表)

图二:(acceaa_log表)

--内关联
方式1:
SELECT w.,a. FROM websites w INNER JOIN acceaa_log a ON w.id=a.site_id;
结果:(如图)

解析:
用INNER JOIN关键字 - 进行内连接(结果取字段对应公共部分)
w.,a. - 给表取别名方便操作
方式2:
SELECT w.,a. FROM websites w,acceaa_log a WHERE w.id=a.site_id;
解析:
这里的结果其实和方法1一模一样进行了内连接查询,只是写法不一样,看个人喜好选择

--左关联
SELECT w.,a. FROM websites w LEFT JOIN acceaa_log a ON w.id=a.site_id;
结果:(如图)

解析:
LEFT JOIN - 左关联查询(公共部分+左边)
他会先把左边的表全部打出来,取对应的上的,对应不上的会返回NULL
右关联同理,只是反过来了,就不做过多解释了

--右关联
SELECT w.,a. FROM websites w RIGHT JOIN acceaa_log a ON w.id=a.site_id;
结果:(如图)

解析:
LEFT RIGHT - 右关联查询(公共部分+右边)

--联合查询
SELECT aid FROM acceaa_log
UNION ALL
SELECT id FROM websites;

结果:(如图)

解析:简单来说就是把两张表合在一起查询,之前也有提过UNION这个字段,就是把而张表对应字段合在一起
去掉 ALL 就是起到一个去重的作用,只会打印对应不重复的字段,跟内连接很像
结果:(如图)

--全连接
SELECT w.,a. FROM websites w LEFT JOIN acceaa_log a ON w.id=a.site_id
UNION
SELECT w.,a. FROM websites w RIGHT JOIN acceaa_log a ON w.id=a.site_id;

结果:(如图)

解析:
这应该都可以看出来这是左连接和右连接拼接出来的一个结果,就不做过多阐述了(公共部分+左边+右边)

子查询

定义:
子查询允许把一个查询嵌套在另一个查询当中。
子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。
子查询可以包含普通select可以包括的任何子句,比如:distinct、 group by、order by、limit、join和union等;但是对应的外部查询必须是以下语句之一:select、insert、update、delete、set或者do
例:
--标量子查询(返回单一值的标量,最简单的形式)
SELECT * FROM websites WHERE id=(SELECT site_id FROM acceaa_log WHERE site_id=6);

如图:

其他(补充)

--排序
SELECT * FROM studentinfo ORDER BY age ASC;(升序)
SELECT * FROM studentinfo ORDER BY age DESC;(降序)
ORDER BY age - 把年龄进行排序
不写age后面的关键字,默认是升序从小到大来排

--删库
DROP DATABASE '库名'

--删表
DELETE FROM '表名'

--添加字段(表创建完后的情况下)
ALTER TABLE '添加字段的表名' ADD '添加的字段名称 '字段类型'
例:
ALTER TABLE studentinfo ADD address VARCHAR(50) NULL;
--添加主键
ALTER TABLE student ADD PRIMARY KEY(id);

--修改字段名称和属性
ALTER TABLE '添加字段的表名' change '原字段名' '新字段名' '字段属性';
例:
ALTER TABLE studentinfo change address addres VARCHAR(30) NULL;

--修改字段属性
ALTER TABLE '添加字段的表名' MODIFY '字段名' '字段类型约束';
例:
ALTER TABLE studentinfo MODIFY addres VARCHAR(60) NULL;

--字段说明
waihao VARCHAR(20) COMMENT "游戏外号" #comment做字段说明,备注

本文章暂时就结束了,还有涉及的一些知识,之后可能会出个后续,大学生第一次写文章,如文章中有不足或者写错的地方请指出见谅,有什么不懂的可以联系作者的!!!!

---------------------------------未经允许禁止转载-------------------------------------

Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)相关推荐

  1. python_操作MySQL 初解 之__类方法调用并 增-删-改-查

    文件一: 调用(sqls文件) 1 # 导入模块 2 import pymysql 3 from sqls import * 4 # 创建类 5 class KaoShi(object): 6 7 # ...

  2. 表单的增 删 改 查

    django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...

  3. properties(map)增.删.改.查.遍历

    import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...

  4. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...

    实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...

  5. Linux技术--mysql数据库增-删-改-查

    # mysql 数据库 ## 数据库的操作 ### 五个单位 * 数据库服务器   Linux或者 windows  * 数据库  * 数据表 * 数据字段 * 数据行 ### 连接数据库 ``` 1 ...

  6. PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理

    笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...

  7. Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)

    1. URL 概述 import "net/url" url 包解析 URL 并实现了查询的转码.URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案( ...

  8. oracle 主键 字典表,oracle 增 删 改 查 新建表 主键 序列 数据字典

    ------------数据字典------------ select * from dba_tab_cols a where a.table_name='DEMO' create table dem ...

  9. Python 操作 Elasticsearch 实现 增 删 改 查

    Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...

  10. pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能

    文章目录 1 redis docker 部署与安装 2 py - redis的使用 2.1 redis的连接 2.2 常规属性查看 2.2.2 关于删除 2.3 STRING 字符串的操作 2.4 H ...

最新文章

  1. Express调用mssql驱动公共类dbHelper
  2. C#强化系列文章五:动态代码的使用(反射和动态生成类)
  3. play 拦截器_编写Play 2的模块,第2部分:拦截器
  4. java short s=s 1_Java 面试题 short s = 1; s = s + 1; 与 s += 1; 背后的秘密
  5. 从零基础入门Tensorflow2.0 ----三、10. 近似求导
  6. chrome developer tool 调试技巧2
  7. photoshop保存里没有html,PS中为什么没有存储为web格式?
  8. 全球顶级的5个数据可视化案例
  9. 行业研究方法与框架合集
  10. 问题 C: 神奇的口袋
  11. 7、机器视觉之色彩空间转换
  12. 网易2019:矩形重叠
  13. 莫队算法(最小曼哈顿生成树或者分块处理)
  14. 苹果告诉你-想自己换电池延长iPhone寿命还是算了吧!
  15. 日均5亿查询量,京东到家订单中心ES架构演进
  16. 被虐日記----开心并快乐着的求各种虐
  17. 2.24-2.28的fsop
  18. linux cgi 更改网络配置,惨绝人寰的蓝点linux2.0配置perl cgi-CGI教程,CGI文档
  19. ZY-Player安静看电影
  20. arduino蓝牙linux,Arduino Tian 开发板 Arduino yun升级 wifi 蓝牙 Linux限量

热门文章

  1. 旋转样式文本动画PR标题字幕模板MOGRT
  2. 邻居表项的STALE状态超时时间
  3. python图片分析中央气象台降水量预报_全国天气降水量预报图数据接口
  4. Gateway - Path、Query、RemoteAddr路由断言工厂
  5. 华为数字化转型之道第三讲
  6. error loading libvncso specified in xrdpini, please add avalid entry like lib= libxrdp-ncso or simil
  7. 从怡亚通到利丰到华润
  8. 《空洞机甲》编程赛__自制 Python Pygame 游戏
  9. 手把手教你做用户画像体系规划
  10. 计算机教案动作按钮,华兴小学信息技术五年级《PPT的动作按钮》教学设计