初识MySql

初识MySql

1.安装MySql

  • 下载mysql地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-winx64.zip

  • 建议下载压缩包,这样如果装错了,或者不想要了,卸载时,容易卸载

  • 解压到自己安装到的目录

  • 添加环境变量

    1.我的电脑->属性->高级 ->环境变量

    2.选择path,打开编辑,在后面添加:你的mysql安装文件下面的bin文件夹

    3.在你的安装mysql文件夹下,新建my.ini文件,例如我的是“D:\Envioment\mysql-5.7.19”

    4.编辑my.ini文件,注意替换路径位置

    [mysqld]
    basedir=D:\Envioment\mysql-5.7.19\
    datadir=D:\Envioment\mysql-5.7.19\data\
    port=3306
    skip-grant-tables
    
    
    

    注意:在复制时,不要前面的序号,路径是你安装自己MySql的路径

    5.在管理员模式下打开CMD,并将路径切换至mysql下的bin目录,(如果不会切换目录,看本人的第一篇博客),然后输入mysqld -install(安装mysql)

    6.然后再输入mysqld --initialize-insecure --user=mysql初始化数据文件,(有时候回会初始化失败,可能是系统缺个东西,你可以下载这个(vcredist)东西,安装就行)

    7.然后再次启动mysql然后用命令mysql –u root –p进入mysql管理界面(密码可为空)

    8.进入界面后更改root密码

    update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
    

    最后输入:flush privilege;(刷新权限)

    9.修改my.ini文件删除最后一句话

     skip-grant-tables
    

    10.重启mysql即可正常使用

    net stop mysql
    net start mysql
    

    11.测试

    在管理员模式下打开cmd,输入 mysql -uroot -p123456

    能成功进去mysql就“恭喜你装好了”。

    2.什么是数据库

    数据库(DataBase,简称DB),就是可以长期存放在计算机内,可以共享的的大量数据的集合,是一个数据“仓库”

    • 数据库可以分为:

      • 关系型数据库(SQL):MySQL,Oracle,SQL Server,SQLite,DB2,
      • 非关系型数据库(NOSQL):Redis,MongoDB
    • 数据管理系统(DBMS)

    • SQLyog

      可手动操作,管理MySQL数据库的软件工具,

  • 一些操作数据库的命令

    • 创建收据库:create database if not exists 数据库名;
    • 删除数据库:drop data if exists 数据库名;
    • 查看数据库:show databases;
    • 使用数据库:use 数据库名;
    • 创建时通过命令来设置字符集,如:CREATE TABLE 表名()CHARSET=utf8;
    • 修改表名:ALTER TABLE 旧表明 RENAME AS 新表名
    • 添加字段 :ALTER TABLE 表名 ADD字段名 列属性[属性]
    • 修改字段:
      • ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
      • ALTER TABLE 表名 CHANGE 旧字段 新字段名 列属性[属性]
    • 删除字段:ALTER TABLE 表名 字段名
    • 删除数据表:DROP TABLE [IF EXISTS] 表名
  • 数据库中的数据类型

    类型说明取值范围存储需求
    tinyint非常小的数据有符号值:-27~27-1无符号值:0~2^8-11字节
    smallint较小的数据有符号值:-215~215-1无符号值:0~2^16-12字节
    mediumint中等大小的数据有符号值:-223~223-1无符号值:0~2^24-13字节
    int标准整数有符号值:-231~231-1无符号值:0~2^32-14字节
    bigint较大的整数有符号值:-263~263-1无符号值:0~2^64-18字节
    float单精度浮点数正负1.1754351e-384字节
    double双精度浮点数正负2.2250738585072014e-3088字节
    decimal字符串形式的浮点数decimal(m,d)m个字节
  • 数据库中的一些关键字

    NUll:理解为没有值,

    UnSigned:无符号的,声明该数据列不允许负数

    ZEROFILL:0填充的,不足位数的用0来填充,

    Auto_InCrement:自动增长,没添加一调数据吗,自动在上一个记录上加1,通常用于设置主键,且为整数类型

    • 可定义起起始值和步长
      • 当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
      • SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

    NOT NULL:该列必须有值

    DEFAULT:由于设置默认值,默认值用英文的单引号

    InnoDB:安全性,事物处理及多用户操作数据表

    外键

    如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键,由此可见,外键表示了两个关系之间的相关联系,以另一个关系的外键作主关键字的表称为主表,具有此外建事的表被称为主表的从表。

    作用:保持数据一致性,完整性,主要目的是控制存储在外键中的数据,约束。使两张表形成关联,外键只能引用外表中的列的值或使用空值。

    创建外表:

    方式一:直接在创建子表时添加,

    CONSTRAINT `FK_子表键名` FOREIGN KEY (`子表键名`) REFERENCES `主表键名` (`主键键名`)
    

    方式二:创建字表完毕后,修改字表添加外键

    ALTER TABLE  子表表名 ADD CONSTRAINT `FK_子表键名` FOREIGN KEY (`子表键名`) REFERENCES `grade` (`gradeid`);
    

    外键被定义要遵循以下条件:

    1.所有tables必须是InnoDB型,他们不能是临时表,因为在MySQL中只有InnoDB类型的表猜支持外键

    2.所有建立外键的字段必须建立索引

    3.对于非InnoDB表,FOREIGN KEY会被忽略掉,

    4.创建外键时,定义外键名时,不能用引号

    5.子键的数据类型要和主键的数据类型要一致,要不然会出现:“cannot add foreign key constraint

    删除外键:

    删除具有主外键关系的表时,要先删除子表,后删主表

    • ALTER TABLE 子表表名 DROP FOREIGN KEY FK_子键键名
      
    • 索引是建立外键的时候默认生成的,所以要删除外键后,索引是还存在的,所以要彻底删除,就要删索引

    • ALTER TABLE 子表表名 DROP INDEX FK_子键键名
      

添加数据

  • INSET INTO  表名[(属性名1,属性名2,属性名2,...)] VALUES ('值1','值2','值3')
    
  • 属性名之间可用英文逗号隔开,‘属性名1,属性名2,属性名2,…’该部分可省略,但添加的值务必于表的结构,数据列,顺序相对应,且数量一致,可以同时插入多个数据,值与值之间用逗号个开。

修改数据

  • UPDATE 表名 SET colum_name=value [,column_name2=value2,....][ WHERE condition];
    
  • colum_name 为更改的数据列

  • value 为修改后的数据

  • conditon 为筛选条件,可以指定修改哪些地方

删除数据

  • DELETE FORM 表名[WHERE condition]
    

TRUNCATE命令

  • TRUNCATE [TABLE] table_name;
    
  • 用于完全清空数据表,但表结构,索引,约束等不变

DELETE与TRUNCATE的区别:

1.都能删除数据,不删除表结构,但TEUNCATE速度更快

2.使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器

3.使用TRUNCATE TABLE 不会对事物有影响。

练习:创建数据库,创建表,数据的增删

CREATE DATABASE `TEST`;
USE  `TEST`;

CREATE TABLE IF NOT EXISTS `grade`(
`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级ID',
`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

CREATE TABLE IF NOT EXISTS `student`(
`studentno` INT(4) NOT NULL COMMENT '学号',
`studentname` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`sex` TINYINT(1) DEFAULT '1' COMMENT '性别',
`gradeid` INT(10) DEFAULT NULL COMMENT '年级',
PRIMARY KEY(`studentno`),
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (gradeid)
)ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO grade VALUES
(1,'大一'),
(2,'大二'),
(3,'大三'),
(4,'大四');

INSERT INTO student VALUES
(0001,'张三',0,3),
(0002,'王五',0,1),
(0003,'李四',1,4);

UPDATE student SET studentno=0004 WHERE studentname='李四';

DELETE FROM student WHERE studentname='李四';

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值