MySQL学习 (一)

    科技2022-07-16  106

    1. 基本概念

    MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    2. 学习方向

    主要学习四种语言:DQL,DML,DDL,DCL。

    1、数据查询语言DQL:数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:               SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>

    2、数据操纵语言DML:DML主要有三种形式            a. 插入:INSERT            b. 更新:UPDATE            c. 删除:DELETE

    3、数据定义语言DDL:DDL用来创建数据库中的各种对象例如,表、视图、索引、同义词、聚簇等:

               CREATE TABLE(表)/VIEW(视图)/INDEX(索引)/SYN(同义词)/CLUSTER(簇)

    4、数据控制语言DCL:DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:            a. GRANT:授权。            b. ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。            c. COMMIT [WORK]:提交。

    3. 基础语法

    -- []中的代码表示可选项, 但是语句中不包括[] -- 一般用``将表名 和 字段名包括起来,防止和关键字冲突 CREATE DATABASE [IF NOT EXISTS] `库名`; -- 创建数据库 DROP DATABASE [IF EXISTS] 库名; -- 删除数据库 SHOW DATABASES; -- 查看所有的数据库 USE 库名; -- 使用数据库 SHOW TABLES; -- 查看当前数据库下的所有数据表 DESCRIBE 表名; -- 查看表结构 show create database 库名 -- 可以查看获得创建该数据库的语法 show create table 表名 -- 可以查看获得创建数据表的语法 -- 修改表名 alter table 旧表名 rename as 新表名 alter table teacher rename as teachers -- 删除表的字段 alter table 表名 drop 字段名 alter table teachers drop age -- 增加表的字段 alter table 表名 add 字段名 属性 alter table teachers add age int(11) not null //更改表的结构 -- 1. modify 只能用来更改字段属性约束 -- alter table 表名 modify 字段名 属性 alter table teachers modify age varchar(11) -- 2. change 能用来重命名字段,也能用来修改属性约束 -- alter table 表名 change 旧字段名 新字段名 alter table teachers change age old int(11)

    建表细节

    int(x):表示设置字段为int类型,最多展示的数据长度为x位(位宽)。

    varchar(x):表示设置字段为可变长字符串类型,最大长度为x位。

    not null:表示设置该字段不允许为空,是必填项。

    default null:表示不填写情况下默认值为null。

    comment ‘xx’:表示这个字段的注释为xx。

    auto_increment:该字段自增,可以设置自增初始值和增量。

    PRIMARY KEY (id):表示id字段是主键,一般情况下一张表只有一个。

    ENGINE=INNODB:设置引擎为INNODB,下面对比MyISAM(早些年用的)和INNODB(当下流行的)区别。

    DEFAULT CHARSET=utf8:设置默认字符集为utf8防止出现乱码现象,不设置的情况下不支持中文。

    -- 所有的语句后面加, 最后一行不加 CREATE TABLE IF NOT EXISTS `student`( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名', `pwd` VARCHAR(20) NOT NULL COMMENT '密码', `sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别', `birth` DATETIME DEFAULT NULL COMMENT '出生日期', `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址', `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8

    4. INNODB和MyISAM引擎对比

    具体对比点这里

    MyISAM:节约空间,速度较快 INNODB:安全性较高,支持事务处理,多表多用户操作。

    愿你走出半生,归来仍是少年~

    Processed: 0.010, SQL: 10