MySQL的软件架构

1.开启MySQL服务器:以windows服务的形式开启,在cmd下net startmysql|net stop mysql,在cmd下使用mysqld –default-file= “d:/amp/mysql/my.ini”

2.连接MySQL服务器

3.mysql的帮助命令,help,里面的指令都可以使用  \字母 来完成

4.mysql的注释符:行注释:#或-- ,块注释是/*   */

数据库的操作

  1. 创建数据库:create database 库名[库选项];

  2. 查看数据库:show databases;  show createdatabase 库名;

  3. 删除数据库:drop database [if exists] 库名

  4. 修改数据库:只能修改库选项;alter database 库名新的库选项

数据表操作

  1. 选择数据库:显式的选择,在表名的前面加上库名;隐式的选择,use 库名;

  2. 创建数据表:create table 表名(字段列表)[表选项];

  3. 查看数据表:show tables;  show createtable 表名; describe|desc 表名;

  4. 修改数据表:

1修改表名:altertable 表名 rename to 新表名; rename table 旧表名 to 新表名

2修改列定义:

  1. 增加一列:alter table 表名 add 新字段名字段类型;

  2. 删除一列:alter table 表名 drop 字段名;

  3. 修改字段类型:alter table 表名 modify 字段名新的字段类型

  4. 修改字段排序:alter table 表名 modify 字段名1 新的字段类型

first|after 字段名2

  1. 重命名字段:alter table 表名 change 旧字段名新字段名 新字段类型

3修改表选项:altertable 表名新的表选项(default charset gbk engine Myisam)

数据操作

插入数据:insert into 表名(字段列表)values(值列表)

查看数据:select *|字段列表 from 表名 [where查询条件]

删除数据:delete from 表名[where删除条件]

修改数据:update 表名 set 字段1=新值1,字段2=新值2……[where修改条件]

数值类型

1.整数:tinyint,smallint, mediumint,int,bigint

2.小数:

a.浮点数float/double

b.定点数:decimal,也叫货币型

日期时间型

datetime和timestamp

date

time:时间间隔|一天中的时间

year:70以后的代表19XX,69及69以前的代表20XX

字符串类型

  1. char和varchar

1. 都需要指定字符的长度,char中的长度是字符的长度,而varchar的长度是字节的长度

2.  char中指定的长度就是实际占用的长度,而varchar指定的长度只是一个范围,所以varchar还要拿1-2个字节存储该字符串到底有多少个字节,并且varchar中能够实际存储的字符跟编码有关(utf8编码20000多,gbk编码30000多)

3.  varchar对存储空间的占用更灵活,但是char的效率更高

4.如果字符串的长度是固定已知的,就用char,如果字符串的长度是可变的,就用varchar

b.text:文本类型,使用起来类似于varchar,只不过这里不需要指定长度,其中longtext认为文本没有限制

c.enum:枚举类型,类似于单选!实际存储的是原选项的位置,位置用1,2,3,4来代替,理论上最多可以表示65535个选项

d.set:集合类型,类似于多选!实际存储的是也原选择的位置,位置用1,2,4,8来代替,然后把所有选项的位置相加,理论上最多可以表示64个多选项

e.binary、varbinary、blob:二进制文本类型,就是字节流的char、varchar和text,在实际的项目中,很少使用

二,列属性

  1. null|not null,缺省值是null,也就是允许为空,如果是notnull而又没有给该字段赋值的话,系统会首先查询该字段有没有默认值

  2. default:给一个字段一个默认值,如果没有给该字段填充数据,就用该默认值来代替,通常就是配合not null一起使用

  3. primary key:主键,唯一可区别其他记录的字段,一个表中只能有一个主键,也可以很多个字段组合成一个组合主键,而且不允许为空!

  4. unique key:唯一键,与主键的区别是唯一键可以有很多个,而且允许为空

  5. auto_increment:自动增长,使用这个属性有两个条件,第一该字段必须为整型,第二该字段必须存在索引,通常就是配合主键一起使用,也可以通过修改表选项设置自动增长的默认初始值

  6. comment:列注释

三,索引

  1. 索引的本质就是在“原始表”的基础之上根据某个或某些字段进行排序后的“内置表”

  2. 索引的最大优势可以极大的提高查询速度

  3. 在提高查询速度的同时也降低了增删改的速度

四,实体与实体关系

  1. 一对一:主要用来做数据表的优化(垂直分割)

  2. 一对多:在多的那一方增加一个字段,用于指向1的那一方

  3. 多对多:增加一个中间表,就是将一个多对多的关系拆分成两个一对多的关系

五,外键

  1. 只有InnoDB存储引擎才可以使用

  2. 关键字:foreign key

  3. 级联操作:主表更新onupdate[级联操作],主表删除:语法形式为:on delete[级联操作]。cascade:同步操作,set null:设置为null,restrict:拒绝主表的更新或删除

  4. 定义方式:foreignkey(本表字段名) references 父表(主键) on delete[cascade|set null|restrict] on update [cascade|setnull|restrict]

六,范式

1第一范式:要求把各种数据设计成一个一个的字段,不能再分

2第二范式:在满足第一范式的基础之上,表中的一行都具有唯一的可以区分的特性;不能有部分依赖

3第三范式:在满足第二范式的基础之上,消除传递依赖

最新文章

  1. 【Java EE 学习 73】【数据采集系统第五天】【参与调查】【导航处理】【答案回显】【保存答案】
  2. Conditional project or library reference in Visual Studio
  3. 每秒执行一个shell脚本(转载)
  4. C语言宏定义时#(井号)和##(双井号)的用法1
  5. 夺命雷公狗—angularjs—10—angularjs里面的内置函数
  6. Android中直播视频技术探究之---摄像头Camera视频源数据采集解析
  7. POJ 3928 Ping pong(树状数组)
  8. mysql myisam
  9. python字符串内容替换的方法(转载)
  10. Ubuntu Server修改IP、DNS、hosts
  11. Spring任务调度定时器
  12. Consul1-window安装consul
  13. Alpha冲刺! Day10 - 砍柴
  14. Blender设置界面语言
  15. C#使用ActiveMQ实例
  16. jQuery easyUI的datagrid,如何在翻页以后仍能记录被选中的行
  17. 对象的继承(__proto__和Object.setPrototypeOf(child,father))
  18. c3p0连接池基本配置mysql和oracle
  19. BZOJ 2004 公交线路(状压DP+矩阵快速幂)
  20. Object和Function谁先被创建

热门文章

  1. Android监听WebView滑动到底部
  2. vsftpd.conf 详解与实例配置
  3. [hystar整理]Entity Framework 教程
  4. 关于CachedRowSetImpl类
  5. 七、rdd究竟是什么
  6. kibana使用的lucene查询语法
  7. 快速理解Parquet的DL和RL
  8. 【LeetCode】22. Generate Parentheses (I thought I know Python...)
  9. chrome浏览器如何在本地安装谷歌访问助手教程
  10. IMAX公司CEO:进军VR产业,打造VR体验中心