每天给自己一个希望,努力做好自己,不为明天烦恼,不为昨天叹息。当梦想还在,告诉自己:努力,就总能遇见更好的自己!

MySql笔记(一)

1、创建数据库以及删除

1.创建数据库语法:(命令行窗口操作)

CREATE DATABASE DATABASENAME

示例:创建名为MySQLTest的数据库

CREATE DATABASE MySQLTest;

2.删除数据库语法:(命令行窗口操作)

DROP DATABASE DATABASENAME

示例:删除名为MySQLTest的数据库

DROP DATABASE MySQLTest;

2、Sql常用数据类型

1.整数类型:tinyint(微小的整数),smallint(小的整数),int(普通的整数),bigint(大的整数)

存储的空间不同:tinyint只有一个字节,smallint有两个字节,int有四个字节,bigint有8个字节

2.小数点的数据类型:定点数(decimal(p,s))和浮点数float(p,s)四个字节,double(p,s)八个字节。

定点数的小数点是固定的,而浮点数的小数点是不固定的,区别:定点数的小数点是固定的所以他的小数精度准确,

而浮点数的小数点是不固定的,所以浮点数的小数点的精度没有定点数的精度准确度高。但是浮点数表示的范围更大

3.日期/时间类型:date(某个日期,不包含时间), time(一天当中某一个点数) datetime(连日期带时间)

4.文本类型:char(固定长度的文本) ,varchar , text(是存储大文本的数据类型)

5.二进制的数据类型:bit(如果使用了bit类型,系统就会将数据存储为二进制的形式)

3、创建数据表以及范式

(1.数据库设计基本步骤(分四个阶段):

1.需求分析阶段:分析客户的业务和数据处理需求

2.概要设计阶段:将需求设计成数据库的E-R模型图,确认需求信息的正确和完整

3.详细设计阶段:将E-R模型图转换为多张表,进行逻辑设计,并应用数据量设计的三大范式进行审核

4.代码编写阶段:选择具体数据库进行物理实现,并编写代码实现前端应用

例子:

模型QQ游戏大厅项目

1.需求分析:系统要记录哪些信息?中国象棋,扑克游戏和玩家的信息,分数信息等

2.数据表:游戏表,玩家表,分数表

3.每个表的字段

游戏表 玩家表 分数表

1.编号 1.QQ号 1.游戏编号

2.名称 2.昵称 2.玩家QQ

3.类型 3.性别 3.得分

4.难度 4.生日

5.手机号

​ 将这些数据用E-R做一个模型实体关系图

用长方形符号表示实体,一般是名词
用圆形符号表示属性,一般是名词
用三角形符号表示关系,一般是名词

2 范式:设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,

这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小

3 Dr E,F,codd最初定义了规范化的几个级别,范式用以定义具有最小的冗余的表结构

第一范式(1st NF)

如果每列都说不可再分的最小数据单元(也称为最小的原子单元),侧满足第一范式(1NF)

第一范式的目标是确保每列的原子性

示例:
玩家QQ 地址 玩家QQ 国家 城市
12301 中国北京 -》修改为 12301 中国 北京
12302 美国纽约 12302 美国 纽约

第二范式(2nd NF)

如果一个关系满足1NF,并且除了主键以为的其他列,都完全依赖于该主键,侧满足第二范式(2NF)

第二范式要求每个表只描述一件事情

示例:                                                 游戏
游戏 字段 值
字段 值 游戏编号 1
游戏编号 1 游戏名称 3D桌球
游戏名称 3D桌球 -》修改为 游戏类型 体育
游戏类型 体育 游戏难度 1
游戏难度 1
胜者得分 100 难度奖励
字段 值
游戏难度 1
胜者得分 100

第三范式(3rd NF)

如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,侧满足第三范式(3NF)

第三范式要求表中不存在冗余字段

示例:
<b> 分数表</b> <b>分数表</b>
字段 值 字段 值
游戏编号 1 游戏编号 1
玩家QQ 12301 ==》修改为 玩家QQ 12301
玩家昵称 悟空 得分 2760
得分 2760

(2.使用客户端创建数据表

步骤:

1.打开链接,选择数据库

2.右键选择新建表

3.填写表各个字段的名称,数据类型,勾选是否允许空

4.保存表

(3.使用命令行的方式创建数据表

步骤:

1.从命令行窗口登录MySQL

2.使用CREATE TABLE语句创建表

语法公式:

CREATE TABLE table_name{
col_name1 col_type[not null].
col_name1 col_type[not null].
...
}

4、为队列添加约束

(1.主键约束

1.约束的概念和作用(约束就是检查官,检查数据是否有重复的内容)

2.主键约束作用:保证实体完整性

3.PRIMARY KEY是检查两条表中的语句是否有重复

示例:为玩家表的玩家QQ列添加主键约束

	create table users(
user_qq varchar(20) not null PRIMARY KEY,
user_name varchar(50) not null,
user_sex char(2) not null,
user_birthday date not null,
user_mobile char(11) not null
)

(2.外键约束

1.外键约束作用,保证引用完整性

2.references关键字的意思是引用的意思。

示例:为分数表添加外键约束

create table scores(
user_qq varchar(20) not null
references users(user_qq),
gno int not null,
score int not null
)

(3.检查约束

1.检查约束作用,保证域完整性

2.check()关键字的意思是游戏编号等要大于0,否则错误

例如:为游戏表添加检查约束

	create table games(
gno int not null check(gno>0),
gname varchar(50) not null,
gtype varchar(20) not null
)

(4.默认约束

1.作用:保证域完整性

2.DEFAULT'男'

(5.自增列

1.作用:保证实体完整性

2.AUTO_INCREMENT是自增列的关键字

例:为游戏表添加自增列

CREATE TABLE Games(
GNO INT NOT NULL AUTO_INCREMENT,
GName varchar(50) NOT NULL,
GType varchar(20) NOT NULL
}

5、查看表数据

查看表的基本结构

语法:DESCRIBE/DESC TABLE_NAME

结果含义:
Field:字段名
Type:字段类型
NULL:是否可以为空
Key:是否编制索引
Default:默认值
Extra:附加信息,如自增列

查看表的详细结构

语法:SHOW CREATE TABLE TABLE_NAME

格式化结果:SHOW CREATE TABLE TABLE_NAME\G

6、修改数据表

修改表名

语法:ALTER TABLE OLD_NAME RENAME TO NEW_NAME

示例:
ALTER TABLE GAMES RENAME TO QQ_GAME

修改字段名

语法:ALTER TABLE TABLE_NAME CHANGE OLD_NAME NEW_NAME NEW_TYPE

示例:
ALTER TABLE GAMES CHANGE GNO GAME_ID VARCHAR(20)

修改字段数据类型

语法:ALTER TABLE TABLE_NAME MODIFY COL_NAME NEW_TYPE

示例:
ALTER TABLE GAMES MODIFY GNO VARCHAR(20)

添加和删除字段

添加字段语法:ALTER TABLE TABLE_NAME ADD NEW_COL_NAME NEW_TYPE

删除字段语法:ALTER TABLE TABLE_NAME DROP COL_NAME

增补约束

添加主键语法:ALTER TABLE TABLE_NAME ADD CONSTRAINT CON_NAME PRIMARY KEY(COL_NAME)

示例:ALTER TABLE USERS ADD CONSTRAINT PK_USERS_USERQQ PRIMARY KEY(USERQQ)

添加外键语法:ALTER TABLE F_TABLE ADD CONSTRAINT  CON_NAME FOREIGN KEY(F_COL)REFERENCES M_TABLE(M_COL)

示例:ALTER TABLE SCORES ADD CONSTRAINT FK_SCORES_GAMES FOREIGE KEY(GNO)REFERENCES GAMES(GNO)

添加检查约束语法:ALTER TABLE TABLE_NAME ADD CONSTRAINT CON_NAME CHECK(EXP)

示例:ALTER TABLE GAMES ADD CONSTRAINT CK_GAMES_GNO CHECK(GNO>0)

添加默认值语法:ALTER TABLE TABLE_NAME ALTER COL_NAME SET DEFAULT VALUE

示例:ALTER TABLE USERS ALTER USER_SEX SET DEFAULT'男'

7、删除数据

删除无关联数据表

语法:DROP TABLE [IF EXISTS] TABLE_NAME1,TABLE_NAME2

示例:DROP TABLE SCORES

删除有关联数据表

先解除关联关系语法:ALTER TABLE F_TABLE_NAME DROP FOREIGN KEY CON_NAME

删除表:DROP TABLE TABLE1,TABLE2

8、插入数据

为所有列都插入值

语法:INSERT[INTO] TABLE_NAME VALUES(V1,V2...Vn)

特点--列值同数,列值同序

示例;INSERT INTO USERS VALUES('12301'.'周天'.'男','1982-02-01','1371111222')

为特定列插入值

语法:INSERT[INTO] TABLE_NAME(COL1,COL2...COLn)VALUES(V1,V2...Vn)

特点:指定顺序,列值对应

示例:INSERT INTO USERS(USER_QQ,USER_NAME,USER_MOBILE)VALUES('20020106','叮当','13834561278')

一次性插入多条记录

语法:INSERT[INTO] TABLE_NAME[(COL1,COL2...COLn)]VALUES(V1,V2...V1n),(V21,V22...V2n),(V23,V23...V3n)

示例:INSERT[INTO] USERS(USER_QQ,USER_NAME,USER_BIRTHDAY,USER_MOBILE)
VALUES('20020106'.'周天','1980-07-08','1371111555'),('20025564'.'立飞','1983-09-08','1382111555')

9、修改数据

修改全部数据

语法:UPDATE TABLE_NAME SET{COL_NAME=EXPRESSION}[...n]

示例1:把所有玩家的性别都改为男性

UPDATE USERS=SET USER_SEX='男'

示例2:把所有玩家的所有游戏分数都增加100分
UPDATE SCORES SET SCORE=SCORE+100

修改特定数据

语法:UPOATE TABLE_NAME SET{COL_NAME=EXPRESSION}[...n]

WHERE CONDITION_EXPRESSION

示例:把QQ为'12302'的玩家性别都改为女性
UPDATE USERS SET USER_SEX='女'
WHERE USER_QQ='12302'
#### 10、删除数据

使用DELETE命令删除数据表中的数据

语法:DELETE[FROM] TABLE_NAME

[WHERE CONDITION_EXPRESSION]

示例:删除玩家表中所有女性玩家的信息
DELETE FROM USERS WHERE USER_SEX='女'

使用TRUNCATE TABLE删除数据

语法:TRUNCATE TABLE TABLE_NAME

示例:清空分数表中所有信息
TRUNCATE TABLE SCORES

11、删除数据

查询和提取数据的过程

1.客户端与服务器交互

​ 2.语法:SELECT COL1,COL2,...COLn

​ FROM TABLE1,TABLE2...TABLEn

​ [WHERE CONDITIONS][GROUP BY GROUP_BY_LIST]

​ [HAVING CONDITIONS][ORDER BY ORDER_LIST][ASC|DESC]]

​ 3.SELECT的意思是:我要查询或者显示出哪几个列的结果

​ FROM的意思是:这些列来源于哪些表

​ WHERE的意思是:符合部分条件的语句就写上WHERE

​ GROUP BY的意思是:把查询的结果进行分组

​ HAVING的意思是:统计结果

​ ORDER BY的意思是:把查询的结果进行排序

12、删除数据

1.查询表的全部行和列

示例:查询玩家表中全部的行和列
SELECT USER_QQ,USER_NAME,USER_SEX,USER_BIRTHDAY,USER_MOBILE
FROM USERS

​ 简便的查询表的全部行和列的方法

​ 语法:SELECT *FROM USERS

2.查询表的部分列

示例:从玩家表中查询玩家QQ和昵称

SELECT USER_QQ,USER_NAME FROM USERS

3.别名的使用

示例:从玩家表中查询玩家QQ和昵称,并显示为“玩家QQ”和“玩家昵称”

SELECT USER_QQ AS'玩家QQ',USER_NAME AS'玩家姓名'

FROM USERS

4.DISTINCT关键字

作用:消除结果集中的重复行

示例:显示参与了游戏的玩家QQ,要求参与了多个游戏的玩家不重复显示QQ号

语法: SELECT DISTINCT USER_QQ FROM SCORES

5.LIMIT关键字

作用:指定结果集中数据的显示范围

示例:显示玩家表中第三至第5条数据

语法:SELECT * FROM USERS LIMIT2,3

[ORDER BY ORDER_LIST]:

MySql笔记(一)的更多相关文章

  1. MySQL笔记汇总

    [目录] MySQL笔记汇总 一.mysql简介 数据简介 结构化查询语言 二.mysql命令行操作 三.数据库(表)更改 表相关 字段相关 索引相关 表引擎操作 四.数据库类型 数字型 字符串型 日 ...

  2. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  3. centos7.2下安装Mysql笔记

    centos7.2下安装Mysql笔记 安装 MySQL 适用于 CentOS 7.0 或以后版本: yum install mariadb mariadb-server 适用于 CentOS 6.8 ...

  4. MySQL笔记(六)游标练习

    23.3.1 Trigger Syntax and Examples 意义不明的几道练习,留着备用. 感觉不好写,而且难以调试..不知道以后会不会有实际的应用场景. 环境:MySQL 笔记(三)由 t ...

  5. mysql 笔记(一)

    mysql 笔记 预留 mysql> use mysql; mysql> grant all privileges  on *.* to root@'%' identified by &q ...

  6. 【MySQL笔记】SQL语言四大类语言

     SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL.   1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句, ...

  7. Mysql 笔记二

    Mysql 笔记二 Mysql 笔记二 Table of Contents 1. 前言 2. Master Thread 工作方式 2.1. 主循环(loop) 2.2. 后台循(backgroup ...

  8. 深入浅出mysql笔记---1、mysql下载安装

    深入浅出mysql笔记---1.mysql下载安装 一.总结 一句话总结: linux下rpm安装即可 1.linux的wget命令作用? 下载文件的工具:比如wget http://cn.wordp ...

  9. 深入浅出mysql笔记---0、序

    深入浅出mysql笔记---0.序 一.总结 一句话总结: 心得:买书之前建议先找找电子书,纸质书太难带了 1.开源作用? 开源对mysql的发展至关重要 2.mysql在2002年就全面支持了事务, ...

  10. 最全mysql笔记整理

    mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...

随机推荐

  1. Laravel Form-builder使用

    添加formbuilder插件: Composer应用 composer require kris/laravel-form-builder 下载成功 修改配置文件 在config/app.php ‘ ...

  2. springSecurity安全框架的学习和原理解读

    最近在公司的项目中使用了spring security框架,所以有机会来学习一下,公司的项目是使用springboot搭建 springBoot版本1.59 spring security 版本4.2 ...

  3. H3C 单路径网络中环路产生过程(1)

  4. ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(开篇)

    系统预览: 源码下载:http://www.yealuo.com/Home/Detail?KeyValue=2f926407-f80b-4bff-a729-949a53efed7b 创建项目,新手按步 ...

  5. 思数云hadoop目录

    全文检索.数据分析挖掘.推荐系统.广告系统.图像识别.海量存储.快速查询 l Hadoop介绍 n Hadoop来源与历史 n Hadoop版本 n Hadoop开源与商业 l HDFS系统架构 n ...

  6. 0011 开发者工具(chrome)

    此工具是我们的必备工具,以后代码出了问题 我们首先第一反应就是: "按F12"或者是 "shift+ctrl+i" 打开 开发者工具. 菜单: 右击网页空白出- ...

  7. POJ-1741 树上分治--点分治(算法太奇妙了)

    给你1e5个节点的树,(⊙﹏⊙) 你能求出又几对节点的距离小于k吗??(分治NB!) 这只是一个板子题,树上分治没有简单题呀!(一个大佬说的) #include<cstdio> #incl ...

  8. tensorflow之tf.train.exponential_decay()指数衰减法

    exponential_decay(learning_rate,  global_steps, decay_steps, decay_rate, staircase=False, name=None) ...

  9. 洛谷$P$3066 逃跑的$BarnRunning\ Away\ From…$ $[USACO12DEC]$ 主席树

    正解:主席树 解题报告: 传送门! 1551做$dp$实在是做不下去了,,,于是来水点儿别的题$QAQ$ 然后这题,挺纸老虎的我$jio$得,,,看起来很难的样子然后仔细想下之后发现依然是个板子呢,, ...

  10. $[TJOI2017]$ 可乐 矩阵优化$dp$

    \(Sol\) 设\(f_i\)为到第\(i\)秒的方案数,显然\(f_i=\)在第\(i\)秒前爆炸的方案数+在第\(i\)秒爆炸的方案数+在第\(i\)秒停下的方案数+在第\(i\)秒走向下一个城 ...