1. SQL

mysql 文章 2022-07-15 14:23 512 0 全屏看文

AI助手支持GPT4.0

数据库定义语言(DDL)

数据库
  1. 创建数据库

    CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  2. 删除数据库

    drop database 数据库名;
  3. 切换数据库

    use 数据库名;
  4. 查看所有数据库

    show databases;
  5. 修改数据库编码

    alter database 数据库名 character set utf8
  1. 创建表

    create table if not exists			表名(列名 数据类型[列级约束条件],列名 数据类型[列级约束条件],...[,表级约束条件])
    • SQL数据类型

      • char(n)可以存储任意字符串,但是是固定长度为n,如果插入的长度小于定义长度时,则用空格填充。
      • varchar(n)可以存储任意数量字符串,长度不固定,但不能超过n,不会用空格填充。
      • smallint用于存储小的整数,范围在 (-32768,32767)
      • int用于存储一般的整数,范围在 (-2147483648,2147483647)
      • bigint用于存储大型整数,范围在 (-9,223,372,036,854,775,808,9,223,372,036,854,775,807)
      • float用于存储单精度小数
      • double用于存储双精度的小数
      • date存储日期
      • time存储时间
      • year存储年份
      • datetime用于混合存储日期+时间
    • 列级约束条件

      就是可以在列名后面写的

      主键Primary key、外键foreign key 、唯一 unique、检查 check 、默认default 、非空/空值 not null/ null

    • 表级约束条件

      就是列都写完了,你可以单独拿出来在最下面写的,和列级约束条件是两种不同的书写模式,但是作用都是一样的

      主键、外键、唯一、检查

  2. 删除表

    drop table 表名
  3. 查看表

    # 查看所有表show tables;# 查看表的创建语句show create table 表名;# 查看表结构desc 表名
  4. 修改表

    # 添加列alter table 表名 add 列名 列类型 [列级约束条件], ...# 修改列alter table 表名 modify 列名 列类型;# 修改列名alter table 表名 change 原列名 新列名 列类型# 删除列alter table 表名 drop 列名# 修改表名alter table 表名 rename to 表名

数据库操纵语言(DML)

  • 插入

    INSERT INTO 表名 VALUES(值1, 值2, 值3);INSERT INTO 表名(列名1, 列名2) VALUES(值1, 值2), (值1, 值2), (值1, 值2);
  • 修改

    UPDATE 表名 SET 列名=值,... WHERE 条件

    警告:如果忘记添加WHERE字句来限定条件,将使得整个表中此列的所有数据都被修改!

  • 删除

    DELETE FROM 表名 WHERE 条件

警告:如果忘记添加WHERE字句来限定条件,将使得整个表中此列的所有数据都被删除!


数据库查询语言(DQL)

  • 单表查询

    SELECT 列名1 as 列1, 列名2 as 列2 FROM 表名-- 查询不重复值SELECT DISTINCT * FROM 表名 WHERE 约束条件
    • where后的约束条件
      • >, <, <=, >=, =, <>
      • between n1 and n2
      • in (n1, n2, ...)
      • 列名 like %xxx%
      • isnull
      • and, or, not
  • 多表查询

    -- 基础多表查询SELECT * FROM 表1, 表2 WHERE 条件-- 内联-- 左联 LEFT JOIN 返回左边所有的行-- 右联 RIGHT JOIN 返回右边所有的行SELECT column_name(s) FROM table_name1INNER[LEFT, RIGHT] JOIN table_name2 ON table_name1.column_name=table_name2.column_name
  • 排序查询

    SELECT * FROM 表名 WHERE 条件 ORDER BY 列名1 ASC|DESC, 列名2 ASC|DESC
    • ASC(升序,即从小到大排序)
    • DESC(降序,即从大到小排序)
  • 分组查询

    select 列名 from 表名 group by 列名 having 约束条件(可以使用聚集函数)
    • where 和 having 的区别?

      • where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来

      • where 后不可以跟聚合函数,having可以进行聚合函数的判断。

  • 分页查询

    select * from 表名 limit n1, n2
  • 嵌套查询

    SELECT * FROM 表名 WHERE 列名 = (SELECT 列名 FROM 表名 WHERE 条件)
-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
[mybatis]快速搭建一个mybatis程序,实现对数据的增删改查
mybatis SelectKey解析
mysql 取当天、昨天、上一个月、当前月和下个月数据
MySQL函数学习(五)-----流程控制函数
绿色安装MySQL5.7版本----配置my.ini文件注意事项
随便看看
企业微信通讯录账号被管理员误/恶意删除,怎么办? 9390
问题? 8910
如何快速搭建抽奖助手小程序(无需代码知识) 6040
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 7344
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 6671
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5999
如何解决渲染层网络错误Failed to load media? 17277
小程序找号找回 释放昵称? 3151
我的小程序广告主收入5301,实际进账4406,是怎么回事呀? 3014
删除部分微信用户个人数据的通知,怎么删除? 6262