• 数据库基础 - 数据类型、关键字、cmd中操作数据库的命令


    cmd中操作数据库的命令

    mysql -hlocalhost -用户名 -密码
    show database;查询数据库中的小数据库
    show 数据库名;查询某一个小数据库
    show 表名;查询表的结构
    exit 退出
    
    • 1
    • 2
    • 3
    • 4
    • 5

    数据类型

    数值类型

    int :整形
    double:双精度,浮点型
    float:单精度,浮点型
    decimal:小数值

    日期和时间类型

    DATE:日期,YYYY-MM-DD
    TIME:时间,hh:mm:ss
    YEAR:年份,YYYY
    DATETIME:混合时间日期,YYYY-MM-DD hh:mm:ss
    TIMESTAMP:时间戳,YYYY-MM-DD hh:mm:ss

    字符串类型

    char :固定长度字符, char(5):每次输入一个字符,就按照五个字节去计算
    varchar :可变长度字符, varchar(10):输入一个字符就按照一个字节去算,其余九个字节自动释放
    text:文本数据

    关键字

    名称关键字含义例句
    主键primary key唯一标识数据库中记录CREATE TABLE table1(id int NOT NULL, PRIMARY KEY(id)) 创建表的时候,将id设置为主键
    外键foreign key通过数据与另一张表关联ALTER TABLE table2 ADD CONSTRAINT foreign_key_name FOREIGN KEY (key1) REFERENCES table1 (id);在表2中添加外键约束,外键名为key1,关联的是表1中的id
    非空not NULL不可为空CREATE TABLE table1(id int NOT NULL, PRIMARY KEY(id)) 创建表的时候,将id设置为非空
    为空NULL为空SELECT NAME FORM table1 where field1 is NULL;查询table1中的name,并且field1中的值为空
    唯一unique唯一标识数据库中的记录CREATE TABLE table1(id int NOT NULL, UNIQUE(id)) 创建表的时候,将id设置为唯一
    去重distinct去掉重复的值SELECT DISTINCT MAX(salary) FROM table1; 查询table1中的最高工资,重复的不显示
    逻辑 或or筛选条件,跟在where之后,条件1 or 条件2,筛选条件满足两个条件中的其中一个即可SELECT name FROM table1 WHERE city = ’上海‘ or city = '杭州'; 在table1中查询城市在上海或者杭州的人员的名称
    逻辑 与and筛选条件,跟在where之后,条件1 and 条件2,筛选条件满足两个条件才可以SELECT name FROM table1 WHERE city = ’上海‘ and township = '浦东新区'; 在table1中查询城市在上海并且在浦东新区的人员的名称
    逻辑 非not不满足not之后的元素被筛选出来SELECT name FROM table1 WHERE city NOT IN ('上海','北京','天津','杭州');在table1中查找城市不在上海、北京、天津、杭州的人员名称
    模糊查询like模糊查找与关键字匹配的信息SELECT name FROM table1 where name LIKE '张%';查询table1中以张开头的的name记录
    通配符 - 单个字符__任意单个字符SELECT name FROM table1 where name LIKE '_ang';查询table1中第一个字符之后是ang的name记录
    通配符 - 多个字符%任意多个字符 xxx% %xxx %xxx%SELECT name FROM table1 where name LIKE '%zhang';查询table1中以zhang结尾的name记录
    范围查询in多个值中进行匹配查询SELECT name FROM table1 WHERE city IN ('上海','北京','天津','杭州');在table1中查找城市在上海、北京、天津、杭州的人员名称
    范围内查询between… and…在两个数值之间进行匹配查询,包含边界值SELECT name,salary FROM table1 WHERE salary between 10000 and 20000;table1中查找薪资在1w和2w之间的员工名称以及薪水
    排序order byorder by 列名1 ,列名2 如果列名1相同,则按照列名2排序,默认按照升序排序SELECT name, salary FROM table1 ORDER BY salary; 查询table1中的姓名和薪水,按照薪水升序排列
    降序desc降序排序,跟order by使用SELECT name, salary FROM table1 ORDER BY salary DESC; 查询table1中的姓名和薪水,按照薪水降序排列
    升序asc升序排序,跟order by使用SELECT name, salary FROM table1 ORDER BY salary ASC; 查询table1中的姓名和薪水,按照薪水升序排列
    聚合函数 - 求和count(*), count(列名)计算有值项的次数,不为空就累加1SELECT COUNT(name) FROM table1;计算table1中的总人数
    聚合函数 - 总和sum(*)某一个字段的值的总和SELECT sum(salary) FROM table1;查找table1中的薪水总和
    聚合函数 - 最大值max(*)某一个字段的值的最大值SELECT max(salary) FROM table1;查找table1中的薪水最大值
    聚合函数 - 最小值min(*)某一个字段的值的最小值SELECT min(salary) FROM table1;查找table1中的薪水最小值
    聚合函数 - 平均值avg(*)某一个字段的值的平均值SELECT avg(salary) FROM table1;查找table1中的薪水平均值
    分组group by按照某一个字段分组SELECT max(salary) FROM table1 GROUP BY department;查找table1中的薪水最大值,按照部门分组
  • 相关阅读:
    【Java设计模式】第6讲--代理模式
    ROS学习(30)自定义移动机器人模型gazebo仿真(激光雷达+kinect)
    数据库2-mysql环境搭建
    Android Gldie复用只取之前decode过的缓存resource,Kotlin
    Vue 安装与创建第一Docker的项目
    docker
    电脑技巧:推荐一款桌面整理神器TidyTabs
    Elasticsearch安装
    SQL中为什么不要使用1=1?
    【前端打怪升级日志之CSS篇】position定位
  • 原文地址:https://blog.csdn.net/weixin_43831559/article/details/128170649