约束

  • 主键约束

    • primary key
    • primary key(字段名...)
  • 外键约束

    constraint fk_table1_table2 foreign key(字段) references table2(字段)
  • 其它约束

    • unique
    • not null
    • default
    • auto_increment
    CREATE TABLE t_emp(
    id INT PRIMARY KEY auto_increment,
    name VARCHAR(22) not null unique,
    sex VARCHAR(2) DEFAULT '男'
    ) DEFAULT CHARSET=utf8;

表操作

查看表结构与修改表名

  • 查看数据表基本结构

    desc 表名
  • 查看数据表详细结构

    show create table 表名 \G

    不仅可以返回给我们建表时所写的详细语句,而且还可以查看存储引擎和字符编码

  • 修改表名

    ALTER TABLE 旧表名 RENAME 新表名;

修改字段名与字段数据类型

  • 修改字段名

    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
  • 修改字段数据类型

    ALTER TABLE 表名 MODIFY 字段名 数据类型;

添加与删除字段

  • first 在表的第一列添加字段
  • after 在表的指定列后添加字段
  • drop 删除字段

修改字段的排列位置

  • ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST|AFTER 字段2;

删除表的外键约束

  • ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

增删改

插入数据

INSERT INTO 表名 (字段名) VALUES (内容), (内容), (内容)...;

更新数据

UPDATE 表名 SET 字段名1 = 内容1, 字段名2 = 内容2, 字段名3 = 内容3 WHERE 过滤条件;

删除数据

  •  DELETE FROM 表名 WHERE 条件语句;
  • 清空表

    TRUNCATE 表名

查询

单表查询

  • SELECT 字段名 FROM 表名;
  • 带in关键字的查询

     SELECT 字段名 FROM 表名 WHERE 字段名 (not) IN (n1,n2,n3,...);
    • 范围查询

       SELECT 字段名 FROM 表名 WHERE 字段名 (not) BETWEEN n1 AND n2;
    • 带like的字符匹配查询

      1. 使用通配符%模糊匹配数据内容(百分号通配符%可以匹配任意长度的字符,甚至包括零字符。)
      SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符%';
      1. 使用通配符_模糊匹配数据内容(下划线通配符_只能模糊匹配1个字符。)
      SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符_';
    • 查询空值与去除重复结果

      1. int (not) null
      2. 去重

        SELECT DISTINCT 字段名 FROM 表名;
    • 带 AND 与 OR 的多条件查询

      SELECT 字段名 FROM 表名 WHERE 表达式1 AND / OR 表达式2;
  • 对查询结果进行排序

    SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC[DESC]];
  • 分组查询

    SELECT 字段名 FROM 表名 GROUP BY 字段名;
  • 限制查询

    SELECT 字段名 FROM 表名 LIMIT [OFFSET,] 记录数;
    1. 第一个参数,OFFSET,可选参数,表示偏移量

    2. 第二个参数,记录数,表示返回查询结果的条数

连接查询

  • 内连接查询

    表1 [inner] join 表2 on 表1.字段=表2.字段
  • 外连接查询

    表1 left/right [outer]  join 表2 on 表1.字段=表2.字段

子查询

  • 带比较运算符的子查询

    eg:
    select name, age from tb_emp where age > (select avg(age) from tb_emp);
  • 关键字子查询

    tb_salary

    id position salary
    1 Java 8000
    2 Java 8400
    3 Java 9000
    4 Python 6500
    5 Python 10000
    #1.使用 ALL 关键字进行查询
    select position, salary from tb_salary where salary > all (select salary from tb_salary where position = 'Java');
    #2.使用 ANY 关键字进行查询
    select position, salary from tb_salary where salary > any (select salary from tb_salary where position = 'Java');
    #3.使用 IN 关键字进行查询
    select position, salary from tb_salary where position in ('Java');

视图

  • 创建视图

    CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
  • 删除视图

    DROP VIEW view_name;

MySQL基本sql语句总结的更多相关文章

  1. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  2. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  3. MySQL数据库sql语句的一些简单优化

    1.查询条件的先后顺序 有多个查询条件时,要把效率高能更精确筛选记录的条件放在后边.因为MySQL解析sql语句是从后往前的(不知是否准确). 例: select a.*,b.* from UsrIn ...

  4. mysql下sql语句 update 字段=字段+字符串

    mysql下sql语句 update 字段=字段+字符串   mysql下sql语句令某字段值等于原值加上一个字符串 update 表明 SET 字段= 'feifei' || 字段; (postgr ...

  5. MySQL数据库SQL语句基本操作

    一.用户管理: 创建用户: create user '用户名'@'IP地址' identified by '密码'; 删除用户: drop user '用户名'@'IP地址'; 修改用户: renam ...

  6. mysql执行sql语句过程

    开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库 ...

  7. MySQL与SQL语句的操作

    MySQL与SQL语句的操作 Mysql比较轻量化,企业用的是Oracle,基本的是熟悉对数据库,数据表,字段,记录的更新与修改 1. mysql基本信息 特殊数据库:information_sche ...

  8. mysql 操作sql语句 目录

    mysql 操作sql语句 操作数据库 mysql 操作sql语句 操作数据表 mysql 操作sql语句 操作数据表中的内容/记录

  9. 不登录到MySQL执行SQL语句

    mysql -e 不登录到MySQL执行SQL语句 mysql -u root -p -e "SHOW DATABASES"

  10. mysql优化sql语句

    mysql优化sql语句   常见误区   www.2cto.com   误区1:   count(1)和count(primary_key) 优于 count(*)   很多人为了统计记录条数,就使 ...

随机推荐

  1. 对spring创建对象时为何要使用接口

    对spring创建对象时为何要使用接口,而使用接口的实现类会报错 接上一篇问题的解答:Spring AOP获取不了增强类(额外方法)和无法通过getBean()获取对象 此问题发生在动态代理时,比如对 ...

  2. 前端Node的实用方法

    Node 一.什么是Node Node是以基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动.非阻塞式I/O模型(I/O是 input/output的缩写,即输入输出端口,在 ...

  3. [DB] Memcache

    什么是Memcache Redis的前身 严格来说只能叫缓存,不支持持久化,停电后数据丢失 Strom.Spark Streaming实时计算的结果一般会保存在Redis中 JDBC是性能瓶颈 关系型 ...

  4. [转载]层叠与并排win10

    三. 层叠与并排 如果要排列的窗口超过4个,分屏就显得有些不够用了,这时不妨试一试最传统的窗口排列法.具体方法是,右击任务栏空白处,然后选择"层叠窗口"."并排显示窗口& ...

  5. 回归(regression)与分类(classification)的区别

    术语监督学习,意指给出一个算法,需要部分数据集已经有正确的答案. " 分类和回归的区别在于输出变量的类型. 定量输出称为回归,或者说是连续变量预测:定性输出称为分类,或者说是离散变量预测. ...

  6. 抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext

    长话短说,本文带大家抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext 引言 C#异步编程语法糖async/await,使开发者很容易就能编写异步代码. ...

  7. JS轮播图(网易云轮播图)

    JS 轮播图 写在前面 最聪明的人是最不愿浪费时间的人.--但丁 实现功能 图片自动切换 鼠标移入停止自动播放,显示按钮 点击按钮,实现前后翻 鼠标移入小圆圈,可以跳转到对应图片 点击左右两侧图片部分 ...

  8. Task类学习教程—组合任务ContinueWith

    Task类学习教程-组合任务.ContinueWith 一.简介 通过任务,可以指定在任务完成之后,应开始运行之后另一个特定任务.ContinueWith是Task根据其自身状况,决定后续应该作何操作 ...

  9. 高频访问SQLite数据库

    SQLite 是一款开源的 SQL 数据库引擎,由于其自包含.无服务.零配置和友好的使用许可(完全免费)等特点,在桌面和移动平台被广泛使用. 在应用开发过程中,如果想保存点数据,自然而然地就会想到 S ...

  10. Celery 架构组成

    Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async task)和定时任务(cron ...