SIKI学院  MySQL

案例:

数据库:Mygamedb
账户表格: user 表格

账户的拥有的角色:role  表格

账户拥有的所有角色的物品:goods 表格

怎么知道每个role拥有哪些goods? Inventory 中间表——通过查询所有Inventory.roleid相同的值,去检索Inventory.goodsid

a) 一个user账户拥有多个role角色,每个role只能被一个一个user账户拥有。

b) 一个role有多个good物品,每个good能被多个user账户多个role拥有

1:)SQL语句 可用于多种数据库语言MySQL 、SQL Server、Oracle等等。

2)字符串用单引号表示,每个SQL语句以分号表示,表头之间用逗号隔开。
CREATE TABLE `mygamedb`.`users` (
  `username` VARCHAR(32) NOT NULL,
  `password` VARCHAR(45) NULL,
  PRIMARY KEY (`username`));

3)MySQL 不区分大小写

4)在表格添加数据记得点击“Apply”按钮提交到数据库

5)数据库的每一张表格都必须有一个主键,主键是该条信息区别于其他信息的唯一标识,有点像符号表Dictionary<Key,Value> 的Key,内部实现对Key进行排序,查询信息时通过Key来查询Value。

· 主键不能为null,

· 通常以int型 ID设为主键,为什么username不能为主键,想一下如果两个用户的名字一样,我们就不能区别他们两个了。

所以ID主键是该条信息区别于其他信息的唯一标识。

· 表头里面可以有多个主键- 即主键由一列或多列组成,那么身份的唯一标识就是二者的组合。这种情况下多列主键的值不能相同,相同则不能区分二者了。  尽管如此,还是不推荐使用多个主键。

6)各个表头的属性

* PK  设为主键
       * NN 不能为空

* UQ  不可以重复  Unique ,用于注册时的用户名

* B

* UN

* ZF

* AI ——auto Incremental

7)外键就是表的某一列引用另一个表的主键。

两个表之间的外键关联:  role.userid——user.id

关联后role.userid的值不能是User.id 中没有的值

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

1,什么是数据库?
Excel就是一个数据表,人操作
MySQL是一个数据库,便于程序操作,便于存储百万以上级别的数据

对于数据库的基本操作:增删改查
如何对数据库操作 SQL语句 SQL命令 Structured Query Language(SQL)
1,每个命令后;
2,不区分大小写

学习数据库注意事项:学会老师讲解的80%,遇到剩余20%不懂的,学会多搜索
2,数据库排行(2016.10)
Oracle
MySQL
SQL Server
MongoDB
PostgreSQL
DB2
3,关系数据库,
是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。

Oracle、SQL Server、MySQL

4,服务器端运行原理图
(理解什么是ip和端口号)
Web Application Server
Game Server

5,如何在MySQL中存储数据
MySQL下可以创建多个库(数据库)database
每个库下可以创建多个表(表格)table
通过表格存储我们的数据

6,什么是表(Table)(表,行,列,格子)
表有表头(表头表示这个表有哪些列)
表里面的每一行都是我们存储的数据

7,假如我们要学生信息和班级信息,如何设计表呢

8,MySQL安装
默认超级管理员
root root
9,
MySQL Workbench介绍
MySQL Command Line Editor

数据库的链接
localhost  127.0.0.1  都代表本机

10,什么是表(Table)(表,行,列,格子)
表有表头(表头表示这个表有哪些列)
表里面的每一行都是我们存储的数据
主键(Primary Ke y)
1,每行数据独一无二的标识
2,一个表必须有主键(只能有一个主键)
3,不能为NULL(空值)
4,由一列或者多列组成
Unique Key
1,表示该项数据不能重复
2,允许一条可以为NULL
外键(Foreign Key)
1,这列数据引用了另外一个表的主键

表的关系
一对一 OneToOne
一对多 OneToMany
多对多 ManyToMany

数据库的创建
表的创建
列的设置

数据添加

数据删除

数据修改

数据查询

10,数据类型
字符串 - char varchar(length) - string
整数 - int - int
小数 - float - float
日期时间 - date - DateTime

默认值
可以为NULL
自动增长

11,MySQL控制台命令
help;
quit;
show databases;
use databasexxx;
show tables;
select * from tablename;

创建数据库:create database XXX;
删除数据库:drop database XXX;

执行SQL语句是,提示 Query OK 表示语句执行成功。
使用数据库的原因:处理上千万上亿条数据时,查询快

12,MySQL Workbench全面功能学习
http://dev.mysql.com/doc/workbench/en/

添加表
添加数据
数据的查询
数据的更改
数据的提交
添加数据
修改表结构查看表结构 alter table

13,select column_list    
from table_name 
where filter_condition 
order by column_list (desc)
limit rom_limit;

示例:
//仅仅查询你需要的列
select username from mytable where id>3;
select username,password from mytable where id>3;

//查询且排序
select *from  mytable order by username ;      //正序
select *from  mytable order by username  desc; //反序
select *from  mytable order by username  desc limit 1; //反序后取第一条,即得到最后一条;
select *from  mytable order by username desc,password ;      //username反序,password 正序;

SQL添加注释
--单行注释
/* */多行注释

14, 查询静态值   
select 'some string';
select 1+1;
select now();   //日期和时间
select curdate();  //日期
select curtime();  //时间
select pi();
select mod(45,7);  //求余
select sqrt(25);
可以在查询的时候通过as 修改这一列的列名/表头

15,select * from where 1=2;

16,查询的时候可以对查询的列做一些运算
*
/ (除 结果为浮点)
  Value1 div Value2 (除 结果为整数)
Value1(%/mod)Value2 支持小数

-
17,查询的时候可以使用的功能函数
round() 四舍五入  select round(4.45,1); //保留一位小数=4.5;
round(columnname,x)四舍五入保留x位小数
floor(float v)   直接舍 :不大于v的最大整数  floor(9.2)=9;
ceiling(loat v)  直接入:不小于v的最小整数  floor(9.8)=10;

18,字符串操作
concat (s1,s2....);
left 
length 
reverse  字符串翻转
replace(S1,S2,S3);把S1中S2替换为S3
示例:Select  replace(username,'K','Q')from mytable;

date_format %m %b %d %y %Y %T %f 
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
get_format(datetime,'EUR' 'ISO' 'USA')
dayofweek
quarter  //1-2-3-4春夏秋冬的季节
week
monthname

19,distinct   去重select distinct * from xxx;

20,where条件
1,数字 > < = >= <= <>不等于
2,字符串 = '' > < = >= <= <> !=

逻辑操作
is 仅用is null或is not null
and - or -not 或且非
and 优先级> or

范围判断
in (not in)
between num1 and num2 (not between)     
示例:
select * from users where name in(‘Kismy’,‘SIKI’,‘Alice’);
select * from users where id in(‘1,4,7,8,9);
select * from users where category_id between 1 and 9;

like (not like) % _  【如同正则表达式】
   示例1:
select * from category where name like 'A%';  检索以A开头的,‘%’代表任意多个字符
select * from category where name like 'A_ _'; 检索以A开头,且仅有三个字符的,‘_’代表任意字符
  
关于NULL的条件   // is 仅用is null或is not null
is NULL
is not NULL

21,limit x
limit x1,x2;  
//去掉前x1条,查询x2条; 注意——并不是从X1条开始查询;
//常用于分页查询,例如每一页显示10条

示例:
select * from mytable limit 0,10;
select * from mytable limit 10,20;

22,创建表【创建表之前,先“use 数据库name”】
create table tablename(
col_name type not null auto_increment,
col_name type default,
primary key(col_name)
);

desc tablename;查看表结构

插入表数据 
(不能为null 的列必须插入,自增的列不需要插入)
insert into tablename(col_name,col_name,col_name)
values(value1,value2,value3,value4,value5);

查询表数据      
select * from tableName;

更新数据
update tablename
set col_name = value,
col_name = value
where condition;

示例:
update mytable set username='Demon' where id=1;  
//注册用户的id是唯一区别于其他用户的标识。修改用户的名称是通过id来修改的。
update mytable set username='Demon' where username='Kismy';

删除表
drop table XXX;

删除表数据
delete from tablename where condition;
示例:
delete from mytable  where id=1;

MySQL 学习笔记本相关推荐

  1. MySQL 学习笔记本2——SQL 语句

    1)双击MySQL.exe 启动数据库服务器 2)在MySQL控制台输入的每一句SQL语句末尾都要加":" 3)MySQL控制台要求输入MySQL密码 4)控制台方向键--&quo ...

  2. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...

  3. 数据库MYSQL学习系列三

    数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...

  4. 我的MYSQL学习心得(十六) 优化

    原文:我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看 ...

  5. 我的MYSQL学习心得(4) : 数据类型

    我的MYSQL学习心得(1) :简单语法 我的MYSQL学习心得(2) :数据类型宽度 我的MYSQL学习心得(3) : 查看字段长度 MYSQL里的BLOB数据类型 BLOB是一个二进制大对象,用来 ...

  6. 数据库MYSQL学习系列一

    数据库MYSQL学习系列一 一.MYSQL数据库基础 1.1-认识MYSQL 什么是数据库 计算机处理和存储的一切信息都是数据 计算机系统中一种用于存取数据的程序 一种: 计算机系统中有很多种能够存取 ...

  7. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

  8. 【计算机本科补全计划】Mysql 学习小计(2)

    正文之前 昨天下午写了篇 Mysql学习小计,结果出乎意料的受欢迎?变相刺激了我多写点 Mysql?好吧,如尔所愿.我晚上反正还不知道学点啥,就把今天看的那个菜鸟教程学完吧,到时候估计一点了,就可以睡 ...

  9. mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]

    mysql存储过程基本函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2  [,... ]) //连接字串 INSTR (string ,substrin ...

最新文章

  1. 目录同步 linux,Linux系统目录实时同步
  2. 阿里云开源的Blink,计算能力很疯狂:一眨眼,全部都算好!
  3. Java Servlet技术
  4. 算法进阶之Leetcode刷题记录
  5. 内容管理系统测试实战
  6. 诺顿5月17日病毒库误报,导致系统文件被删除
  7. 如何调整html中音乐播放器的大小,请教音乐播放器大小如何调整?
  8. “情商”和“智商”究竟有哪些区别?
  9. 执念斩长河入CSDN的第一篇日志
  10. 【暖手练习】MATLAB习题
  11. 自动化测试金字塔与反模式
  12. Linux杀掉挖矿病毒(qW3xT.2)
  13. 作为程序员的我,常用的工具软件有这些
  14. RocketMQ占用内存过大的解决方法
  15. 【工业机器人】工业机器人最全面基础知识科普,一篇文章彻底搞透
  16. c++商店信息管理系统的设计与实现
  17. 微信开发小结——积累与沉淀
  18. CBQ Web Part匿名读取Document Library数据失败的解决方案
  19. POJ1068 Parencodings
  20. 免费PPT模板分享:文艺复古中国风+美观自然春季风,职场必备

热门文章

  1. 我问你这篇保熟不?! -- 做服务端开发,不懂网络层,真的可以吗?
  2. Safari 浏览器的键盘快捷键大全
  3. 为了渲个人物,我玩坏了3台电脑...
  4. 三星a9s参数_三星A9s参数配置怎么样
  5. Modeller多模板同源建模教程
  6. 电脑计算机软件硬盘不足,电脑硬盘存储空间严重不足,软件没几个。但是130G的几个盘都满了...
  7. 番茄花园 Ghost XP SP3 2013极速装机驱动版
  8. choice接口、同花顺使用
  9. 打开计算机窗口抖动是什么原因,教你电脑屏幕抖动是什么原因及如何解决
  10. Office2010修改|更改|更换序列号的办法