SQL基本语法入门 看这里就够了
SQL执行顺序
第一步:执行FROM
第二步:WHERE条件过滤
第三步:GROUP BY 分组
第四步:执行SELECT 投影列
第五步:HAVING条件过滤
第六步:执行ORDER BY排序
一、创建、删除库
-- 创建新数据库
CREATE DATABASE 数据库名;
-- 删除数据库
DROP DATABASE 数据库名;
二、增加
1、添加列名、设置主键、设置自动增长列
primary key表示当前列为主键列,不能重复,不能为空
out_increment表示当前列为自动增长列,由DBMS分配该列的值,可以保证不重复
CREATE TABLE t_user(id INT PRIMARY KEY AUTO_INCREMENT, -- 编号 userName VARCHAR(20),-- 用户名 birthday DATE,-- 生日 tel CHAR(11),-- 电话-- 枚举类型,该列的值只能取男和女 sex ENUM('男','女'),-- 性别 -- 最后一列不能加“,”。 money INT -- 账户余额
);
2.添加行(新增记录)
①如果添加多条信息,中间用","分割。VALUES只用写一次,写在表头和表值之间。
②如果列名和列的值不写,则默认添加为空(null),如果数据库设计时存在默认值,则为添加默认值。——2019/11/09更新,感谢评论纠正。
INSERT INTO t_user(表头1,表头2) values(值1,值2);
例如:
INSERT INTO t_user(userName,pwd,birthday,tel,sex,money)
VALUES ('张无忌','123','1980-05-09','13948577789','男',2000);
例如:
INSERT INTO t_student(userName,pwd,birthday,tel,sex)
VALUES('张勇','111','1998-01-01','13112341234','男');
3.添加列(维护常用)
-- t_student:表名;address:表头。
ALTER TABLE t_student ADD address VARCHAR(50);
三、删除
1.删除表
-- t_user:表名
DROP TABLE t_user;
2.删除列
-- t_student:表名;userAddress:列名
ALTER TABLE t_student DROP COLUMN userAddress;
3.删除行(记录)
-- 如果不加where 后面的条件则全部删除。
DELETE FROM t_user WHERE id=2;
四、修改
1、修改列
修改列的值必须与修改后的类型相符,如果修改列的值为null,则可以改为任意类型。如果修改列的值类型为varchar,最长为20,则修改后的类型必须为char类型,长度不能低于20。
ALTER TABLE t_student CHANGE address userAddress VARCHAR(100);
2、修改值
UPDATE t_product SET 修改列名=修改后新值 WHERE id=1;
-- 修改,将张无忌的密码修改为333,工资修改为2500
UPDATE t_user SET pwd='333',money='2500' WHERE userName='张无忌';
五、查询
1、查询表中所有数据
*表示显示所有的列,也可以指定显示列的列表,中间用","分割。
SELECT * FROM t_user;
-- 例如(显示姓名和工资列):
select userName,money from t_user
2、查询返回限定行
第一个参数为起始记录数,从0开始,第二个参数为显示记录数
-- MySQL语法
SELECT * FROM t_student LIMIT 0,3;
3、查询空值null
null不能用=,只能用is null 或 is not null
SELECT *FROM t_student WHERE money IS NULL;
4、查询多条信息(or/in)
-- 查询张三和李四的信息
SELECT * FROM t_student WHERE userName='张三' OR userName='李四';
SELECT * FROM t_student WHERE userName IN('张三','李四');
5、模糊查询(_或%)
-- 查询姓李的二个字的员工
SELECT * FROM t_student WHERE userName LIKE '李_';
-- 查询出所有商品名包括“糕”的商品的信息
SELECT * FROM t_product WHERE productName LIKE '%糕%';
6、查询多条件+显示部分(LIMIT)
-- 查询前5条价格在100-1000的酒类商品 (MySQL语法)
SELECT * FROM t_product WHERE productType='酒类' AND price>=100 AND price<=1000 LIMIT 0,5 ;
7、查询去除重复的类名(distinct)
-- 查询所有的性别,distinct 表示去除重复记录
SELECT DISTINCT sex FROM t_student;
8、查询排序显示(ORDER BY)
-- 按员工工资排序,默认为升序ASC,降序需要加上DESC。
-- 工资相同,按年龄大小排序。
SELECT * FROM t_student ORDER BY money DESC,birthday;
9、查询当前日期
select curdate() from 表名
六、判断语句
1、单分支条件判断
if(条件,返回值1,返回值2)-- 例如:
select s.*,if(grade>=60,'合格','不合格')appraise from t_students;
2、多分支条件判断
(case
when 条件1 then 返回值1
when 条件2 then 返回值2
else 返回值3 END)
-- 例子1(选择显示):
SELECT p.*,(CASE WHEN money<5000 THEN '低薪阶层' WHEN money>=5000 AND money<=10000 THEN '中薪阶层' WHEN money>10000 THEN '高薪阶层' ELSE '实习生' END) grade FROM t_student p;
-- 例子2(选择添加):
UPDATE t_product SET price =price+(CASE WHEN productType='药品类' THEN 5 WHEN productType='食品类' THEN 2 WHEN productType='酒类' THEN 100 END);
七、聚合函数的运用
-- 学生成绩表
CREATE TABLE t_grade( id INT PRIMARY KEY AUTO_INCREMENT,-- id 主键 sname VARCHAR(20),-- 学生姓名 sex ENUM('男','女'),-- 学生性别 className VARCHAR(20),-- 学生班级 grade INT -- 学生成绩
);
a.统计学生的人数
-- count(*)只要是记录都要统计。count(列名)只统计非空列。
SELECT COUNT(*) '学生总人数', COUNT(grade)'参考人数' FROM t_grade;
b.统计学生的总分、平均分、最高分、最低分
-- avg求平均分,也只统计非空列
SELECT SUM(grade) ,AVG(grade),SUM(grade)/COUNT(*), MAX(grade),MIN(grade) FROM t_grade
c.统计每个班的人数
SELECT className,COUNT(*) num FROM t_grade GROUP BY className;
d.统计每个班的总分和平均分
SELECT className,SUM(grade)'总分',SUM(grade)/COUNT(*) '平均分' FROM t_grade GROUP BY className;
八、having运用
-- 列出班级人数小于等于3个人的班级
SELECT className,COUNT(*) FROM t_grade GROUP BY className HAVING COUNT(*)<=3;
-- 列出班级总分大于300分的班级
SELECT className,SUM(grade) FROM t_grade GROUP BY className HAVING SUM(grade)>300;
九、复制表
create table 新表名 select * from 原表名;
十、where与if条件连用
WHERE IF(条件, true执行条件, false执行条件 )
select * from sys_user where if(id<10,name='zhangsan',name='lisi')
SQL基本语法入门 看这里就够了相关推荐
- shell语法入门看着一篇就够了
BASH流程 bash开头 #!/bin/sh #!/bin/bash #!/usr/bin/awk #!/bin/sed #!/usr/bin/tcl #!/usr/bin/expect #< ...
- Lift Splat 没有Shoot LSS入门看这个就够了
Lift-Splat-Shoot个人学习笔记 讲点闲话 一些需要提前知道的 Lift get_geomtry() get_cam_feats() Splat 总结 讲点闲话 Lift-Splat-Sh ...
- React入门看这篇就够了
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...
- groovy if 判断字符串_Groovy快速入门看这篇就够了
原标题:Groovy快速入门看这篇就够了 来自:刘望舒(微信号:liuwangshuAndroid) 前言 在前面我们学习了和两篇文章,对Gradle也有了大概的了解,这篇文章我们接着来学习Groov ...
- python免费入门教程-python入门免费教程看这些就够了
原标题:python入门免费教程看这些就够了 python入门免费教程看这些就够了 自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python已经成为 ...
- python免费全套教程-python入门免费教程看这些就够了
原标题:python入门免费教程看这些就够了 python入门免费教程看这些就够了 自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python已经成为 ...
- (三)MySQL入门,看我就够了!!!
课程目标 一.为什么要学习数据库 二.数据库的相关概念 DBMS.DB.SQL 三.数据库存储数据的特点 四.初始MySQL MySQL产品的介绍 MySQL产品的安装 ★ MySQL服务的启动和停止 ...
- SQL语句从入门到精通之笔记大全
SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE.由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行说明. 下列语句部分是Mssql语句,不可以在acc ...
- sql语言和php,SQL语言快速入门(三)_php
我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库 ...
最新文章
- JVM内存调优原则及几种JVM内存调优方法
- nginx安装 问题 1
- GPS NMEA-0183协议详解
- spoj Simple Average
- python 下标 遍历列表_python中的数据结构与算法(1):列表、元组与字符串
- Kettle使用_26 根据增删改标识处理数据
- 树莓派与阿里云服务器之间的无线通信(非局域网)
- 前端学习(2422):反馈
- 叮!您收到一份超值Java基础入门资料! 1
- django-项目的创建-应用注册-项目运行
- NLP学习------HanLP使用实验
- python_flask框架Ubuntu16.04下环境搭建
- ZynAddSubFX
- Outlook中老是出来“信息检索” -- 解决方法
- C++写入并追加内容到txt中
- 搜索引擎模块设计与实现——相关度搜索算法模块
- Windows 11 修改桌面文件路径
- 关于雷蛇耳机麦克风突然失灵
- 分布式与集群的区别是什么
- freeRTOS — 软件定时器的使用
热门文章
- 亚马逊测评的获得方法及测评环境系统介绍,一次诊断全部解决。
- 三.数 据 链 路 层
- 2018年全国多校算法寒假训练营练习比赛(第五场)解题报告
- 王垠受邀面试阿里 P9,被 P10 面跪后网上怒发文,惨打 325 的 P10 赵海平回应了!...
- 2020年全球半导体清洗设备发展现状、竞争格局及中国企业发展进展分析,行业集中度较高,国产化进程达到20%「图」
- Jess的各种小问题
- 你的语言模型有没有“无法预测的词”?
- 使用shUnit2进行shell scritp自动化测试
- 总结:K8s之HPA
- 数据结构(一)求矩阵中的鞍点