• mysql笔记1—安装、配置和基础的数据表操作


    本篇笔记主要分为两部分:

     1,安装完毕之后的简单配置

    2,数据的类型、简单的数据表操作命令

    一、mysql安装完毕之后

    windows和linux环境,除mysql的安装、配置有所不同,其他操作一样,本文在linux环境下操作。

    启动(停止,重启)mysql服务: 

    service mysql start(stop,restart)

    mysql的登陆/退出:    

    输入命令:mysql –uroot –p123456(123456为密码)

    或者: mysql –uroot -p(回车,然后输入密码)

    查看mysql版本

    方法一:status;
    方法二:select version();

    修改mysql提示符:

    我们在连接客户端后,看到,默认的提示符是mysql>,怎么修改呢

    方法一:

    连接客户端的时候就指定参数: shell> mysql -uroot -p*** --promot 提示符

    方法二:

    连接之后,通过pronpt命令来修改 : mysql> prompt 提示符

    我自己修改成如下形式:

    (因为还没有打开数据库,所以当前数据库显示为none)

    在我打开数据库t1之后:

    其他的一些mysql常用的简单命令:


    通过以上简单的几个命令,发现,关键字我用的都是大写,其实即使用小写,也是没问题的,但是为了和数据库名、表名、字段名区分,我们默认都写大写。

    说下mysql的语句规范:

    • 关键字、函数名我们用大写

    • 数据库名、表名、字段名我们小写

    • SQL语句末尾必须以分号结尾(如果你忘了输入分号,它会等着你期待你输入一个,你输入一个回车就好了)

    简单的基本操作、基本管理之后,就是如何创建数据库:

    数据库其实是一个大的概念,它是数据库以及其他子对象的集合(数据表、索引视图),mysql默认创建了四个数据库(mysql、information_schema、performance_schema、sys)

    创建数据库的语法结构很简单:

    • CREATE    {DATABASE | SCHEMA}    [IF NOT EXISTS]    db_name

      [DEFAULT]    CHARACTER    SET   [=]   charset_name

    其中,花括号为必选的,必须得有的,竖线为两个选其一,中括号表示可有可没有,为可选项;CHARACTER SET 表示指定数据库的编码方式,如果不写默认方式;

    演示一下:

    t2已经存在,但是因为我们加入了 IF NOT EXISTS,所以只是显示了一个警告,我们可以通过 SHOW WARNINGS的命令来查看警告的内容。

    如果不加IF NOT EXISTS呢?

    下面这条语句,可以查看创建数据库时候的一些指令信息,可以看出默认的编码方式:

    现在我想改变一下编码方式:

    删除数据库?

    • DROP    {DATABASE | SCHEMA}    [IF    EXISTS]    db_name

    关于 IF EXISTS ,还是同样的道理,不再演示.

     

    二、下面,介绍数据类型和数据表的操作:

    定义:数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。


    注意数据优化的时候,选择最合理最合适的数据类型,而不是越大越好;

    我们的年龄可以用整数表示,但是比如我们的工资,可能就有小数位,所以又有浮点数这种类型:

    这两种类型除了存储范围的不同,他们小数的位数也是不一样的。

    这两种类型除了存储范围的不同,他们小数的位数也是不一样的。

    CHAR定长的,比如说,CHAR(5)我们在写值得时候写了个“abc”,存储的时候会补充两个空格;VARCHAR(M)为变长的类型,存的“abc”就是“abc”

    操作数据表:

    上文创建了数据库,我们需要创建数据表;

    [IF NOT EXISTS]和我们之前讲得作用是一样的,经过项目的分析,设计好需要设置的字段,已经字段的类型;字段间用逗号分开,最后一个字段不用加逗号。

    好的我们设置一个名字加 SHEET1的用户表,表又用户名,年龄,工资3个字段。好的,姓名,我们设置为VARCHAR(20),年龄的话一般为0-110之间,可以为TINEYINT,而且无负值,设置为UNSIGNED,工资的话,设置为FLOAT,也是无负值得,设置为 UNSIGNED.

    我们看一下,数据表的结构是不是我们想要的呢?

     

    字段已经设置好,下一步是往表里边写入记录;

    • INSERT  [INTO]  SHEET1 [(col_name,...)]  VALUES(val,...)

    注意,要是省略列名,就要给每个字段赋值;否则就会出错。如下,显示为字段和值不匹配

    但是,我们可以直接不给某个字段赋值,如下:

     

    也就是说,我们可以给全部字段赋值,也可以给某部分字段赋值,但是给某些字段赋值是有先决条件的,一会谈到。这个大家记着点。

    刚才看到了,我们通过SELECT 语句,即记录的查找命令,来查看插入的数据;当然,这个SELECT其实本身也挺复杂的,以后笔记再记录;

        SELECT * FROM SHEET1;

    这块,很多同学看到有个*,以为是全部的记录,其实不然,这里是全部的字段的意思,以后会谈到。

    刚才,我们看到了,我们没给第二条记录的 salary字段赋值,显示为NULL;

    好,久聊到了NULL和NOT NULL;

    比如,我们在注册一个网站填写一些信息的时候,会显示哪些可以为空,哪些必须填写。我们如何在设计数据表的时候设置呢?需要给字段指定的更加完善。

     

    初次之外,我们要求记录的唯一性;

    我们可以通过为某个字段添加AUTO_INCREMENT属性,即自动编号,并且必须和主键组合使用;

    默认情况下,起始值为1,每次增量为1,这样就能保持唯一性;

    好,我们演示下:

    好的,错误出来了,就是自动编号的字段必须定义为主键才可以;

    那么,现在,我们就迫切了解什么是主键?

    注意刚才一个逻辑,刚才的错误显示,自动编号必须和主键一块使用,但是主键并不是必须和AUTO_INCREMENT一块使用;

    好,我们把刚才设计错误的表,重新来一遍:

    ok,我们通过查看数据表结构的命令,看到建立成功,并且字段id 因为是主键,自动的为 NOT NULL;

    现在,往数据表中插入记录,注意:字段id就不用赋值了,同时因为是为部分字段赋值,插入数据的时候也就不能省略到字段名字。

    我们插入了三条数据,而且是自动编号,如下:

    现在,演示不定义自动编号,直接设置主键;

    我们创建SHEET4表,讲id 设置为主键,创建成功后我们查看下数据表结构:

    好的,没问题,主键字段是允许赋值的;

    但是主键是不允许有相同的值得,我们测试下:

    除了主键能够保证唯一约束,我们也可以设置唯一约束,都能保证记录的唯一性;

    但是一张数据表主键只能有一个,唯一约束性可以有多个,而且可以为空;

    下面我们来创建一个 既有主键约束又有唯一约束的数据表:

    好,可以看到,唯一约束的限制,插入第二条数据的时候出错了;

    除了唯一约束、主键约束,还有默认约束;

    默认约束:当我们插入记录时,没有为字段赋值,可以为字段设置为默认值。

    我们创建一个数据表,并且查看它的表结构,最后插入数据,如下:

    我们看到,性别被赋予了默认值“3”。

    公众号中回复:mysql,就可获得mysql使用的ppt.

    -------------------------------------------------------------------------

    欢迎关注~

  • 相关阅读:
    力扣(LeetCode)605. 种花问题
    力扣(LeetCode)463. 岛屿的周长
    力扣(LeetCode)561. 数组拆分 I
    力扣(LeetCode) 263. 丑数
    区块链历史
    力扣(LeetCode) 821. 字符的最短距离
    力扣(LeetCode)804. 唯一摩尔斯密码词
    cmd 查看端口
    nginx windows版 下载和启动
    luogu P1270 “访问”美术馆
  • 原文地址:https://www.cnblogs.com/coskaka/p/7119669.html
Copyright © 2020-2023  润新知