方法如下:
到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)
解压32位安装包:
进入安装包所在目录,执行命令:tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz
复制解压后的mysql目录到系统的本地软件目录:
执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
注意:目录结尾不要加/
添加系统mysql组和mysql用户:
执行命令:groupadd mysql和useradd -r -g mysql mysql
安装数据库:
进入安装mysql软件目录:执行命令 cd /usr/local/mysql
修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./
安装数据库:执行命令 ./scripts/mysql_install_db --user=mysql
修改当前目录拥有者为root用户:执行命令 chown -R root:root ./
修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data
到此数据库安装完毕
启动mysql服务和添加开机启动mysql服务:
添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录
启动mysql服务:执行命令service mysql start
执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功,如图
修改mysql的root用户密码,root初始密码为空的:
执行命令:./bin/mysqladmin -u root password '密码'
把mysql客户端放到默认路径:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
库建立好之后基本不动,和我们接触最频繁的是表. 建表就是声明字段的过程!
选择合适的类型[速度快 减少硬盘占用]
存储空间,还是存储范围有区别?
答案: 两者本质完全一样 ,只是在一些特殊情况下两者显示有区别(只是在显示的时候补全0的位数不一样)
实验
*zerofill 零填充(本字段同时即自动带有unsigned属性,因为负数不能零填充)
如 数字2在固定宽度4时 零填充 即为0002
M值是一个整数(固定宽度值),只有在字段有零填充zerofill属性时 规定M值才有意义!
M值只是 显示效果 ,不会影响实际数据值!
如M值为1,实际值255,一样会显示255
列可以声明默认值(推荐声明)
因为null无法和别的值比较
null = 0 返回null
null <>0 返回null
null只能用is或is not比较 null is null当然对的。
例子:
【浮点型】有误差,不稳定!定点数更精确。
实际测试数据
Float(M,D)
M精度(总位数,不包含点) 精度值M 影响 存储的 值的范围.
D标度(小数位) 小数点后有几位(mysql比较特殊,mssql/oracle都不能指定)
testcolumn float(5,2) unsigned 范围0到999.99
float(5,2)的范围-999.99到999.99
给float(5,2)这样的字段插入值在进位时有一些规矩:暂时没搞清楚,不是简单的四舍五入
插入值688.826实际是688.83 末尾6 进位
插入值688.825实际是688.83 末尾5 进位
插入值688.824实际是688.82 末尾4 舍去
插入值688.005实际是688.00
插入值688.015实际是688.01 末尾5 5前面是1 舍去
插入值688.025实际是688.02 末尾5 5前面是2 舍去
插入值688.035实际是688.03 末尾5 5前面是3 舍去
插入值688.045实际是688.04 末尾5 5前面是4 舍去
一般使用tinyint、char(1)、enum类型。
varchar(M)
M代表宽度 即可容纳的【字符数】 (并不是字节数) varchar占用的字节数与编码有关:
utf-8 一个汉字3字节 英文字母1字节
对于utf8mb4号称占用4字节但是并不绝对(在utf8可以覆盖到的范围则仍然占用3字节)
utf8mb4最有优势的应用场景:存储emoji表情
例子:
性能太差,不推荐
MySQL在5.6.4版本之后,TimeStamp和DateTime支持到微妙
一个例子:
以如下这张表为例
show privileges 命令可以查看全部权限
查询时从user->db->table_pirv->columns_pirv依次验证,如果通过则执行查询。
本课程涉及建表SQL
场景1:歌单按时间排序
场景2:统计云音乐创建歌单的用户
场景3-1:统计云音乐创建歌单的用户列表和每人创建歌单的数量。
场景3-2:统计云音乐创建歌单的用户列表和每人创建歌单的数量,并且只显示歌单数量排序大于等于2的用户
SQL进阶语法-like
场景4:查询一个月内创建歌单(从第6行开始显示10条记录)
场景5:对于未录入歌曲的歌单(trackcount = null),输出结果时歌曲数返回0.
连接的作用是用一个SQL语句把多个表中相互关联的数据查出来
场景6:查询收藏“老男孩”歌单的用户列表
子查询:内层查询的结果作为外层的比较条件。一般子查询都可以转换成连接,推荐使用连接。
场景7:查询出没有用户收藏的歌单
场景8:老板想看创建和收藏歌单的所有用户,查询play_list和play_fav两表中所有的userid
实例还是上节中的那些表
场景1:查询每张专辑总的点播次数和每首歌的平均点播次数。
场景2:查询全部歌曲中的最大的播放次数和最小的播放次数。
场景2续:查询播放次数最多的歌曲
count(*) 和 count(1) 基本一样,没有明显的性能差异。
count(*) 和 count(song_name) 差别在于 count(song_name) 会除去song_name is null的情况
场景3:显示每张专辑的歌曲列表
实例:查询一个月内userid为1,3,5的用户创建的歌单
学生表:
用于更正成绩的触发器:
MySQL可以说是MSSQL的简化版本。
理念相同,但MySQL的实现比MSSQL的需求低。MySQL是一个免费的、开放源代码的SQL数据库,所以免费的MYSQL很受欢迎,php+mysql,MySQL数据库专用于PHP网站的,一般用在PHP的网页上的,他和PHP可以说是黄金搭档(都是开源免费的东西)。
对于不是特别大流量的网站,特别胜任,效率最高,MYSQL适合小、中型网站。mysql 是个开源的数据库Server,可运行在windows平台、unix、linux平台,其标准版是免费的,ASP.NET跟MYSQL不适合一起用,国内建站用PHP+MySQL+Apache很流行。
MS SQL是微软推出的商用数据库系统,全称是Microsoft SQL Sever。,是微软的东东,都需要收钱的,所以贵些,目前的大型网站一般使用Oracle或者MSSQL,JSP.PHP.ASP都可以。一般是企业级的商务网站使用的。
MS SQL Server 和ASP都是微软的产品,互相兼容性最好,所以ASP 网站用MS SQL Server 最好,搭配!
拓展资料:
关于MySQL和MsSQL的几点知识
1 mysql支持enum,和set类型,sql server不支持
2 mysql不支持nchar,nvarchar,ntext类型
3 mysql的递增语句是AUTO_INCREMENT,而mssql是identity(1,1)
4 msms默认到处表创建语句的默认值表示是((0)),而在mysql里面是不允许带两括号的
5 mysql需要为表指定存储类型
6 mssql识别符是[],[type]表示他区别于关键字,但是mysql却是 `,也就是按键1左边的那个符号
7 mssql支持getdate()方法获取当前时间日期,但是mysql里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数
8 mssql不支持replace into 语句,但是在最新的sql20008里面,也支持merge语法
9 mysql支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是mssql不支持这样写
10 mysql支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
11 mssql不支持limit语句,是非常遗憾的,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M
12 mysql在创建表时要为每个表指定一个存储引擎类型,而mssql只支持一种存储引擎
13 mysql不支持默认值为当前时间的datetime类型(mssql很容易做到),在mysql里面是用timestamp类型
14 mssql里面检查是否有这个表再删除,需要这样:
if exists (select * from dbo.sysobjects where id = object_id(N'uc_newpm') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
但是在mysql里面只需要 DROP TABLE IF EXISTS cdb_forums
15 mysql支持无符号型的整数,那么比不支持无符号型的mssql就能多出一倍的最大数存储
16 mysql不支持在mssql里面使用非常方便的varchar(max)类型,这个类型在mssql里面既可做一般数据存储,也可以做blob数据存储
17 mysql创建非聚集索引只需要在创建表的时候指定为key就行,比如:KEY displayorder (fid,displayorder) 在mssql里面必须要:create unique nonclustered index index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers
(username asc,appid asc)
18 mysql text字段类型不允许有默认值
19mysql的一个表的总共字段长度不超过65XXX。
20一个很表面的区别就是mysql的安装特别简单,而且文件大小才110M(非安装版),相比微软这个庞然大物,安装进度来说简直就是.....
21mysql的管理工具有几个比较好的,mysql_front,和官方那个套件,不过都没有SSMS的使用方便,这是mysql很大的一个缺点。
22mysql的存储过程只是出现在最新的版本中,稳定性和性能可能不如mssql。
23 同样的负载压力,mysql要消耗更少的CPU和内存,mssql的确是很耗资源。
24php连接mysql和mssql的方式都差不多,只需要将函数的mysql替换成mssql即可。
25mysql支持date,time,year类型,mssql到2008才支持date和time。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)