zoukankan      html  css  js  c++  java
  • mysql基础操作

    Mysql 

    • mysql就是开放源码的关系数据库管理系统
      • 数据库就是按照数据结构来组织,存储和管理数据的仓库
      • 数据库管理系统:操作和管理数据库的大型软件,用于建立、使用和维护数据库
      • 关系型数据库:关系型数据库使用表来保存数据,使用表和表之间的关系来处理数据 还为数据的安全性、完整性、并发控制和数据恢复提供了保证。
    • 关系型数据库的术语
      • 关系: 一张二维表,每个关系必须有一个关系名,也就是俗称的表名
      • 字段/属性:二维表中的一列
      • 记录/元祖:二维表中的一行
      • 超键(super key):在关系中能唯一标识元祖的属性集称为关系模式的超键
      • 候选键(candidate key):不含有多余属性的超键
      • 主键(primary key):用户选作元祖标标识一个候选键
      • 外键:用于关联两张表
      • 范式:符合某一级别的关系模式的集合,构造数据库的表必须遵循一定的规则

    在学习或复习下面的知识点的时候,默认已安装了MySQL,如果没有安装的请参照下面这篇文章进行安装,MySQL的安装还是比较麻烦的,但是并不难。

    https://www.jb51.net/article/179335.htm

    1.1.入门语句 

    连接MySQL : 在cmd(管理员身份)下 运行:  mysql  -uroot -p   然后输入密码 ,即可进入MySQL

    退出mysql语句: exit

    1.2 当我们连接上服务器时,首先面对的是库,库有一个或者多个,可以使用  show databases; 查看我们有哪一些库,没有的话,可以创建数据库,

    创建数据库语句: create database  数据库名  charset 字符集;  字符集建议使用 utf8。 有了数据库,我们便可以对数据库进行操作了,首先选库,

    选库语句: use 库名;   删除数据库: drop database 数据库名; (慎用,笑)

     这里面我之前创建了几个库玩。

    这里新创建了一个数据库demo01

     这里删除了数据库sys

    对于数据库来说,我们可不可以给数据库改名呢,答案是不可以的,所以你在创建数据库的时候命名时候要注意一些。但是表是可以改名的。

    1.3 简单的表操作

    建表语句,创建一个叫做stu的表,首先你要先选库,才能建表

     

     建表语句的主体就是  create table 表名( ......)engine myisam charset utf8;

    其中engine是表引擎,和性能相关,括号中的就是属性,下面会细讲

    修改表,向表内增加新的属性

    alter table 表名

    add   列

    建表完毕后,我们可以给表进行改名操作

    rename table 旧名 to 新名;

     显示数据库中存在多少表 show tables;

    向表内插入数据,下面是一个简单的示例,插入了三条数据

    insert into 表名 values (key,value),(key,value),......,(key,value);

    当然增删改查的增操作肯定不可能如上边这条语句一样死板,还有许多变化,下面会讲

     下面查看我们向这张表中填充的所有数据,使用select语句

    select * from 表名;  *是指所有数据的意思

    清空表数据: truncate 表名;  

    删除表: drop  table 表名;

    truncate相当于删除表再重建一张同样结构的表,操作后得到一张全新的表

    delete是从删除数据行的层面进行操作

    2.1乱码问题

    命令行(cmd)使用的是GBK字符集,而我们数据库存放的是utf8,所以要告诉服务器,客户端使用GBK编码  set names gbk;

    2.2 增删改查(这是针对表来说的)

    首先创建一个薪资表    sex:性别         salary:薪资          fanbu :饭补

    varchar(),  char(), decimal(), smallint()这些都是数据类型,下面会讲

    not_null表示非空,default'' 表示设置默认值

    查看一下表的结构

    desc 表名;

      增  

    insert into 表名(...........向哪一些属性添加数据..........)  values (.....),(.......),......,(.......);

    例如:

    insert into xinzi(id,name,sex,company,salary,fanbu)  values (1,"张三",'男', '百度', 8000.00,200);

    下面向表中添加一些数据

     

     查 

    select * from xinzi; 查看所有行所有列

     查看某一行的所有属性或部分属性

    查看所有行的部分属性

    改操作

    示例

    update xinzi

    set

    name = ‘张飞’,

    company = '蜀中集团'

    where id = 2;

    删 这里的删并不是删除数据表,而是删除整行数据

    delete from 表名 where ..;

     

    至此,一个表的最简单的增删改查就已经学习过了

    下面是对建表时的知识点 列类型的学习  , 重点是学习列类型的 存储范围  和 占据的字节关系

    3.1  整型

    tinyint  占据空间 1个字节 即8位    0-65535

    samllint   2个字节  

    mediuint   3个字节

    int        4个字节

    bigint   8个字节

    3.2 浮点数型

    float(m,d)

    decimal(m,d)

    m代表总位数,d代表小数点后的位数

    3.3 字符串类型

    char   如char(6) 表示定长字符串

    varchar  如 varchar(20) 表示变长字符串

    text  文本类型  可以存储大的文本段  text 不用加 默认值

    blob  是二进制类型,用来存储图像,音频,视频等二进制信息    (对于图像,视频如何以二进制保存,可以去B站或其他地方去看一下科普视频,简直是太有趣了)

     3.4 时间类型

    date  日期          格式: YYYY-MM-DD

    time  时间      格式: HH-MM-SS

    datetime  日期时间   格式   YYYY-MM-DD HH-MM-SS

    year  年份类型    格式: YYYY

    timestamp    自动取系统当前时间

     

    4 重新补充一下对于表的属性的增删改查

    4.1 增

    alter table 表名

    add 列名称 列类型 列参数

    下面创建一个teacher表,包含属性姓名,年龄属性,现在向其新增一个课程属性

     

     4.2 删

     alter table 表名  drop 列名;

     4.3 改

    alter table 表名

    change  旧列名  新列名  新属性 新参数

    5 查 select  的5种字句

    5.1 where  :条件查询

    where常用的运算符

    在某集合内:  <  <=  > >=  = !=  in

    在某范围内:  between

    逻辑非: not 或 !         逻辑或:  or 或 ||      逻辑与: and或&&

    这里要介绍一个方法,模糊查询 , 这里假设我们有一个商品表,表内有一个属性叫做商品名称goods_name,要求查询所有华为开头的商品。

    select  列名

    from   表名

    where   goods_name  like   '华为%';

    其中,%能匹配任何的字符     _匹配单一字符

    5.2 group by  分组

    group by 的常用用法是配合聚合函数    max()  min()  sum()  avg()  count()

    test: 创建一个班级表,查询出班级中的成绩最高者

    (1)创建一个表,列属性有姓名,班级,成绩

     (2) 然后向其添加一些数据

     

    (3)查询各班成绩最好的学生

    5.3  having  筛选

    还是定义一个学生表,内含属性name    chinese(语文成绩)   math(数学成绩)   (english)英语成绩 

    然后向其添加一些数据,查询出总分大于200的 学生

     

     

    5.4 order by  排序

    order by desc;  降序

    order by asc; 升序

    上面的学生表,按语文成绩的升序排序

    5.5 limit 限制条数

    向上面的查询只查后面语文成绩最低的两名

  • 相关阅读:
    Life Forms POJ
    Musical Theme POJ
    Long Long Message POJ
    ci框架多语言切换
    vi模式
    并发量
    运维技术规划
    Linux装mysqli.so
    任何一门语言思考的
    python例子
  • 原文地址:https://www.cnblogs.com/zysfx/p/12608278.html
Copyright © 2011-2022 走看看