首页 > 数据库 >MySQL学习笔记-SQL实践1

MySQL学习笔记-SQL实践1

时间:2023-03-11 16:56:41浏览次数:49  
标签:comment insert into SQL 笔记 values Student MySQL null

SQL实践1

借着学校的数据库实验,来对之前学习的SQL语言进行实践和总结。

实验环境:

  • macOS 13.2 (22D49)
  • mysql Ver 8.0.32 for macos13.0 on arm64 (Homebrew)
  • DataGrip 2022.3.3

一. DataGrip连接本地MySQL

由于我之前都是用vs code的插件连接MySQL的(可能是我不会用,我感觉不太好使),所以这也是我第一次使用DataGrip。

1. 新建项目

image-20230311142957388

首先先新建一个项目,并给项目命名。

2. 连接MySQL

image-20230311143120308

image-20230311143448592

在此输入连接的信息。可以看到,我貌似缺少了驱动,先去装个驱动。

image-20230311143613188

装完驱动后测试连接成功后应用就行了。(测试前别忘了把数据库打开)

3. 配置所有架构

刚连接上的时候,我发现资源管理器中并找不到我之前创建的数据库,后发现需要配置所有架构才可以。

image-20230311144251052

4. 编写SQL语句

  • 先新建一个查询控制台

image-20230311145015315

  • 然后编写SQL语句并点那个绿色的小三角就行了

image-20230311145142944

  • 以后需要再打开之前编写的SQL语句在这里打开

image-20230311145451746

一. 创建表

  • 表结构
    image-20230228154324945

1. 创建学生选课关系数据库中的STUDENT表

create table Student
(
    SNO   varchar(9)  not null comment '学号',
    SNAME varchar(5)  null comment '姓名',
    SSEX  varchar(1)  null comment '性别',
    SAGE  int         null comment '年龄',
    SDEPT varchar(10) null comment '专业',
    constraint Student_NO
        primary key (SNO), # 设置学号为主键
    constraint CHECK_AGE
        check (SAGE >= 0 and SAGE <= 120), # 限制年龄为0-120岁
    constraint CHECK_SEX
        check (SSEX = '男' or SSEX = '女') # 限制性别为男或女
)
    comment '学生表';
  • 直接用GUI创建会方便很多

image-20230311155237456

2. 创建学生选课关系数据库中的COURSE表

create table COURSE
(
    CNO     varchar(3)  not null comment '编号',
    CNAME   varchar(10) not null comment '课程名',
    CPNO    int         null comment '前置课程号',
    CCREDIT int         null comment '学分',
    constraint COURSE_NO
        primary key (CNO) # 设置编号为主键
)
    comment '课程表';

3. 创建学生选课关系数据库中的SC表

create table SC
(
    SNO   varchar(9) not null comment '选修学生学号',
    CNO   varchar(3) not null comment '选修课程号',
    GRADE int        null comment '成绩',
    constraint SC___CNO
        foreign key (CNO) references COURSE (CNO), # 链接到课程表的外键
    constraint SC___SNO
        foreign key (SNO) references Student (SNO) # 链接到学生表的外键
)
    comment '选修表';

二. 添加数据

  • 以下为学生表的初始数据
insert into Student(sname,ssex,sno, sage, sdept) values('李勇','男','200215121',20,'CS');
insert into Student(sname,ssex,sno, sage, sdept) values('刘晨','女','200215122',19,'CS');
insert into Student(sname,ssex,sno, sage, sdept) values('王敏','女','200215123',18,'MA');
insert into Student(sname,ssex,sno, sage, sdept) values('张立','男','200215125',19,'IS');

image-20230311160833499

  • 以下为课程表的初始数据
insert into course(cno,cname,cpno,ccredit) values('6','数据处理',null,2);
insert into course(cno,cname,cpno,ccredit) values('2','数学',null,2);
insert into course(cno,cname,cpno,ccredit) values('7','PASCAL语言','6',4);
insert into course(cno,cname,cpno,ccredit) values('5','数据结构','7',4);
insert into course(cno,cname,cpno,ccredit) values('1','数据库','5',4);
insert into course(cno,cname,cpno,ccredit) values('3','信息系统','1',4);
insert into course(cno,cname,cpno,ccredit) values('4','操作系统','6',3);

image-20230311160846908

  • 以下为选修表的初始数据
insert into sc(sno,cno,grade) values('200215121','1',92);
insert into sc(sno,cno,grade) values('200215121','2',85);
insert into sc(sno,cno,grade) values('200215121','3',88);
insert into sc(sno,cno,grade) values('200215122','2',90);
insert into sc(sno,cno,grade) values('200215122','3',80);
commit; # Google上说这是事物部分知识点,还没学到那

image-20230311160857941

三. 修改数据

1. 修改Student表结构,为Student表格添加一个“入学时间”属性,属性名为Senrollment,各元组在属性Senrollment的值是多少?

alter table Student add Senrollment date comment '入学时间';
  • 值是null

image-20230311162356778

2. 修改Student表结构,把Ssex列的宽度设置为6个字节

alter table Student modify SSEX varchar(6);

在此出现了两个问题:

  1. 注释没掉了

image-20230311162647500

  1. 之前设置的检查乱码了

image-20230311162926940

  • 在修改表中字段时,是覆盖的,之前设置的约束和注释什么的都要重新设置。

3. 修改Student表结构,删除Senrollment列(注:删除SYS模式下表的列将被拒绝)

alter table Student drop Senrollment;

image-20230311163638760

标签:comment,insert,into,SQL,笔记,values,Student,MySQL,null
From: https://www.cnblogs.com/yellowsea/p/17206397.html

相关文章

  • 构建之法 读书笔记(1)
    邹欣老师在这本构建之法中形象生动的描述了软件工程人员在工作中的点点滴滴。他提出软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。确......
  • PLSQL官方下载、安装和使用完全指南
    1、PLSQL介绍我们常说的plsql指的是plsqldeveloper这个oracle数据库客户端连接工具,这个工具以其方便和强大被广大开发者喜爱。这个工具是由allroundautomations公司开发,......
  • php连接docker运行的mysql,显示(HY000/2002): Connection refused的解决办法
    php连接docker运行的mysql,显示(HY000/2002):Connectionrefused的解决办法-斌哥tobin-博客园(cnblogs.com)php要连接docker中运行的mysql是不能用localhost,127.......
  • 对象、数组、字符串的一些方法(笔记)
    对象字符串方法数组方法 ......
  • SQL语句
    1.表结构//创建表creattabletb_emp1( idint(11);namevarchar(25);deptldint(11);salaryfloat;);//修改表结构altertable<表名>[修改选项];......
  • SQL约束
    1、约束1.1约束在SQL中,约束是规定表中的数据规则。若存在违反约束的行为,行为就会被阻止。它能帮助管理员更好地管理数据库,并且确保数据库中数据的正确性和有效性。例......
  • sqlite 常见命令及操作
    sqlite系统命令sqlitetest.db                         创建test.db文件并进入sqlite3sqlite>.database  ......
  • 数据结构学习笔记-day2
    Day2一、算法和算法分析算法特性:有穷性、确定性、可行性、输入、输出。2.算法的时间复杂度:(影响算法时间代价的最主要因素是问题规模)               ......
  • sqlite3 命令行
    进入sqlite3命令行模式安装好sqlite3之后,在linux命令行中输入sqlite3,进入sqlite3的命令行模式。root@172:/#sqlite3SQLiteversion3.23.12018-04-1017......
  • 10 Best MySQL Client GUI Interface – Free Download
    10BestMySQLClientGUIInterface–FreeDownloadThoseMySQLclientGUIinterfaceiseasysoftwareforwindowstouseforcontrollingdatabaseiswarehoused......