MySQL数据库基础三 数据库基本语法(DML与DDL)(创增删插切)

数据库(命令行操作DDL)

(1)创建数据库
-- 1、创建数据库
CREATE DATABASE IF NOT EXISTS change818; -- 建立change818数据库(IF NOT EXISTS可以不写,但是数据库名不能重复)
-- 2、创建数据库并指定字符集
CREATE DATABASE IF NOT EXISTS change818 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
-- 3、查看所有数据库名称
SHOW DATABASES;
-- 4、切换到change818数据库
USE change818;
-- 5、删除数据库
DROP DATABASE IF EXISTS change818; -- 删除change818的数据库(IF EXISTS可以不写,但是数据库名必须存在)

 

数据表设计

名称数据库表
学生表 student
老师表 teacher
课程表 course
成绩表 score

 

(1)学生表
  • 详细设计
字段类型字段名允许空值备注
id int(11) ID 主键、自动增长
stu_no varchar(10) 学生编号  
stu_name varchar(20) 学生姓名  
age tinyint 年龄  
sex char(2) 性别  
create_date datetime 创建日期  

 

创建学生表:

-- 1、创建数据库
CREATE DATABASE IF NOT EXISTS change818; -- 建立change818数据库(IF NOT EXISTS可以不写,但是数据库名不能重复)
-- 2、创建数据库并指定字符集 CREATE DATABASE IF NOT EXISTS change818 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 3、查看所有数据库名称 SHOW DATABASES;
-- 4、切换到change818数据库 USE change818;
-- 5、删除数据库 DROP DATABASE IF EXISTS change818; -- 删除change818的数据库(IF EXISTS可以不写,但是数据库名必须存在)

知识点解析:

1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
2、设置主键、设置非空约束
3、用到基本类型[int tinyint char varchar datetime]
添加列(ALTER TABLE 表名 ADD(列字段 varchar(100));)
语法: ALTER TABLE 表名 ADD(列字段 varchar(100));
ALTER TABLE student ADD(update_date datetime); 
修改列(ALTER TABLE 表名 MODIFY 列字段 CHAR(2);):
语法: ALTER TABLE 表名 MODIFY 列字段 CHAR(2);
ALTER TABLE student MODIFY update_date date;

修改列名(ALTER TABLE 表名 CHANGE 原列字段名 新列字段名 CHAR(2)):

语法: ALTER TABLE 表名 CHANGE 原列字段名 新列字段名 CHAR(2);
ALTER TABLE student change update_date update_date datetime;

删除列(ALTER TABLE 表名 DROP 列名;):

语法: ALTER TABLE 表名 DROP 列名;
ALTER TABLE student DROP update_date;

修改表名称(ALTER TABLE 原表名 RENAME TO 新表名;):

语法: ALTER TABLE 原表名 RENAME TO 新表名;
ALTER TABLE student RENAME TO student1; -- 备注:记得要修改回来,后面会用到student表

数据库表操作(DML)

插入数据(INSERT INTO)

INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_01', '刘一', '22', '', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_02', '马二', '23', '', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_03', '张三', '25', '', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_04', '李四', '21', '', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_05', '王五', '22', '', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_06', '赵六', '21', '', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_07', '朱七', '22', '', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_08', '谢八', '23', '', '2023-08-22 00:00:00');

修改数据(UPDATE SET)

UPDATE student SET age=23 WHERE stu_no='stu_01'; -- 修改学号为stu_1的年龄
UPDATE student SET age=23,sex='' WHERE stu_no='stu_02';  -- 修改学号为stu_2的年龄和性别
UPDATE student SET stu_name ='张三三',age=23 WHERE stu_no='stu_03'; -- 修改学号为stu_3的姓名

删除数据(DELETE FROM)

DELETE FROM student WHERE stu_no='stu_08'; -- 删除学号为stu_8的学生,WHERE下一课讲解,如果这里不用WHERE,会删除学生表所有数据
(2)老师表
  • 详细设计
类型字段名允许空值主键
id int(11) ID 主键、自动增长
tea_no varchar(10) 老师编号  
tea_name varchar(20) 老师姓名  
age int(3) 年龄  
sex char(2) 性别  
create_date datetime 创建时间  

创建老师表:
CREATE TABLE teacher (
  id int(11) NOT NULL AUTO_INCREMENT, -- 老师编号,自动增长
  tea_no varchar(10) NOT NULL, -- 老师编号
  tea_name varchar(20) NOT NULL, -- 老师姓名
  age int(3) DEFAULT NULL, -- 年龄
  sex char(2) DEFAULT NULL, -- 性别
  create_date datetime DEFAULT NULL, -- 创建日期
  PRIMARY KEY (id), -- 设置主键
  UNIQUE KEY tea_no (tea_no) -- 唯一约束
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

知识点解析:

1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
2、设置主键、设置非空约束
3、用到基本类型[int char varchar datetime]

数据初始化

INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_01', '刘老师', 35, '', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_02', '关老师', 38, '', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_03', '张老师', 41, '', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_04', '赵老师', 42, '', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_05', '黄老师', 43, '', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_06', '曹老师', 40, '', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_07', '王老师', 25, '', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_08', '孙老师', 24, '', '2100-08-07 21:18:14');
(3)课程表
  • 详细设计
类型字段名允许空值备注
id int(11) ID 主键、自动增长
course_no varchar(10) 课程编号  
course_name varchar(20) 课程名称  
tea_no varchar(10) 老师编号  
create_date datetime 创建时间  
  • 创建表

    CREATE TABLE course (
      id int(11) NOT NULL AUTO_INCREMENT, -- ID,自动增长
      course_no varchar(10) NOT NULL, -- 课程编号
      course_name varchar(20) DEFAULT NULL, -- 课程名称
      tea_no varchar(10) DEFAULT NULL, -- 老师编号
      create_date datetime DEFAULT NULL, -- 创建日期
      PRIMARY KEY (id), -- 主键
      UNIQUE KEY course_no (course_no)-- 唯一约束
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 知识点解析
1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
2、设置主键、设置非空约束
3、用到基本类型[int varchar datetime]
  • 数据初始化
    INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_01', '语文', 'tea_01', '2100-08-07 21:32:06');
    INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_02', '数学', 'tea_02', '2100-08-07 21:32:06');
    INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_03', '英语', 'tea_03', '2100-08-07 21:32:06');
    4)成绩表
    • 详细设计
    类型字段名允许空值备注
    id int(11) ID 主键,自动增长
    course_no varchar(10) 课程编号  
    stu_no varchar(20) 学生编号  
    stu_score double(4,1) 学生成绩 默认0.0
    create_date datetime 创建时间  
    • 创建表

      CREATE TABLE score (
        id int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
        stu_no varchar(10) NOT NULL COMMENT '学生学号',
        course_no varchar(10) NOT NULL COMMENT '课程编号',
        stu_score double(4,1) DEFAULT '0.0' COMMENT '学生成绩',
        create_date datetime DEFAULT NULL COMMENT '创建日期',
        PRIMARY KEY (id)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

      知识点解析

      1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
      2、设置主键、设置非空约束
      3、用到基本类型[int varchar datetime]

      数据初始化

      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_01', 100.0, '2100-08-07 21:45:23');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_02', 120.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_03', 115.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_01', 0.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_02', 145.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_03', 149.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_03', 'cou_01', 85.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_03', 'cou_02', 58.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_04', 'cou_01', 32.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_01', 100.0, '2100-08-07 21:45:23');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_02', 120.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_03', 115.0, '2100-08-07 21:45:30');

       

 
 
posted @ 2023-08-22 16:50  乐瓜乐虫  阅读(5)  评论(0编辑  收藏  举报