50个查询系列-建表和插入数据

为了练习sql语句,需要先建表:

需要建立如下的表格:

tabstudent和tblteacher都是普通的表,但是talscore和tablcourse都要有主外键的关系。各自的建表语句如下:

tblteacher表:

CREATE TABLE `tblteacher` (
  `TeaId` VARCHAR(3) NOT NULL,
  `TeaName` VARCHAR(20) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY  (`TeaId`)
) ENGINE=INNODB DEFAULT CHARSET=latin1

tblstudent表:

CREATE TABLE `tblstudent` (
  `StuId` VARCHAR(5) NOT NULL,
  `StuName` VARCHAR(10) CHARACTER SET utf8 NOT NULL,
  `StuAge` INT(11) DEFAULT NULL,
  `StuSex` CHAR(1) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY  (`StuId`)
) ENGINE=INNODB DEFAULT CHARSET=latin1

tablcourse表:

CREATE TABLE `tablcourse` (
  `CourseId` VARCHAR(4) NOT NULL,
  `CourseName` VARCHAR(10) CHARACTER SET utf8 NOT NULL,
  `TeaId` VARCHAR(3) NOT NULL,
  PRIMARY KEY  (`CourseId`),
  KEY `FK_tablcourse` (`TeaId`),
  CONSTRAINT `FK_tablcourse` FOREIGN KEY (`TeaId`) REFERENCES `tblteacher` (`TeaId`)
) ENGINE=INNODB DEFAULT CHARSET=latin1

talscore表:

CREATE TABLE `talscore` (
  `StuId` VARCHAR(5) NOT NULL,
  `CourseId` VARCHAR(4) NOT NULL,
  `Score` FLOAT DEFAULT NULL,
  KEY `FK_Courseid` (`CourseId`),
  KEY `FK_Stuid` (`StuId`),
  CONSTRAINT `FK_Courseid` FOREIGN KEY (`CourseId`) REFERENCES `tablcourse` (`CourseId`),
  CONSTRAINT `FK_Stuid` FOREIGN KEY (`StuId`) REFERENCES `tblstudent` (`StuId`)
) ENGINE=INNODB DEFAULT CHARSET=latin1

当然我们用得是视图化的方式建表(上面的建表语句都是视图化建表后自动生成的):

步骤:

单击Tables的右键,建立表格。

尤其要注意的是我们为了中文不乱码(打中文时会出现?这种情况)。在Collation的选择utf-8.

每张表格如下:

建立好表格之后,我们插入数据:

/*********************************  建库建表建约束,插入测试数据  ******************************************/

Use master

Go

if db_id(‘MySchool‘) is not null

Drop Database MySchool

Create Database MySchool

go

Use MySchool

go

create table tblStudent

(

StuId varchar(5) primary key,

StuName nvarchar(10) not null,

StuAge int,

StuSex nchar(1) not null

)

create table tblTeacher

(

TeaId varchar(3) primary key,

TeaName varchar(10) not null

)

create table tblCourse

(

CourseId varchar(3) primary key,

CourseName nvarchar(20) not null,

TeaId varchar(3) not null foreign key references tblTeacher(teaId)

)

create table tblScore

(

StuId varchar(5) not null foreign key references tblStudent(stuId),

CourseId varchar(3) not null foreign key references tblCourse(CourseId),

Score float

)

----------------------------------表结构----------------------------------------------------

--学生表tblStudent(编号StuId、姓名Stuname、年龄Stuage、性别Stusex)

--课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId)

--成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score)

--教师表tblTeacher(教师编号TeaId、姓名TeaName)

--------------------------------插入数据-------------------------------------------------

insert into tblStudent

select ‘1000‘,‘张无忌‘,18,‘男‘ union

select ‘1001‘,‘周芷若‘,19,‘女‘ union

select ‘1002‘,‘杨过‘,19,‘男‘ union

select ‘1003‘,‘赵敏‘,18,‘女‘ union

select ‘1004‘,‘小龙女‘,17,‘女‘ union

select ‘1005‘,‘张三丰‘,18,‘男‘ union

select ‘1006‘,‘令狐冲‘,19,‘男‘ union

select ‘1007‘,‘任盈盈‘,20,‘女‘ union

select ‘1008‘,‘岳灵珊‘,19,‘女‘ union

select ‘1009‘,‘韦小宝‘,18,‘男‘ union

select ‘1010‘,‘康敏‘,17,‘女‘ union

select ‘1011‘,‘萧峰‘,19,‘男‘ union

select ‘1012‘,‘黄蓉‘,18,‘女‘ union

select ‘1013‘,‘郭靖‘,19,‘男‘ union

select ‘1014‘,‘周伯通‘,19,‘男‘ union

select ‘1015‘,‘瑛姑‘,20,‘女‘ union

select ‘1016‘,‘李秋水‘,21,‘女‘ union

select ‘1017‘,‘黄药师‘,18,‘男‘ union

select ‘1018‘,‘李莫愁‘,18,‘女‘ union

select ‘1019‘,‘冯默风‘,17,‘男‘ union

select ‘1020‘,‘王重阳‘,17,‘男‘ union

select ‘1021‘,‘郭襄‘,18,‘女‘

go

insert  into tblTeacher

select ‘001‘,‘姚明‘ union

select ‘002‘,‘叶平‘ union

select ‘003‘,‘叶开‘ union

select ‘004‘,‘孟星魂‘ union

select ‘005‘,‘独孤求败‘ union

select ‘006‘,‘裘千仞‘ union

select ‘007‘,‘裘千尺‘ union

select ‘008‘,‘赵志敬‘ union

select ‘009‘,‘阿紫‘ union

select ‘010‘,‘郭芙蓉‘ union

select ‘011‘,‘佟湘玉‘ union

select ‘012‘,‘白展堂‘ union

select ‘013‘,‘吕轻侯‘ union

select ‘014‘,‘李大嘴‘ union

select ‘015‘,‘花无缺‘ union

select ‘016‘,‘金不换‘ union

select ‘017‘,‘乔丹‘

go

insert into tblCourse

select ‘001‘,‘企业管理‘,‘002‘ union

select ‘002‘,‘马克思‘,‘008‘ union

select ‘003‘,‘UML‘,‘006‘ union

select ‘004‘,‘数据库‘,‘007‘ union

select ‘005‘,‘逻辑电路‘,‘006‘ union

select ‘006‘,‘英语‘,‘003‘ union

select ‘007‘,‘电子电路‘,‘005‘ union

select ‘008‘,‘思想概论‘,‘004‘ union

select ‘009‘,‘西方哲学史‘,‘012‘ union

select ‘010‘,‘线性代数‘,‘017‘ union

select ‘011‘,‘计算机基础‘,‘013‘ union

select ‘012‘,‘AUTO CAD制图‘,‘015‘ union

select ‘013‘,‘平面设计‘,‘011‘ union

select ‘014‘,‘Flash动漫‘,‘001‘ union

select ‘015‘,‘Java开发‘,‘009‘ union

select ‘016‘,‘C#基础‘,‘002‘ union

select ‘017‘,‘Oracl数据库原理‘,‘010‘

go

insert into tblScore

select ‘1001‘,‘003‘,90 union

select ‘1001‘,‘002‘,87 union

select ‘1001‘,‘001‘,96 union

select ‘1001‘,‘010‘,85 union

select ‘1002‘,‘003‘,70 union

select ‘1002‘,‘002‘,87 union

select ‘1002‘,‘001‘,42 union

select ‘1002‘,‘010‘,65 union

select ‘1003‘,‘006‘,78 union

select ‘1003‘,‘003‘,70 union

select ‘1003‘,‘005‘,70 union

select ‘1003‘,‘001‘,32 union

select ‘1003‘,‘010‘,85 union

select ‘1003‘,‘011‘,21 union

select ‘1004‘,‘007‘,90 union

select ‘1004‘,‘002‘,87 union

select ‘1005‘,‘001‘,23 union

select ‘1006‘,‘015‘,85 union

select ‘1006‘,‘006‘,46 union

select ‘1006‘,‘003‘,59 union

select ‘1006‘,‘004‘,70 union

select ‘1006‘,‘001‘,99 union

select ‘1007‘,‘011‘,85 union

select ‘1007‘,‘006‘,84 union

select ‘1007‘,‘003‘,72 union

select ‘1007‘,‘002‘,87 union

select ‘1008‘,‘001‘,94 union

select ‘1008‘,‘012‘,85 union

select ‘1008‘,‘006‘,32 union

select ‘1009‘,‘003‘,90 union

select ‘1009‘,‘002‘,82 union

select ‘1009‘,‘001‘,96 union

select ‘1009‘,‘010‘,82 union

select ‘1009‘,‘008‘,92 union

select ‘1010‘,‘003‘,90 union

select ‘1010‘,‘002‘,87 union

select ‘1010‘,‘001‘,96 union

select ‘1011‘,‘009‘,24 union

select ‘1011‘,‘009‘,25 union

select ‘1012‘,‘003‘,30 union

select ‘1013‘,‘002‘,37 union

select ‘1013‘,‘001‘,16 union

select ‘1013‘,‘007‘,55 union

select ‘1013‘,‘006‘,42 union

select ‘1013‘,‘012‘,34 union

select ‘1000‘,‘004‘,16 union

select ‘1002‘,‘004‘,55 union

select ‘1004‘,‘004‘,42 union

select ‘1008‘,‘004‘,34 union

select ‘1013‘,‘016‘,86 union

select ‘1013‘,‘016‘,44 union

select ‘1000‘,‘014‘,75 union

select ‘1002‘,‘016‘,100 union

select ‘1004‘,‘001‘,83 union

select ‘1008‘,‘013‘,97

go

到这里我们的表格和插入数据已经完成了。

时间: 2024-10-12 03:30:53

50个查询系列-建表和插入数据的相关文章

Hive通过查询语句向表中插入数据过程中发现的坑

前言 最近在学习使用Hive(版本0.13.1)的过程中,发现了一些坑,它们或许是Hive提倡的比关系数据库更加自由的体现(同时引来一些问题),或许是一些bug.总而言之,这些都需要使用Hive的开发人员额外注意.本文旨在列举我发现的2个通过查询语句向表中插入数据过程中的问题,希望大家注意. 数据准备 为了验证接下来出现的问题,需要先准备两张表employees和staged_employees,并准备好测试数据.首先使用以下语句创建表employees: create table employ

(笔记)Mysql实例:建库建表并插入数据2

drop database if exists school;  // 如果存在SCHOOL则删除create database school;  // 建立库SCHOOLuse school;  // 打开库SCHOOLcreate table teacher(  // 建立表TEACHER    id int(3) auto_increment not null primary key,    name char(10) not null,    address varchar(50) de

(笔记)Mysql实例:建库建表并插入数据1

drop database if exists school;  // 如果存在school则删除create database school;  // 建立库schooluse school;  // 打开库SCHOOLcreate table teacher(  // 建立表TEACHER    id int(3) auto_increment not null primary key,    name char(10) not null,    address varchar(50) de

SQL多个主键的表,插入数据有重复时,查询数据的重复值?

SQL多个主键的表,插入数据有重复时,会提示违反主键约束不能插入的错误.那么,如何找到插入数据的重复值? 解决方法:使用group by 假设有个表#a,有saleid,vendorid,comid,price,saleprice,quantity等字段. 主键是:saleid,vendorid,comid三个.假设插入#a的数据源可能会有重复的. 即:saleid,vendorid,comid三个字段都一样的字段,那么插入#a的时候会报主键冲突,违反主键约束. 如果想找出#a表中插入重复的值可

4.SQL--创建成绩表和向表内插入数据

--创建成绩表,并向表内插入数据create table SC(Scid varchar(10),Cid varchar(10),score decimal(18,1))--向表内插入数据insert into SC values('01' , '01' , 80)insert into SC values('01' , '02' , 90)insert into SC values('01' , '03' , 99)insert into SC values('02' , '01' , 70)

2.SQL--创建课程表和向表内插入数据

--创建课程表,并向表内插入数据--新建课程表,Tid为教师编号create table Course(Cid varchar(10),Cname nvarchar(10),Tid varchar(10))--向表内插入数据insert into Course values('01' , '语文' , '02')insert into Course values('02' , '数学' , '01')insert into Course values('03' , '英语' , '03') 原文

3.SQL--创建教师表和向表内插入数据

--创建教师表,并向表内插入数据create table Teacher(Tid varchar(10),Tname nvarchar(10))--向表内插入数据insert into Teacher values('01' , '韩寒')insert into Teacher values('02' , '李玉')insert into Teacher values('03' , '王非') 原文地址:https://blog.51cto.com/12679593/2395879

MySql存储过程动态创建表并插入数据

最近做的一个项目,数据库用的是MySql,对于MySql不是很熟练,只是会简单的应用,毕竟简单的sql语句还是相通的,但是随着项目的深入复杂的sql语句开始慢慢多起来,其中一个小难点就是要根据当天的日期动态创建表,并且向其中插入数据. 具体逻辑可以理解为,先去数据库查询有没有当天的记录表,如果没有则创建表,然后执行当天的日志写入. Mysql的可视化工具我们用的是navicat,相对来说还是比较好用,当然没有sqlserver 那么人性化(很多快捷键不支持,操作累赘).下面我就来说一说用navi

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform)让用户方便的操作数据库中的数据. 什么是ADO.NET 是一组库类,System.Data. Ado.net组成 Connection:用来连接数据库 Command:用来执行SQL语句 DataReader:只读.只进的结果集,一条一条读取数据(SteamReader.XmlReader) Da