自学内容网 自学内容网

Mysql学习笔记

连接数据库

找到 MySQL 安装目录下的 bin 目录,然后打开命令窗口,在命令窗口中按如下语法输入命令:
mysql - h MySQL 数据库服务器的 IP 地址 - u 用户名 - p

 然后按下回车键,输入密码即可

数据库操作

创建数据库

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;

 修改数据库

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

 示例:修改数据库lesson的字符集为 UTF8 ,排序规则为 UTF8_GENERAL_CI

ALTER DATABASE lesson CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;

 删除数据库

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

示例:删除数据库lesson 

DROP DATABASE IF EXISTS lesson;

查看数据库

 SHOW DATABASES;

使用数据库

USE 数据库名称; 

示例:使用数据库lesson 

USE lesson;

数据表操作

数据表类型 

MySQL 中的数据表类型有许多,如 MyISAM InnoDB HEAP BOB CSV 等。其中最常用的就是 MyISAM 和 InnoDB。

 创建数据表

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 COMMENT '成绩'
)ENGINE=InnoDB CHARSET=UTF8 COMMENT='学生表';

修改数据表

修改表名

ALTER TABLE 表名 RENAME AS 新表名;
示例:将student表名称修改为 stu
ALTER TABLE student RENAME AS stu;

增加字段

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

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

ALTER TABELE 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 字段修改为 mobile ,属性保持不变
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;

 练习

1. 在数据库 exercise 中创建课程表 stu_course ,包含字段课程编号 (number) ,类型为整数,长度为 11 ,是主键,自增长,非空、课程名称 (name) ,类型为字符串,长度为 20 ,非空、学分 (score) ,类型 为浮点数,小数点后面保留 2 位有效数字, 长度为 5 ,非空
-- 如果数据库不存在 就创建数据库
CREATE DATABASE IF NOT EXISTS exercise DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;

 -- 使用数据库

USE exercise;

-- 在数据库中创建数据表stu_course 

CREATE TABLE IF NOT EXISTS stu_course( `number` INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL COMMENT '课程号', name VARCHAR(20) NOT NULL COMMENT '课程名称', score DOUBLE(5, 2) NOT NULL COMMENT '学分' )ENGINE=InnoDB CHARSET=UTF8 COMMENT '课程表';

2. 将课程表重命名为 course
ALTER TABLE stu_course RENAME AS course;

3. 在课程表中添加字段学时(time),类型为整数,长度为3,非空 

ALTER TABLE course ADD time INT(3) NOT NULL COMMENT '学时';

4. 修改课程表学分类型为浮点数,小数点后面保留1位有效数字,长度为3,非空 

ALTER TABLE course MODIFY score DOUBLE(3,1) NOT NULL COMMENT '学分';

 5. 删除课程表

DROP TABLE IF EXISTS course;

6. 删除数据库exercise 

DROP DATABASE IF EXISTS exercise;

 DML数据操作语言

INSERT

-- 需要注意,VALUES后的字段值必须与表名后的字段名一一对应
INSERT INTO 表名(字段名1, 字段名2, ..., 字段名n) VALUES(字段值1, 字段值2, ..., 字段值
n);
-- 需要注意,VALUES后的字段值必须与创建表时的字段顺序保持一一对应
INSERT INTO 表名 VALUES(字段值1, 字段值2, ..., 字段值n);
-- 一次性插入多条数据
INSERT INTO 表名(字段名1, 字段名2, ..., 字段名n) VALUES(字段值1, 字段值2, ..., 字段值
n),(字段值1, 字段值2, ..., 字段值n), ... , (字段值1, 字段值2, ..., 字段值n);
INSERT INTO 表名 VALUES(字段值1, 字段值2, ..., 字段值n), (字段值1, 字段值2, ..., 字段值
n), ..., (字段值1, 字段值2, ..., 字段值n);
示例:向课程表中插入数据
INSERT INTO course(`number`, name, score, `time`) VALUES (1, 'Java基础', 4, 40);
INSERT INTO course VALUES (2, '数据库', 3, 20);
INSERT INTO course(`number`, score, name, `time`) VALUES (3, 5, 'Jsp', 40);
INSERT INTO course(`number`, name, score, `time`) VALUES (4, 'Spring', 4, 5),(5,
'Spring Mvc', 2, 5);
INSERT INTO course VALUES (6, 'SSM', 2, 3), (7, 'Spring Boot', 2, 2);

UPDATA

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2, ..., 字段名n=字段值n] [WHERE 修改条件] 

示例:将数据库的学分更改为4,学时更改为15
UPDATA course SET score=4,time=15 WHERE name='数据库';

DELETE

DELETE FROM 表名 [WHERE 删除条件]; 

示例:删除课程表中课程编号为1的数据
DETELE FROM course WHERE 'number'=1;

TRUNCATE

-- 清空表中数据
TRUNCATE [TABLE] 表名;

示例:清空课程表的数据 

TRUNCATE course;

DELETE和TRUNCATE区别

DELETE 语句根据条件删除表中数据,而 TRUNCATE 语句则是将表中数据全部清空;如果 DELETE
句要删除表中所有数据,那么在效率上要低于 TRUNCATE 语句。
如果表中有自增长列, TRUNCATE 语句会重置自增长的计数器,但 DELETE 语句不会。
TRUNCATE 语句执行后,数据无法恢复,而 DELETE 语句执行后,可以使用事务回滚进行恢复。

DQL数据查询语言

 


原文地址:https://blog.csdn.net/creator_Li/article/details/145212723

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!