MySQL常用语句

这篇具有很好参考价值的文章主要介绍了MySQL常用语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

连接MySQL

数据库操作

表的操作

数据操作

进阶查询

源码等资料获取方法


连接MySQL

-- 语法:mysql -u用户名 -p密码  注:--空格 起到注释的作用
mysql -uroot -p123456

数据库操作

-- 显示当前时间、用户名、数据库版本(可以单独查询)
    select now(), user(), version();

-- 查看所有数据库
    show databases;

-- 创建数据库
-- 语法:create database 数据库名 [数据库选项];  []可缺省
    create database test; 
    create database test1 charset=utf8;

-- 查看数据库的创建信息
-- 语法:show create database 数据库名;
    show create database test;

-- 修改数据库的选项
-- 语法:alter database 数据库名 修改的数据选项;
    alter database test1 charset=utf8mb4;

-- 使用数据库
-- 语法:use 数据库名;
    use test1;

-- 查看当前使用的数据库    
    select database();

-- 删除数据库 
-- 语法:drop database 数据库名; 
    drop database test;

表的操作

-- 创建表
-- 语法:create table 表名(字段 类型 [约束]);  -- []表示可缺省
-- 常用约束:
    -- 主键:primary key
    -- 非空:not null
    -- 自增:auto_increment
    -- 无符号:unsigned
    -- 默认:default 默认值
    create table user_info(id int,name varchar(30));
    create table user_info(
        `id` int unsigned primary key not null auto_increment, 
        `name` varchar(30),
        `gender` enum("男", "女", "保密") default "保密",
        `age` TINYINT,
        `createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP , # 创建时间 
        `updateTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , # 更新时间
    );

-- 查看表结构
-- 语法:desc 表名;
    desc user_info;
        
-- 修改表结构
-- 语法:alter table 表名 操作名;
    -- 操作名
        -- 增加字段:add column 字段名 字段属性;
            alter table user_info add column addr varchar(30);
        -- 删除字段:drop column 字段名
            alter table user_info drop column addr;
        -- 修改字段属性:modify column 字段名 字段属性;
            alter table user_info modify column addr int;
        -- 修改字段名和属性:change column 原字段名 新字段名 字段属性;
            alter table user_info change column addr address varchar(20);
        -- 修改约束:
            -- 添加主键:add primary key(字段名)
                alter table user_info_cp add primary key(id);
            -- 删除主键:drop primary key  (删除主键前需删除其AUTO_INCREMENT属性)
                alter table user_info_cp drop primary key; 
                
-- 删除表
-- 语法:drop table 表名;
    drop table user_info;

-- 查看创建表的语句
-- 语法:show create table 表名;
    show create table user_info;

-- 复制表结构
-- 语法:create table 表名 like 要复制的表名
    create table user_info_cp like user_info;

-- 复制表结构和数据    
-- 语法:create table 表名 select * from 要复制的表名
    create table user_info_cpdata select * from user_info;

数据操作

-- 插入数据
-- 语法:insert into user_info[(指定字段)] values(字段值);
  -- 全部插入
    insert into user_info values(4, "李四", "女", 19);
  -- 部分插入
    insert into user_info(name, gender, age, create_time) values("张三", "男", 22, "2018-10-12 11:22:33");
  -- 插入多条
    insert into user_info(name, gender, age) values("王麻子", "男", 22),("老王",1,33);
  -- 插入一列数据,注意没有values
  insert into class(class_name) (SELECT class_name from user_info group by class_name);  -- 将user_info表中搜索出的class_name字段的内容在class表的class_name字段的最后条记录后插入

-- 查询表中数据
-- 语法:select 字段 from 表名 [where 字段=字段值];
  -- 简单查询
    select * from user_info;
    -- 查询后修改查询的值
    select name,IFNULL(gender,'未定义') from user_info;
  -- 条件查询
    select name,gender from user_info where gender="女";
  -- 多条件查询
    select name,gender from user_info where gender="女" and age>18;

-- 修改数据
-- 语法:update 表名 set 字段=新字段值 where 字段=字段值
    update user_info set name="王五" where gender="男" and age=22;
    -- 修改整个字段内容
      update user_info u left join class c on u.class_name=c.class_name set u.class_name=c.id;    -- 将user_info表中class_name字段内容全部替换成class表中对应的班级ID

-- 删除数据
-- 语法:delete from 表名 条件;
    delete from user_info where name="李四";

进阶查询

user_info表

MySQL常用语句,MySQL,mysql,oracle,数据库,程序人生,网络协议,tcp/ip

score表

 

MySQL常用语句,MySQL,mysql,oracle,数据库,程序人生,网络协议,tcp/ip

-- 使用 distinct 去重查询
    select distinct gender from user_info;

-- 使用 as 取别名,as 可缺省
        -- 为字段取别名
            select name "姓名",gender as g from user_info where g="男";
        -- 为表取别名
            select * from user_info as u,score s where u.name=s.name;

-- 查询常用函数
    -- 使用 avg 查询平均数
      select avg(age) from user_info;
    -- 使用 sum 查询总和
      select sum(age) from user_info;
    -- 使用 min(max) 查询最小(最大)值
      select min(age) from user_info;
    -- 使用 count 统计查询记录数
      select count(*) from user_info;
    
-- 使用 group by 分组查询
    select class from user_info group by class; -- 查询班级名称
    select avg(age) from user_info group by class; -
    -- 使用group by 查询语句不能使用where 条件筛选数据,可以使用 having 条件筛选
      select class from user_info group by class having avg(age)>20; -- 查询平均年龄大于20的班级
            select count(*) from user_info group by class; -- 查询每个班多少人
            select sum(score) from user_info group by class; -- 查询每个班所有人总分数
    -- 使用 group_concat 查看分组的详细信息
            select class,group_concat(name) from user_info group by class;

-- 使用运算符查询
    -- 使用比较运算符(> < =)
      select * from user_info where age>18;
    -- 使用between...and...查询
      select * from user_info where age between 18 and 30;
    -- 使用 in 查询
      select * from user_info where age in (11,22,33);
    -- 使用 is null (is not null) 查询
      select * from user_info where address is null;
    -- 使用 and  or  not 查询
      select * from user_info where (age=18 and gender="女") or gender!="女"
        
-- 使用 like 模糊查询
    select * from user_info where name like "王%"

-- 使用limit分页查询
-- 分页公式   limit (页码-1)*分页大小,分页大小
    select * from user_infor limit 10;  -- 显示最前面10条数据
    select * from user_infor limit 0,10;  -- 从第1条数据开始,显示后面10条数据
    select * from user_infor limit 10,10;  -- 从第11条数据开始,显示后面10条数据
    select * from user_infor limit 20,10;  -- 从第21条数据开始,显示后面10条数据
        
-- 使用 order by 给查询数据排序
    -- asc 升序查询,默认升序
      select * from user_info order by age;
      select * from user_info order by age asc;
    -- desc 降序查询
      select * from user_info order by age desc;
        
-- 多表查询
    -- 把查询结果当成条件
      select * from user_info where name in (select name from score where score>59);
    -- 把查询结果当成一张新表
      select * from (select name from user_info) as n left join score on n.name=score.name;

-- 等值连接查询
    select * from user_info as a, score as b where a.`name`=b.`name`;
        
-- 自连接查询
    select a.* from user_info a, user_info b where a.name=b.team_leader; -- 查询班长信息
        
-- 多列子查询
    select * from user_info where (age, class)=(select age, class from user_info where name="李四");  -- 查询与李四同班同龄的信息
        
-- 连接查询
    -- inner join on 内连接。只返回相互匹配部分的数据
      select * from user_info inner join score on user_info.name=score.name; -- 查询score中有成绩的人员信息
    -- 外连接分为 左连接 left join 和右连接 right join
      -- 左连接。返回左表全部数据和右表匹配数据
        select * from user_info left join score on user_info.name=score.name; -- 左表为user_info,右表为score
      -- 右连接。与左连接相反。
        select * from user_info right join score on user_info.name=score.name; -- 左表为user_info,右表为score

源码等资料获取方法

MySQL常用语句,MySQL,mysql,oracle,数据库,程序人生,网络协议,tcp/ip

MySQL常用语句,MySQL,mysql,oracle,数据库,程序人生,网络协议,tcp/ip

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~文章来源地址https://www.toymoban.com/news/detail-591945.html

到了这里,关于MySQL常用语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库高级查询语句

    基于这两个数据库表格来实现以下实验 concat(x,y)将提供的参数x和y拼接成一个字符串 trim()返回去除指定格式的值 GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现; 凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后

    2024年02月11日
    浏览(63)
  • MySQL数据库管理高级语句

    复制表及内容     克隆表 获取数据表的表结构、索引等信息    清空表,删除表内的所有数据       删除的特点: 创建临时表 临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的, 临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查

    2024年02月11日
    浏览(64)
  • 数据库应用:MySQL高级语句(一)

    目录 一、理论 1.常用查询 2.函数 3.进阶查询 二、实验 1.普通查询 2.函数 3.进阶查询 三、问题 1.MySQL || 运算符不生效 四、总结 常用查询包括:增、删、改、查; 对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。 (1)selelct select,显示表格中

    2024年02月17日
    浏览(84)
  • 数据库应用:MySQL数据库SQL高级语句与操作

    目录 一、理论 1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 5.MySQL中6种常见的约束 二、实验  1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 5.主键表和外键表  三、总结 克隆表:将数据表的数据记录生成到新的表中。 (1)克隆表 ① 先创建再导入 ② 创建

    2024年02月13日
    浏览(75)
  • DBeaver连接mysql、oracle数据库

    1) 下载DBeaver https://dbeaver.io/download/,并安装 2) 新建数据库连接    3)选择mysql驱动程序  4)填写连接设置内容 5)点击 “编辑驱动设置”,并填写相关信息  6)选择本地自己下载的驱动库jar包 (也可以点击下载驱动)  7)完成后,点击测试连接,可以查看是否连接成功

    2024年02月05日
    浏览(64)
  • 查询数据库空间(mysql和oracle)

    1.查看数据库表空间文件: 2.查看所有表空间的总容量: 3.查看数据库表空间使用率 4.1.查看表空间总大小、使用率、剩余空间 4.2.查看表空间使用率(包含temp临时表空间) 5.查看具体表的占用空间大小 1.更改表空间的dbf数据文件分配空间大小 2. 为表空间新增一个数据文件(表空间

    2024年02月05日
    浏览(45)
  • 数据库去重(MYSQL和ORACLE)

    一、数据库中的去重操作(删除数据库中重复记录的SQL语句)主要有三种方法 (1)、rowid方法 (2)、group by 方法 (3)、distinct方法 1、用rowid方法 根据Oracle带的rowid属性,可以进行判断是否存在重复语句; (1)、查出表1和表2中name相同的数据 Select * from table1 a Where rowid !=

    2024年02月09日
    浏览(45)
  • 基本的SELECT语句——“MySQL数据库”

    各位CSDN的uu们好呀,好久没有更新小雅兰的MySQL数据库专栏啦,接下来一段时间,小雅兰都会更新MySQL数据库的知识,下面,让我们进入今天的主题吧——基本的SELECT语句!!! SQL概述 SQL语言的规则与规范 基本的SELECT语句 显示表结构 过滤数据 1946 年,世界上第一台电脑诞生

    2024年02月09日
    浏览(54)
  • 【数据库】MySQL 高级(进阶) SQL 语句

    location表格创建 store_info表格创建 显示表格中一个或数个字段的所有数据记录 不显示重复的数据记录 按照条件进行查询 在已知的字段数据取值范围内取值 另外还有not in命令,用法一致,表示显示不在指定范围内的字段的值。 在两个字段数据值之间取值,包含两边字段的数据

    2024年02月09日
    浏览(132)
  • MySQL数据库查询语句之组函数,子查询语句

    以组为操作单位,一组数据得到一个结果。 在没有手动分组的前提下,整张表默认为一组数据 max(列名):获取最大值 min(列名):获取最小值 sum(列名):获取总和 avg(列名):获取平均值 count(列名):统计值的个数 所有组函数都会自动忽略null值 在某些情况下,我们需要根据需要

    2024年01月23日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包