• 售前

  • 售后

热门帖子
入门百科

MySQL入门(一) 数据表数据库的根本操作

[复制链接]
汪晨霞 显示全部楼层 发表于 2021-10-26 14:02:12 |阅读模式 打印 上一主题 下一主题
序言
这类文章,记录我看《MySQL5.6从零开始学》这本书的过程,将自己以为紧张的东西记录一下,并有可能资助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍,基本上就搞定了,前期很难理解的东西基本没有,以是写博文的内容,就是以练题的情势来出现的。
需要用的资料以链接的情势给需要的同砚。
我用的mysql版本为: Mysql-5.5.45-win64.msi 暗码是:26zw
图形化工具 Navicat(前期不保举用,直接办动敲): Navicat 暗码:c7fs
开始我的MySQL之旅吧   始于2016.12.04
                                              --WH
一、数据库的安装
这个就不在这里过多阐述了,由于网上着实是太多安装mysql的教程了,有了我给的mysql,在按照这个安装教程(MySQL安装教程)去看,就可以或许安装齐备。
安装好mysql后,假如需要使用windows命令窗口(也就是cmd)来操作mysql,那么就需要配置环境变量,在安装好的mysql下找到bin,将其目录放到环境变量path中去,就行了,检测成功与否的方法是在cmd命令窗口中输入mysql,就会出现一大段英文,就阐明成功了,反之失败,假如不会的话就去百度搜教程。
二、数据库的基本操作
1、开启mysql服务命令
  1. net start mysql
复制代码

2、进入mysql的两种方式
明文进入:
  1. mysql -uroot -proot
复制代码
  格式:mysql -u帐号 -p暗码
密文进入:
  1. mysql -uroot -p
复制代码
按enter会提示你输入暗码(Enter pssword:),此时你写的暗码就会表现为***如许。

3、查察mysql中所有的数据库(一样平常在固定的单词命令就会是用大写,这个要风俗,看多了敲多了就认识了)
前面四个数据库是mysql中自带的,也就是必须的.
  1. SHOW DATABASES;
复制代码

4、创建名为test_1的数据库
格式:CREATE DATABASE 数据库名
  1. CREATE DATABASE test_1;
复制代码

5、删除名为test_1的数据库
格式:DROP DATABASE 数据库名
  1. DROP DATABASE test_1;
复制代码

总结:学习了对数据库的三个操作,1、查察所有数据库 2、创建数据库 3、删除数据库
三、数据表的基本操作
数据表和数据库还有Mysql三者的关系
mysql中保存了很多数据库、一个数据库中可以保存很多表。
对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。 留意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)
前提:表是在数据库下的,以是要先确实使用哪个数据库。
  1. USE test_1;
复制代码

1、创建数据表
格式:CREATE TABLE 数据表名(
   字段名1  数据范例[列级别约束条件],
   字段名2  数据范例[列级别约束条件],
   字段名3  数据范例[列级别约束条件]
               ); 
留意:格式不肯定需要如许隔着写,完全可以全部写成一行。但是那样写可观性非常差。我如许写只是为了可以看的更清楚。
表明:
1、[]中括号中的内容表现可以有可以没有,
2、列级别这个“列”肯定要搞清楚说的是什么,一张表中有行有列,列表现竖,行表现横 
3、约束条件背面会讲到
  1.1、创建没有约束的student表
  1.      CREATE TABLE student(
  2.           id  INT(11),
  3.           name  VARCHAR(12),
  4.           age  INT(11)
  5.                );
复制代码
注释:SHOW TABLES 查询数据库底下的所有表。
1.2、创建有约束的student表
   六大约束:主键约束、外键约束、非空约束、唯一约束、默认约束、自动增长
1.2.1:主键约束
PRIMARY KEY(primary key):独一无二(唯一)和不能为空(非空),通俗的讲,就是在表中增长记录时,在该字段下的数据不能重复,不能为空,比如以上面创建的表为例子,在表中增长两条记录,假如id字段用了主键约束。则id不能一样,并且不能为空。一样平常每张表中度有一个字段为主键,唯一标识这条记录。以后需要找到该条记录也可以同这个主键来确认记录,由于主键是唯一的,并且非空,一张表中每个记录的主键度不一样,以是根据主键也就能找到对应的记录。而不是多条重复的记录。假如没有主键,那么表中就会存在很多重复的记录,那么即浪费存储空间,在查询时也斲丧更多资源。
一样平常被主键约束了的字段度风俗性的称该字段为该表的主键
单字段主键约束
  两种方式都可以
  CREATE TABLE student(            CREATE TABLE student(
    id  INT(11) PRIMARY KEY,          id  INT(11),
    name  VARCHAR(12),            name  VARCHAR(12),
    age  INT(11)   age  INT(11),
  ); PRIMARY KEY(id) );
多字段主键约束(复合主键)
    这个id和name都市主键,阐明在以后增长的插入的记录中,id和name不能同时一样,比如说可以是如许。一条记录为id=1,name=yyy、另一条记录为:id=1,name=zzz。 如许是可以的。并不是你们所理解的两个字段分别度不可以相同。
  CREATE TABLE student(CREATE TABLE student(
    id  INT(11) PRIMARY KEY,            id  INT(11),
    name  VARCHAR(12) PRIMARY KEY,       name  VARCHAR(12),
    age  INT(11)     age  INT(11),
  );        PRIMARY KEY(id,name) );
1.2.2:外键约束
什么是外键举个例子就清楚了,有两张表,一张表是emp(员工)表,另一张表是dept(部分)表,一个员工属于一个部分,那么如何通过员工能让我们自己他在哪个部分呢?那就只能在员工表中增长一个字段,能代表员工地点的部分,那该字段就只能是存储dept中的主键了(由于主键是唯一的,才气确实是哪个部分,进而代表员工地点的部分,假如是部分名称,有些部分的名称可能是同名。就不能区分了。),像如许的字段,就符合外键的特点,就可以使用外键约束,使该字段只可以或许存储另一张表的主键。假如不被外键约束,那么该字段就无法保证存储进来的值就肯定是另一张表的主键值。
外键约束的特点:
  1、外键约束可以形貌恣意一个字段(包括主键),可以为空,并且一个表中可以有多个外键。但是外键字段中的值必须是另一张表中的主键。
  2、如许被外键关联的两种表的关系可以称为父子表大概主从表。子表(从表)拥有外键字段的表,父表(主表)被外键字段所指向的表。
  3、子表被外键约束修饰的字段必须和父表的主键字段的范例一样。
  留意:一个表中有被外键修饰的字段,就称该表有外键(是“有外键”。而不是“是外键”),并会给该表中的外键约束取一个名称,以是我们常说的这个表有没有外键,指的不是被外键约束修饰的字段名,而是指这个表是否有存在外键约束。也就是说,不能说这个表的外键是xxx(该表中被外键约束修饰的字段名),这种说法是错误的,但是大多数人已经风俗了如许,固然影响不大,但是在很多时间需要理解一个东西时,会造成肯定的困扰。
格式:CONSTRAINT  外键名称  FOREIGN KEY(被外键约束的字段名称)  REFERENCES  主表名(主键字段)
    英文表明:CONSTRAINT:约束    REFERENCES:参考
   CREATE TABLE tableA
        (
            id INT(11),
            name VARCHAR(22),
            location VARCHAR(50),
            PRIMARY KEY(id)
        );
        CREATE TABLE tableB
        (
            id INT(11),
            name VARCHAR(22) NOT NULL,
            deptId INT(11),
            PRIMARY KEY(id),
            CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
       );            
     表明:tableB中有一个名为tableA_tableB_1的外键关联了tableA和tableB两个表,被外键约束修饰的字段为tableB中的deptId,主键字段为tableA中的id     
1.2.3:非空约束
NOT NULL. 被该约束修饰了的字段,就不能为空,主键约束中就包括了这个约束
   CREATE TABLE tableA
        (
            id INT(11),
            name VARCHAR(22) NOT NULL,
            location VARCHAR(50),
            PRIMARY KEY(id)
        );
1.2.4:唯一约束
UNIQUE  被唯一约束修饰了的字段,表现该字段中的值唯一,不能有相同的值,通俗点讲,就比如插入两条记录,这两条记录中处于该字段的值不能是一样的。
         CREATE TABLE tableA
        (
            id INT(11),
            name VARCHAR(22) UNIQUE,
            location VARCHAR(50),
            PRIMARY KEY(id)
        );
也就是说在插入的记录中,每条记录的name值不能是一样的。
1.2.5:默认约束
Default  指定这一列的默认值为多少,比如,男性同砚比较多,性别就可以设置为默认男,假如插入一行记录时,性别没有填,那么就默认加上男 
     
        CREATE TABLE table
        (
            id INT(11) PRIMARY KEY,
            name VARCHAR(22) NOT NULL,
            deptId INT(11) DEFAULT 1111,
            salary FLOAT
        );
1.2.6:自动增长  
AUTO_INCREMENT 一个表只能一个字段使用AUTO_INCREMENT,并且使用这个约束的字段只能是整数范例(恣意的整数范例     TINYINT,SMALLIN,INT,BIGINT),默认值是1,也就是说从1开始增长的。一样平常就是给主键使用的,自动增长,使每个主键的值度不一样,并且不用我们自己管理,让主键自己自动生成
  1.   CREATE TABLE table
  2.   (
  3.     id INT(11) PRIMARY KEY AUTO_INCREMENT,
  4.     name VARCHAR(22) NOT NULL
  5.   );
复制代码
2、查询表结构  
              2.1、查察表基本结构语句
                    格式1:DESCRIBE 表名/DESC 表名  这两个的功能是一样的,简写了单词describe
                      DESCRIBE student;

2.2、查察创建表的语句 
   格式:SHOW CREATE TABLE 表名
   SHOW CREATE TABLE student;

如许表现的格式很不好,看不清楚,以是有了下面这个语句
格式:SHOW CREATE TABLE 表名\G
SHOW CREATE TABLE student\G;

3、修改数据表      
修改数据表包括:对表中字段的增长、删除、修改。 在这个内里用的关键字为 ALTER
  3.1、修改表名
    格式:ALTER TABLE<旧表名> RENAME[TO]<新表名>;
    将student表名改为student1(改完后在改回来)
    ALTER TABLE student RENAME TO student1;

3.2、修改表中的字段名
  格式:ALTER TABLE<表名> CHANGE<旧字段名><新字段名><新数据范例>
  将student表中的name字段名改为 username
  ALTER TABLE student CHANGE name username VARCHAR(30);

3.3、修改表中的数据范例
  格式:ALTER TABLE<表名> MODIFY<字段名><数据范例>                     
  ALTER TABLE student MODIFY username VARCHAR(20);

表明:只能修改字段名的数据范例,但是其原理跟上面change做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据范例不一样。
3.4、修改字段的分列位置
   方式1:ALTER TABLE<表名> MODIFY<字段1><数据范例> FIRST|AFTER<字段2>
   表明:将字段1的位置放到第一,大概放到指定字段2的背面
   ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

方式2:ALTER TABLE<表名> CHANGE<字段1><字段2><数据范例> FIRST|AFTER<字段3> 
表明:其实是一样的,将是字段2覆盖字段1,然后在举行排序
ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

总结
CHANGE和MODIFY的区别?
原理都市一样的,MODIFY只能修改数据范例,但是CHANGE可以或许修改数据范例和字段名,也就是说MODIFY是CHANGE的更详细化的一个操作。可能以为用CHANGE只改变一个数据范例不太爽,就增长了一个能直接改数据范例的使用关键字MODIFY来操作。
3.5、添加字段
格式:ALTER TABLE<表名称> ADD<新字段名><数据范例>[约束条件][FIRST|AFTER<已存在的表名>]
表明:在一个特定位置增长一个新的字段,假如不指定位置,默认是末了一个。
ALTER TABLE student ADD sex VARCHAR(11);

3.6、删除字段
格式:ALTER TABLE<表名称> DROP<字段名>;
ALTER TABLE student DROP sex;

3.7、删除表的外键约束
格式:ALTER TABLE<表名称> DROP FOREIGN KEY<外键约束名>
留意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。
3.8、更改表的存储引擎
格式:ALTER TABLE<表名> ENGINE=<更改后的存储引擎名>
这个存储引擎现在我自己也不太清楚,固然知道有哪几种引擎,但是稍微深入一点就不清楚了,以是打算留到日后在说。
4、删除表
4.1、删除无关联表
格式:DROP TABLE<表名>;
ALTER TABLE student;

4.2、删除被其他表关联的主表
这个是比较紧张的一点,在有外键关联关系的两张表中,假如删除主表,那么是删不掉的,并且会报错。由于有张表依赖于他。那怎么办呢?针对这种情况,统共有两种方法
1、先删除你子表,然后在删除父表,如许就到达了删除父表的目的,但是子表也要被删除
2、先排除外键关系,然后在删除父表,如许也能到达目的,并且保存了子表,只删除我们不需要的父表。在3.7中就讲授了如何删除外键关系。
四、总结
讲了这么多,但实际中,用到的并不是很多,特别是对表结构的修改的操作,在实际开发中,一样平常数据库表被界说下来了,就不会在修改了,发现数据库表计划的不好,也是将表全部删除,然后在重新创建过新表。但是在我们学习的过程中,这些操作还是很紧张的,由于需要这些基础来学习背面更深入的东西,不可能由于实际中不用,就不学这不学那,要信赖,不管做什么,那肯定是有意义的事情,可能那意义并不大,但是日后肯定会对我们有所资助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作