ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql数据库知识点总结

2019-06-13 17:41:10  阅读:270  来源: 互联网

标签:知识点 goods varchar cate 数据库 cates mysql name


--------------------------------------------------------------数据库的安装以后更新----------------------------------------------------------------------------------

在Linux系统下:

1.启动数据库服务:sudo service mysql start

2.停止数据库服务:sudo service mysql stop

3.重启数据库服务:sudo service mysql restart

4.进入MySQL数据库:mysql -u用户名 -p密码

5.创建一个数据库:create database 数据库名 charset='utf8';  注意:一定要写上数据库编码方式。否则会出现一系列的麻烦。

6.查看创建数据库的语句:show create database 数据库名;

7.查看当前所有数据库:show databases;  注意:这里没有小括号

8.进入一个数据库:use 数据库名;

9.查看当前正在用的数据库:select database();  注意:这里有小括号

10.查看当前时间:select now();

11.删除数据库:drop database 数据库名;

数据类型:

1.整数:int、bit

2.小数:decimal  说明:decimal(5,2)表示该小数一共有五位数,其中小数占两位。

3.字符串:varchar、char  说明:varchar(3)输入'ab',实际存储为'ab',输入'abcd',实际存储为'abc'。char(3)输入'ab',实际存储为'ab ',输入'abcd',实际存储为'abc'

4.时间:date(2017-12-12)、time(12:30:54)、datetime(2017-12-12  12:30:54)

5.枚举:enum

数据的约束:

1.主键:primary key  说明:primary key 相当于 not null 和 unique

2.外键:foreign key

3.非空:not null

4. 唯一性:unique

5.默认值:default

6.取正数:unsigned

7.主键自增:auto_increment

1.创建一个student学生表:

 

2.查看表格的创建语句:show create table student;

3.查看表结构:desc student;

4.查看所有的表格:show tables;

5.删除表格:drop table student;

6.添加一个addr字段,varchar(20),非空:alter table student add addr varchar(20) not null ;

7.将addr改为address:alter table student change addr address varchar(20) not null;

8.将address的varchar(20)改为varchar(50):alter table student modify address varchar(50) not null;

9.删除address字段:alter table student drop address;

-------------------------------------------------------------------------待更新-----------------------------------------------------------------------------------

准备数据:

 

 

我们发现该数据库设计的有一些问题,是什么呢?

电脑的每种类型(cate_name)对应好多种款式的电脑,每种品牌(brand_name)也对应好多种款式,显然不符合数据库设计的三范式。

下面将goods表再拆分出两个表,分别是goods_cates商品类型表和goods_brands品牌表。

------------------------------------------------数据库的三范式以后更新----------------------------------------------------------------------------

1.创建goods_cates表:

 

 2.将goods表中的cate_name同步到goods_cates表中的name:

insert goods_cates(name) select cate_name from goods group by cate_name;(第一种插入方式)

解释:先将goods表中的cate_name查询出来分好组,然后插入到goods_cates表中字段为name下。

注意:必须指定good_cates中的字段,否则程序不知道把查询出来的cate_name插入到什么字段中。

3.将goods_cates中的id同步到goods中:

update goods join goods_cates on goods.cate_name=goods_cates.name set goods.cate_name=goods_cates.id;

解释:可以将goods join goods_cates on goods.cate_name=goods_cates.name 这段代码看作一个整体,就是说先将goods表和goods_cates通过内连接建立一个虚表,然后更改goods.cate_name为goods_cates.id。

1.创建goods_brands表同时插入数据:

 

 2.同步goods中的数据(原理同上):

update goods join goods_brands on goods.brand_name=goods_brands.name set goods.brand_name=goods_brands.id;

最后的最后修改表结构,将cate_name改为cate_id,brand_name改为brand_id,这是一波新操作,瞧好:

alter table goods change cate_name cate_id int unsigned not null,change brand_name brand_id int unsigned not null;

最后goods表结果:

 

 -----------------------------------------------------------------------待更新-------------------------------------------------------------------------------------------------------------

 

标签:知识点,goods,varchar,cate,数据库,cates,mysql,name
来源: https://www.cnblogs.com/sqlserver-my/p/11018093.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有