1、MySQL初体验

本文详细介绍了MySQL数据库的安装配置、基本命令、结构化查询语言分类,特别是DDL语句,包括创建、删除和修改数据表的操作。内容涵盖数据类型、字段属性约束、表的创建、修改和删除等,并提供了多个示例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

01、安装并配置MySQL数据库

02、结构化查询语句分类

03、MySQL基本命令

1、连接数据库:mysql -h服务器主机地址 -u用户名 -p密码

2、创建数据库:create database 数据库名;

3、查看数据库:show databases;

4、选择数据库(或使用数据库):use 数据库名;

5、删除数据库:drop database 数据库名;

6、显示表结构:desc 表名;

7、显示表创建语句:show creade table 表名;

03、结构化查询语句分类

04、 DDL语句(数据定义语言):包括创建(create)、删除(drop)和修改(alter)数据库对象 

1、数据类型

(1)数值类型

(2)字符串类型

(3)日期和时间型数值类型

2、常用字段属性约束

(1)单字段主键

(2) 多字段联合主键

3、创建数据表:carate table [if not exists] `表名` 

4、列出所有表:show tables;

3、数据字段属性

(1)unsigned

(2)zerofill

(3)auto_increment

(4)NULL 和 NOT NULL

(5)defaul

 4、数据字段注释

05、修改数据表

1、 修改表名::ALTER TABLE 旧表名  RENAME AS  新表名

2、给表添加字段: ALTER TABLE 表名   ADD 字段名   列类型 [属性]

3、修改表中的字段:ALTER TABLE 表名   CHANGE 旧字段名  新字段名   列类型 [属性]

4、删除字段: ALTER TABLE 表名   DROP  字段名

5、删除表: DROP  TABLE  [IF EXISTS]   表名

06、示例

示例1:创建数据库表student6

示例2: 新建subject表

 示例3:通过对stubent表进行修改、添加、删除等操作

示例4: 学生表

示例5:教师表

示例6:课程表、成绩表

示例7:通过MySQL建表


01、安装并配置MySQL数据库

02、结构化查询语句分类

表 结构化查询语句分类
名称解释命令
DDL(数据定义语言)定义和管理数据对象,如数据库,数据表等create、drop、alter
DML(数据操作语言)用于操作数据库对象中所包含的数据insert、update、delete
DQL(数据查询语言)用于查询数据库数据select
DCL(数据控制语言)用来管理数据库的语言,包括管理权限及数据更改grant、commit、rollback

03、MySQL基本命令

1、连接数据库:mysql -h服务器主机地址 -u用户名 -p密码

2、创建数据库:create database 数据库名;

3、查看数据库:show databases;
4、选择数据库(或使用数据库):use 数据库名;
5、删除数据库:drop database 数据库名;
6、显示表结构:desc 表名;
7、显示表创建语句:show creade table 表名;
8、创建数据表:carate table [if not exists] 表名` 
9、列出所有表:show tables;

10、修改表名::ALTER TABLE 旧表名  RENAME AS  新表名
11、给表添加字段: ALTER TABLE 表名   ADD 字段名   列类型 [属性]
12、修改表中的字段:ALTER TABLE 表名   CHANGE 旧字段名  新字段名   列类型 [属性]
13、删除字段: ALTER TABLE 表名   DROP  字段名
14、删除表: DROP  TABLE  [IF EXISTS]   表名

1、连接数据库:mysql -h服务器主机地址 -u用户名 -p密码

        方式一:以下两种命令都可以连接数据库

(1)mysql -hlocalhost -uroot -proot

(2)mysql -u -root -p ,再输入密码root,即可连接

 

        方式二:通过MySQL自带的“MySQL Command Line Client”来登录MySQL数据库,无需输入DOS命令,只需按提示输入密码,如下图所示。

2、创建数据库:create database 数据库名;

        例如创建myschool88数据库的语句:create database mymyschool88;

         在MySQL中,以英文半角分号(;)作为一条命令的结束符,且在Windows系统下,默认不区分大小写。

        注意:通过执行SQL语句的结果发现,下面有一行提示“Query OK, 1 row affected (0.01 sec)”

        (1)Query OK:表示SQL语句执行成功

        (2)1 row affected:表示操作影响的行数

        (3)0.01 sec:表示操作执行的时间

3、查看数据库:show databases;

4、选择数据库(或使用数据库):use 数据库名;

5、删除数据库:drop database 数据库名;

6、显示表结构:desc 表名;

7、显示表创建语句:show creade table 表名;

03、结构化查询语句分类

表 结构化查询语句分类
名称解释命令
DDL(数据定义语言)定义和管理数据对象,如数据库,数据表等create、drop、alter
DML(数据操作语言)用于操作数据库对象中所包含的数据insert、update、delete
DQL(数据查询语言)用于查询数据库数据select
DCL(数据控制语言)用来管理数据库的语言,包括管理权限及数据更改grant、commit、rollback

04、 DDL语句(数据定义语言):包括创建(create)、删除(drop)和修改(alter)数据库对象 

1、数据类型

(1)数值类型

表 常用数值类型
数据类型字节数取值范围存储需求
tinyint非常小的数据1字节
smallint
mediumint
int
bigint
float
double
decimal

(2)字符串类型

表 字符串类型

(3)日期和时间型数值类型

表 日期和时间型数值类型

2、常用字段属性约束

表 常用字段属性约束
字段属性约束名关键字说明
非空约束NOT BULL如某字段不允许为空,则需要设置NOT BULL约束,如学生姓名字段不允许为空
默认约束DEFAULT赋予某字段默认值,如果该字段没有赋值,则其值为默认值。如学生表中男生居多,可设置性别列表默认值为“男”
唯一约束UNIQUE KEY(UK)设置字段的值是唯一的。允许为空,但只能有一个空值
主键约束PRIMARY KEY(PK)设置该字段为表的主键,可以作为该表记录的唯一标识,如学号能唯一确定一名学生,可设置为主键
外键约束FOREIGN KEY(FK)

用于在两表之间建立关系,需要指定引用主表的哪一字段。在插入或更新表中的数据时,数据库将自动检查更新的字段值是否符合约束的限制。如果不符合约束要求,则更新操作失败。使用时注意:

(1)InnoDB支持外键,MyISAM不支持,外键关联的表要求都是InnoDB类型的表;

(2)作为外键的字段要求在主表中是主键(单字段主键)

自动增长AUTO_INCREMENT

(1)设置该列为自增字段,默认每条自增1

(2)通常用于设置主键,且为整数类型

(3)可设置初始值和步长

        主键约束是非常重要的约束,当需要使用数据库表中的某一字段或某几个字段来唯一标识所有记录时,需要将该字段设置为表的主键,主键可以是单字段的,也可以是多字段的。

(1)单字段主键

        ① 在定义字段的同时指定主键,语法格式如下:

create table [if not exists] 表名(

    字段1 数据类型 PRIMARY KEY,

    ... ...

)

例子:

CREATE TABLE  school1(
    `student` INT(4)PRIMARY KEY,

    ... ...
)

        ②  在定义完所有字段之后指定主键,语法格式如下:

create table [if not exists] 表名(

    字段1 数据类型,

    ... ...

)

例子:

CREATE TABLE school2(
    `student` INT(4),

    ... ...
    PRIMARY KEY(student)
)

(2) 多字段联合主键

        ① 主键由多字段组成,语法格式如下:

create table [if not exists] 表名(

    ... ...

    PRIMARY KEY[字段1,字段2... ...]

)

例子:

CREATE TABLE school3(

    `id`INT(4),

    `name`VARCHAR(11),

    ... ...

    PRIMARY KEY(id,name)

)

3、创建数据表:carate table [if not exists] `表名` 

 carate table [if not exists] `表名`(

        字段1 数据类型[字段属性|约束][索引][注释],

        字段2 数据类型[字段属性|约束][索引][注释],

        ..........

        字段n 数据类型[字段属性|约束][索引][注释],

 )[表类型][表字符集][注释];

        注意:

(1)在MySQL中,如果使用的数据库名、表名或字段名等与保留字冲突,需使用(`)括起来。在MySQL自动生成的代码中,表名或字段名等全部使用反撇号(`)括起来。

(2)使用create table语句创建表时,多字段之间使用逗号(,)分割,最后一个字段后无需逗号。

(3)MySQL中常用的两种注释方式:

        单行注释:#......

        多行注释:/*... ...*/

(4)表中的字段也称为列。

4、列出所有表:show tables;

3、数据字段属性

(1)unsigned

        ① 无符号的

        ② 声明该数据列不允许负数

(2)zerofill

        ① 0填充的

        ② 不足位数的用0来填充,如int(3),5则为005

(3)auto_increment

        ① 自动增长的,每添加一条数据,自动在上一个记录上加1

        ② 通常用于设置主键,且为整数类型

(4)NULL 和 NOT NULL

        ① 默认为NULL,即没有插入该列的数值

        ②如果设置为NOT NULL,则该列必须有值

(5)defaul

        ① 默认的

        ② 用于设置默认值

                例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值

(1)unsigned

        ① 无符号的

        ② 声明该数据列不允许负数

(2)zerofill

        ① 0填充的

        ② 不足位数的用0来填充,如int(3),5则为005

(3)auto_increment

        ① 自动增长的,每添加一条数据,自动在上一个记录上加1

        ② 通常用于设置主键,且为整数类型

(4)NULL 和 NOT NULL

        ① 默认为NULL,即没有插入该列的数值

        ②如果设置为NOT NULL,则该列必须有值

(5)defaul

        ① 默认的

        ② 用于设置默认值

                例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值

 4、数据字段注释

#.........

/* .........        */

05、修改数据表

1、 修改表名::ALTER TABLE 旧表名  RENAME AS  新表名

#修改表名:ALTER TABLE 旧表名  RENAME AS  新表名
ALTER TABLE student RENAME stu

2、给表添加字段: ALTER TABLE 表名   ADD 字段名   列类型 [属性]

#给表添加字段: ALTER TABLE 表名   ADD 字段名   列类型 [属性]   
ALTER TABLE stu ADD address VARCHAR(50) NOT NULL

3、修改表中的字段:ALTER TABLE 表名   CHANGE 旧字段名  新字段名   列类型 [属性]

/*修改表中的字段:常用第2个
(1) ALTER TABLE 表名   MODIFY 字段名   列类型 [属性]   
(2)ALTER TABLE 表名   CHANGE 旧字段名  新字段名   列类型 [属性]
*/
#(2)
ALTER TABLE stu CHANGE age score INT(3) DEFAULT 100

4、删除字段: ALTER TABLE 表名   DROP  字段名

#删除字段: ALTER TABLE 表名   DROP  字段名
ALTER TABLE stu DROP address

5、删除表: DROP  TABLE  [IF EXISTS]   表名

#删除表: DROP  TABLE  [IF EXISTS]   表名
DROP TABLE IF EXISTS stu

06、示例

示例1:创建数据库表student6

        需求说明:

        (1)使用语句新建student6表

        (2)具体设计如下

代码:

#练习2:创建数据库表student6
CREATE TABLE IF NOT EXISTS `student6`(
`StudentNo`INT(4) NOT NULL COMMENT'学号',
`LoginPwd`VARCHAR(20) DEFAULT NULL,
`StudentName`VARCHAR(20) DEFAULT NULL COMMENT '学生姓名',
`Sex` TINYINT(1) DEFAULT NULL COMMENT '性别,取值0或1',
`GradeId` INT(11) DEFAULT NULL COMMENT '年级编号',
`phone`VARCHAR(50) NOT NULL COMMENT '联系电话',
`Address`VARCHAR(255) NOT NULL COMMENT '地址',
`BornData` DATETIME DEFAULT NULL COMMENT '出生时间',
`Email`VARCHAR(50) NOT NULL COMMENT'邮箱账号',
`IdentityCard`VARCHAR(18) DEFAULT NULL COMMENT '身份证号'
) COMMENT='学生表';

示例2: 新建subject表

        需求说明:

        (1)使用语句新建subject表

        (2)设置数据表为MyISAM类型

        (3)具体设计如下

        代码:

#练习3:新建subject表
CREATE TABLE IF NOT EXISTS `subject`(
`SubjectNo` INT(11) NOT NULL COMMENT '课程编号',
`Subject` VARCHAR(50) DEFAULT NULL COMMENT '课程名称',
`ClassHour` INT(4) DEFAULT NULL COMMENT '学时',
`GradeID` INT(4) DEFAULT NULL COMMENT'年级编号'
) ENGINE=MYISAM

 示例3:通过对stubent表进行修改、添加、删除等操作

#通过对stubent表进行修改、添加、删除等操作

#修改表名:ALTER TABLE 旧表名  RENAME AS  新表名
ALTER TABLE student RENAME stu


#给表添加字段: ALTER TABLE 表名   ADD 字段名   列类型 [属性]   
ALTER TABLE stu ADD address VARCHAR(50) NOT NULL

/*修改表中的字段:常用第2个
(1) ALTER TABLE 表名   MODIFY 字段名   列类型 [属性]   
(2)ALTER TABLE 表名   CHANGE 旧字段名  新字段名   列类型 [属性]
*/
#(2)
ALTER TABLE stu CHANGE age score INT(3) DEFAULT 100

#删除字段: ALTER TABLE 表名   DROP  字段名
ALTER TABLE stu DROP address

#删除表: DROP  TABLE  [IF EXISTS]   表名
DROP TABLE IF EXISTS stu

示例4: 学生表

#学生表
#方法一:
/*
create table student(
`Sno` varchar(20),
`Sname` varchar(20) not null DEFAULT '',
`Ssex` varchar(20)  not null DEFAULT '',
`Sbirthday` datetime DEFAULT null,
`Class` varchar(20) null DEFAULT '',
primary key(`Sno`)
);
*/
#方法二
CREATE TABLE `student`(
`Sno` VARCHAR(20)  NOT NULL,
`Sname` VARCHAR(20)  NOT NULL,
`Ssex` VARCHAR(20)  NOT NULL,
`Sbirthday` DATETIME DEFAULT NULL,
`Class` VARCHAR(20) DEFAULT NULL,
PRIMARY KEY(Sno)
);

示例5:教师表

#教师表
CREATE TABLE `teacher`(
`Tno` VARCHAR(20) NOT NULL,
`Tname` VARCHAR(20) NOT NULL,
`Tsex` VARCHAR(20) NOT NULL,
`Tbirthday` DATETIME DEFAULT NULL,
`Prof` VARCHAR(20) DEFAULT NULL,
`Depart` VARCHAR(20) NOT NULL,
PRIMARY KEY(`Tno`)
);

示例6:课程表、成绩表

        代码:


#课程表
CREATE TABLE `coourse`(
`Cno` VARCHAR(20) NOT NULL,
`Cname` VARCHAR(20) NOT NULL,
`Tno` VARCHAR(20) NOT NULL,
PRIMARY KEY(`Cno`)
)

#成绩表
CREATE TABLE `score`(
`Sno` VARCHAR(20) NOT NULL,
`Cno` VARCHAR(20) NOT NULL,
`Degree` DECIMAL(10,0) DEFAULT NULL
)

示例7:通过MySQL建表

#学生表
CREATE TABLE `student` (
  `s_id` VARCHAR(20),
  `s_name` VARCHAR(20) NOT NULL DEFAULT '',
  `s_birth` VARCHAR(20) NOT NULL DEFAULT '',
  `s_sex` VARCHAR(10) NOT NULL DEFAULT '',
  PRIMARY KEY (`s_id`)
) ;

#课程表
CREATE TABLE `Course`(
`c_id` VARCHAR(20),
`c_name` VARCHAR(20) NOT NULL DEFAULT '',
`t_id` VARCHAR(20) NOT NULL,
PRIMARY KEY(`c_id`)
);

#教师表
CREATE TABLE `Thecher`(
`t_id` VARCHAR(20),
`t_name`VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY KEY(`t_id`)
);

#成绩表
CREATE TABLE `Score`(
`s_id` VARCHAR(20),
`c_id` VARCHAR(20),
`s_score` INT(3),
PRIMARY KEY(`s_id`,`c_id`)
);


(1)学生表

(2)课程表

(3)教师表

(4)成绩表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪VS恒哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值