Mysql学习笔记
连接数据库
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 COLLATEGBK_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;
数据表操作
数据表类型
创建数据表
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 新表名;
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 字段名 新字段名 列类型(长度) [修饰属性] [键/索引] [注释];
ALTER TABLE stu MODIFY sex VARCHAR(2) DEFAULT '男' COMMENT '性别:男,女,其他';
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;
练习
-- 如果数据库不存在 就创建数据库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 '课程表';
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 修改条件]
UPDATA course SET score=4,time=15 WHERE name='数据库';
DELETE
DELETE FROM 表名 [WHERE 删除条件];
DETELE FROM course WHERE 'number'=1;
TRUNCATE
-- 清空表中数据TRUNCATE [TABLE] 表名;
示例:清空课程表的数据
TRUNCATE course;
DELETE和TRUNCATE区别
DQL数据查询语言
原文地址:https://blog.csdn.net/creator_Li/article/details/145212723
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!