2018-08-07(17)Mysql基础

Mysql数据库

如何找到my.ini(mysql 的配置文件)?

显示隐藏文件夹,在programeData中。

mysql 数据库管理系统

数据库关系

用来反应实体内部的联系和实体之间的联系,实体内部的联系通常指组成实体的个属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。

一对一,一对多,多对多。(是指数据表之间的关系)

设置主键时尽量选择没有意义的列作为主键。

主表的外键是唯一的。

所以说有重复外键的表是从表。

三大关系完整性

  • 实体完整性
    具有唯一的标识列或组合标识列(主键)
    主键(primary key)不能为空,但是唯一(unique)可以为空。
  • 引用完整性(参照完整性)
    具有对应的主键和外键,每个外键都有其对应的主键。
  • 域完整性(用户自定义完整性)
    • 域完整性和域约束(例如省份名称的约束,不能填入不存在的省份)
    • 类型约束(在int类型中不能填入char类型)
    • 范围约束(char(10)不能填入11个字符)
    • 格式约束(对于指明的格式,不能填入非法格式)

范式

第一范式(R ∈1NF)

所有的属性不能再分,(有些字段不适合再分,如:姓名)。

又叫做“原子化”。

第二范式 (R ∈2NF)

每一个非主属性完全依赖主键(非主属性即为主键之外的列)

完全依赖是指两者之间存在逻辑关联。

第三范式(R ∈3NF)

确保数据表中的每一列数据与主键之间直接关联,不能间接相关。

基本sql语句

-- 数据库名不需要加引号

DROP database if EXISTS mystudents;
CREATE DATABASE mystudents DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

-- 新建表

create table student(
        id INT(11),
        sno VARCHAR(15) PRIMARY KEY,
        sname VARCHAR(20) not null,
        ssex char(2) DEFAULT '女',
        sbirthday date,
        sdept VARCHAR(20)
)

create table sc(
        sno VARCHAR(15),
        cno varCHAR(4),
        grade SMALLINT,
        PRIMARY KEY(sno, cno),
        FOREIGN KEY(sno) REFERENCES student(sno),
        FOREIGN key(cno) REFERENCES course(cno)
        
)

create table sc(
        sno VARCHAR(15),
        cno varCHAR(4),
        grade SMALLINT,
        PRIMARY KEY(sno, cno)
)

对标的一些特殊操作

-- 查看表定义
DESC student;
DESCRIBE sc;

-- 查看表定义语句
show create table sc;

CREATE TABLE `sc` (
  `sno` varchar(15) NOT NULL,
  `cno` varchar(4) NOT NULL,
  `grade` smallint(6) DEFAULT NULL,
  PRIMARY KEY (`sno`,`cno`),
  KEY `cno` (`cno`),
  CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`sno`) REFERENCES `student` (`sno`),
  CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`cno`) REFERENCES `course` (`cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

-- 约束
-- 约束名推荐使用 约束类型_约束字段

-- 删除逐渐约束
-- 删除主键时不需要加主键所在列的名称
alter table student drop PRIMARY KEY;

-- 添加主键约束
alter table student add PRIMARY KEY(sno);

-- 删除外键约束
alter table sc DROP FOREIGN KEY sno;
alter table sc DROP FOREIGN KEY cno;

-- 添加外键约束
alter table sc add FOREIGN KEY(sno) REFERENCES student(sno);
alter table sc add FOREIGN KEY(sno) REFERENCES course(cno);

-- 添加唯一约束
alter table student add unique (id);


alter table ad drop INDEX sname;

-- 设置默认值

alter table student ALTER ssex set DEFAULT '男';


-- 打开数据库然后建表,

use mysql;
create table test(
    id int PRIMARY KEY
)

更新表

-- 修改表约束
alter table sc add FOREIGN KEY (sno) REFERENCES student(sno);
alter table student add FOREIGN KEY (sno) REFERENCES sc(sno);

-- 数据处理
use mystudents;
-- 插入行
select * from student;

-- 插入所有字段
INSERT into student(sno,sname,sgender,sbirthday,sdept)
VALUES('003','张飞','女','348-6-2','数学');

-- 插入字段会更改默认值
insert into student(id,sno,sname,ssex,sbirthday,sdept)
VALUE(002,"002","令狐冲","女","223-4-5","厨师");
insert into student(id,sno,sname,ssex,sbirthday,sdept)
VALUE(003,"003","令狐冲","","223-4-5","厨师");

-- 有默认值的字段可以不写
insert into student(id,sno,sname,sbirthday,sdept)
VALUE(004,"004","令狐冲","223-4-5","厨师");

-- 如果不写字段,必须写入每个字段的值,有默认值的也要写
insert into student
value(005,"005","风清扬","男","122-3-4","养老");



-- 自增
-- 设置自增时,要先将自增列设置为主键,然后再设置其他键为主键,否则会报错。
-- 设置自增列的数据类型要为数字。
insert into students(sno, sname, sbirthday, sdept)
VALUE("001","爱因兹乌鲁恭","342-3-4","化学");

-- 自增了列仍可以指定值
insert into students(id,sno, sname, sbirthday, sdept)
VALUE(4,"002","夏尔提亚","342-3-4","化学");

-- 如果不指定值的话,自增的列会依据上一列增加
insert into students(sno, sname, sbirthday, sdept)
VALUE("002","L","342-3-4","推理");

-- 插入的数据会在其自增列中该在的位置,与插入的先后顺序无关
insert into students(id,sno, sname, sbirthday, sdept)
VALUE(3,"002","夜神月","342-3-4","推理");



-- 修改数据
-- 不指定条件的话会修改所有具有该列的行
update students set sno = ("009");

-- 当制定条件时,指挥修改满足条件的行
update students set sno = ("006") where sname = ("L");


-- 删除语句
delete FROM students where sname = ("L");

-- 删除数据库
drop database mystudents

-- 删除数据表
drop table students
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,640评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,254评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,011评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,755评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,774评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,610评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,352评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,257评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,717评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,894评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,021评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,735评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,354评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,936评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,054评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,224评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,974评论 2 355

推荐阅读更多精彩内容