博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql_study_1
阅读量:5070 次
发布时间:2019-06-12

本文共 3442 字,大约阅读时间需要 11 分钟。

创建数据库 创建表             

数据类型

 

插入数据的几种方法

约束

代码

CREATE DATABASE mysql_shiyan;use mysql_shiyan;CREATE TABLE department(  dpt_name   CHAR(20) NOT NULL,  people_num INT(10) DEFAULT '10',  CONSTRAINT dpt_pk PRIMARY KEY (dpt_name) );CREATE TABLE employee(  id      INT(10) PRIMARY KEY,  name    CHAR(20),  age     INT(10),  salary  INT(10) NOT NULL,  phone   INT(12) NOT NULL,  in_dpt  CHAR(20) NOT NULL,  UNIQUE  (phone),  CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name) ); CREATE TABLE project(  proj_num   INT(10) NOT NULL,  proj_name  CHAR(20) NOT NULL,  start_date DATE NOT NULL,  end_date   DATE DEFAULT '2015-04-01',  of_dpt     CHAR(20) REFERENCES department(dpt_name),  CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name) );

 

主键

主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要,主键不能有重复记录且不能为空。

在 MySQL-03-01.sql 中,这里有主键:

07

也可以这样定义主键:

08-

还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识,比如:

09-

 

默认值

默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。

默认值常用于一些可有可无的字段,比如用户的个性签名,如果用户没有设置,系统给他应该设定一个默认的文本,比如空文本或 ‘这个人太懒了,没有留下任何信息’

在 MySQL-03-01.sql 中,这段代码包含了 DEFAULT 约束:

10

DEFAULT 约束只会在使用 INSERT 语句(上一实验介绍过)时体现出来, INSERT 语句中,如果被 DEFAULT 约束的位置没有值,那么这个位置将会被 DEFAULT 的值填充,如语句:

# 正常插入数据INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);#插入新的数据,people_num 为空,使用默认值INSERT INTO department(dpt_name) VALUES('dpt2');

 

输入命令 SELECT * FROM department;,可见表中第二行的people_num 被 DEFAULT 的值 (10) 填充:

01

约束:

唯一约束 (UNIQUE) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。

在 MySQL-03-01.sql 中,也有 UNIQUE 约束:

11

当 INSERT 语句新插入的数据和已有数据重复的时候,如果有 UNIQUE 约束,则 INSERT 失败,比如:

INSERT INTO employee VALUES(01,'Tom',25,3000,110110,'dpt1'); INSERT INTO employee VALUES(02,'Jack',30,3500,110110,'dpt2');

结果如图:

02

外键:

外键 (FOREIGN KEY) 既能确保数据完整性,也能表现表之间的关系。

比如,现在有用户表和文章表,给文章表中添加一个指向用户 id 的外键,表示这篇文章所属的用户 id,外键将确保这个外键指向的记录是存在的,如果你尝试删除一个用户,而这个用户还有文章存在于数据库中,那么操作将无法完成并报错。因为你删除了该用户过后,他发布的文章都没有所属用户了,而这样的情况是不被允许的。同理,你在创建一篇文章的时候也不能为它指定一个不存在的用户 id。

一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。

12-

在 INSERT 时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列 (department 表的 dpt_name) 中没有 dpt3,则 INSERT 失败:

INSERT INTO employee VALUES(02,'Jack',30,3500,114114,'dpt3');

可见之后将 dpt3 改为 dpt2(department 表中有 dpt2),则插入成功:

03

非空约束

非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。

13

 

搭建一个简易的成绩管理系统的数据库

介绍

现需要构建一个简易的成绩管理系统的数据库,来记录几门课程的学生成绩。数据库中有三张表分别用于记录学生信息、课程信息和成绩信息。

数据表结构如下:

学生表(student):学生 id 、学生姓名和性别

此处输入图片的描述

课程表:课程 id 和课程名

此处输入图片的描述

成绩表:成绩 id 、学生 id 、课程 id 和分数

此处输入图片的描述

服务器中的 MySQL 还没有启动,请注意 MySQL 的 root 账户默认密码为空。

$ sudo service mysql start$ mysql -u rootmysql> CREATE DATABASE gradesystem;mysql> use gradesystemmysql> CREATE TABLE student(    -> sid int NOT NULL AUTO_INCREMENT,    -> sname varchar(20) NOT NULL,    -> gender varchar(10) NOT NULL,    -> PRIMARY KEY(sid)    -> );mysql> CREATE TABLE course(    -> cid int NOT NULL AUTO_INCREMENT,    -> cname varchar(20) NOT NULL,    -> PRIMARY KEY(cid)    -> );mysql> CREATE TABLE mark(    -> mid int NOT NULL AUTO_INCREMENT,    -> sid int NOT NULL,    -> cid int NOT NULL,    -> score int NOT NULL,    -> PRIMARY KEY(mid),    -> FOREIGN KEY(sid) REFERENCES student(sid),    -> FOREIGN KEY(cid) REFERENCES course(cid)    -> );mysql> INSERT INTO student VALUES(1,'Tom','male'),(2,'Jack','male'),(3,'Rose','female');mysql> INSERT INTO course VALUES(1,'math'),(2,'physics'),(3,'chemistry');mysql> INSERT INTO mark VALUES(1,1,1,80),(2,2,1,85),(3,3,1,90),(4,1,2,60),(5,2,2,90),(6,3,2,75),(7,1,3,95),(8,2,3,75),(9,3,3,85);

 

转载于:https://www.cnblogs.com/Galesaur-wcy/p/10768388.html

你可能感兴趣的文章
plsql连接不上oracle
查看>>
几种sort算法的Java实现
查看>>
正则表达式 环视 逗号分隔数字
查看>>
C++课程设计类作业4
查看>>
云计算对传统软件工程的影响
查看>>
Markdown几个简单的例子
查看>>
Mysql常用的优化技巧
查看>>
Dlib安装遇到的坑
查看>>
汇编变量类型
查看>>
【阶段性成果3-1】Python编写购物车程序优化-商家入口
查看>>
【转】monkey实战--测试步骤、常用参数、常规monkey命令
查看>>
北软2018年秋季学年软件工程课程助教学期总结
查看>>
5000亿美元市值的腾讯和阿里意味着什么
查看>>
JQuery中的AJAX参数详细介绍
查看>>
STS An internal error occurred during: "Initializing Java Tooling"
查看>>
AnyProxy做App网络流量测试
查看>>
eclipse中安装maven,配置本地仓库和镜像
查看>>
java开发150个建议
查看>>
iOS iBeacon 使用
查看>>
Obtain Diesel engine Designer watches can be bought in the many most up-to-date styles and designs
查看>>