目录
1、连接数据库:mysql -h服务器主机地址 -u用户名 -p密码
7、显示表创建语句:show creade table 表名;
04、 DDL语句(数据定义语言):包括创建(create)、删除(drop)和修改(alter)数据库对象
3、创建数据表:carate table [if not exists] `表名`
1、 修改表名::ALTER TABLE 旧表名 RENAME AS 新表名
2、给表添加字段: ALTER TABLE 表名 ADD 字段名 列类型 [属性]
3、修改表中的字段:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [属性]
4、删除字段: ALTER TABLE 表名 DROP 字段名
5、删除表: DROP TABLE [IF EXISTS] 表名
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)成绩表