从零开始学习MySQL(一) – 初识MySQL数据库

第一章 初识MySQL数据库

第一节 数据库操作

1. 创建数据库的语法

CREATE DATABASE [IF NOT EXISTS] 数据库名称 DEFAULT CHARACTER SET 字符集 COLLATE 排序规则;

实例:创建数据库lesson,并指定字符集为GBK,排序规则为GBK_CHINESE_CI

CREATE DATABASE IF NOT EXISTS lesson DEFAULT CHARACTER SET GBK COLLATE GBK_CHINESE_CI;

2.修改数据库的语法

ALTER DATABASE 数据库名称 CHARACTER SET 字符集 COLLATE 排序规则;

实例:修改数据库lesson,并指定字符集为UTF8,排序规则为UTF8_GENERAL_CI

ALTER DATABASE lesson CHARACTER SET UTF8 COLLATE UTF8 GENERAL_CI;

3.删除数据库的语法

DROP DATABASE [IF EXISTS] 数据库名称;

实例:删除数据库lesson

DROP DATABASE IF EXISTS lesson;

4.查看数据库语法

SHOW DATABASE;

5.使用数据库语法

USE 数据库名称;

实例:使用数据库lesson

USE lesson;

第二节 列类型

MySQL中,常用列类型主要为数值类型、日期时间类型、字符串类型

1. 数值类型

tinyint smallint mediumint int bigint float double decimal
1字节 2字节 3字节 4字节 8字节 4字节(浮点) 8字节(浮点) m字节(浮点)

注:decimal(m, d) 为字符串存储的浮点数,其中m表示总位数,d表示保留小数位数

2. 日期时间类型

DATE(日期) TIME(时间) DATETIME TIMESTAMP(时间戳) YEAR
YYYY-MM-dd HH:mm:ss YY-MM-dd HH:mm:ss YY-MM-dd HH:mm:ss YYYY

3. 字符串类型

类型 说明 最大长度
char[(M)] 固定长字符串,索引快但费空间,0<=M<=255 M字符
varchar[(M)] 可变字符串,0<=M<=65535 变长度
text 文本串 2^16^-1字节

注: char(50) :不论插入值占用多少位空间,在数据库中都会占50个长度。比如"男"

varchar(50):最大占用50个长度。比如"男"占用1个

text:用于存储长文本

4. 列类型修饰属性

类型 说明 示例
UNSIGNED 无符号,只能修饰数值类型,表明该列数据不能出现负数 UNSIGNED INT(4),表示只能为4位大于等于0整数
ZEROFILL 不足的位数使用0 INT(4) ZEROFILL,如果给定的值位10,此时只有2位,而该列需要4位,不足的2位由0来填充,最终值为0010
NOT NULL 表示该列类型的值不能为空 VARCHAR(20) NOT NULL,表示该列不能为空值
DEFAULT 表示设置默认值 INT(4) DEFAULT 0,表示该列不赋值时默认为0
AUTO_INCREMENT 表示自增长,只能应用于数值列类型,该列类型必须为键,且不能为空 INT(11) AUTO_INCREMENT NOT NULL PRIMARY KEY。第一次为该列中插入值时为1,第二次为2,以此类推

第三节 数据表操作

1. 数据表类型

MySQL中的数据表类型由许多,如MyISAMInnoDBHEAPBOBCSV等。其中最常用的就是MyISAMInnoDB

MyISAMInnoDB的区别

名称 MyISAM InnoDB
事务处理 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约2倍

事务:涉及的所有操作是一个整体,要么都执行,要么都不执行。

数据行锁定:一行数据,当一个用户在修改该数据时,可以将该条数据锁定。

注:如何选择数据表的类型?

当涉及的业务操作以查询居多,修改和删除较少时,可以使用 MyISAM 。当涉及的业务操作经常会有修改和删除操作时使用 InnoDB

2. 创建数据表

CREATE TABLE [IF NOT EXISTS] 数据表名称(
    字段名1 列类型(长度) [修饰属性] [键/索引] [注释],
    字段名2 列类型(长度) [修饰属性] [键/索引] [注释],
    字段名3 列类型(长度) [修饰属性] [键/索引] [注释],
    ......
    字段名n 列类型(长度) [修饰属性] [键/索引] [注释]
) [ENGINE = 数据表类型][CHARSET = 字符集编码] [COMMENT = 注释];

示例:创建学生表,表中有字段学号、姓名、性别、年龄和成绩

CREATE TABLE IF NOT EXISTS student(
    `number` VARCHAR(30) NOT NULL PRIMARY KEY COMMENT '学号,主键',
    name VARCHAR(30) NOT NULL COMMENT '姓名',
    sex TINYINT(1) UNSIGNED DEFAULT 0 COMMENT '性别:0-男 1-女 2-其他',
    age TINYINT(3) UNSIGNED DEFAULT 0 COMMENT '年龄',
    score DOUBLE(5, 2) UNSIGNED DEFAULT NULL COMMENT '成绩'
)ENGINE=InnoDB CHARSET=UTF8 COMMENT='学生表'; 

3. 修改数据表

  • 修改表名

    ALTER TABLE 表名 RENAME AS 新表名;

    示例:将student表名修改为stu

    ALTER TABLE student RENAME AS stu;
  • 增加字段

    ALTER TABLE 表名 ADD 字段名 列类型(长度) [修饰属性] [键/索引] [注释];

    示例:在stu中添加字段联系电话(phone),类型为字符串,长度为11,非空

    ALTER TABLE stu ADD phone VARCHAR(11) NOT NULL COMMENT '联系电话';
  • 查看表结构

    DESC 表名; --查看表结构
  • 修改字段

    -- MODIFY 只能修改字段的修饰属性
    ALTER TABLE 表名 MODIFY 字段名 列类型(长度) [修饰属性] [键/索引] [注释];
    -- CHANGE 可以修改字段的名字以及修饰属性
    ALTER TABLE 表名 CHANGE 字段名 新字段名 列类型(长度) [修饰属性] [键/索引] [注释];

    示例:将stu表中的sex字般的类型设置为VARCHAR,长度为2,默认值为男,注释为"性别,男,女,其他"

    ALTER TABLE stu MODIFY sex VARCHAR(2) DEFAULT '男' COMMENT '性别:男,女,其他'; 

    示例:将stu表中的phone字段修改为moblie,属性保持不变

    ALTER TABLE stu CHANGE phone mobile VARCHAR(11) NOT NULL COMMENT '联系电话';
  • 删除字段

    ALTER TABLE 表名 DROP 字段名;

    示例:将stu表中的mobile字段删除

    ALTER TABLE stu DROP mobile;
  • 删除数据表

    DROP TABLE [IF EXISTS] 表名;

    示例:删除数据表stu

    DROP TABLE IF EXISTS stu;

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇