mysql安装及基础知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Stream_who/article/details/81543061

一、安装

1. 官网下载5.6.41版本        https://dev.mysql.com/downloads/mysql/

2. 解压到自己的文件夹        (我的路径是E:\mysql\mysql-5.6.41-winx64)

3. 复制根目录下文件my-defaulst, 重命名为my.ini, 新增如下配置

    # 设置3306端口
    port =3306
    # 设置mysql的安装目录
    basedir =E:\mysql\mysql-5.6.41-winx64
    # 设置mysql数据库的数据的存放目录
    datadir =E:\mysql\mysql-5.6.41-winx64
    # 允许最大连接数
    max_connections=200
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB

4. windows下以管理员身份运行cmd 

5. 安装mysql
    1) 切换盘符                 e:
    2) 进入到mysql的bin目录下    cd  E:\mysql\mysql-5.6.41-winx64\bin
    3) 安装                     mysqld --install, 提示Servuce successfully installed  (mysqld remove:移除mysql服务)
    4)启动mysql服务             net start mysql    (net stop mysql:停止mysql服务)

6. 进入mysql(第一次以root权限进入)

    mysql -u root -p (会输入密码,可以不输入,直接回车,不设置密码)

二、SQL操作(大部分和SQL相同,不再列举)

1. 进入mysql

    1) 本地连接        mysql -u user_name (-p)
    2)远程连接        mysql -u user_name -h(ip_name) (-p)

2. 用户管理(root权限下mysql数据库的user表)(\G  格式化输出)

    1)创建用户        create user user_name(@ip_address) identified by password
    2)删除用户        drop user user_name(@ip_address)
    3)修改用户        rename user old_user_name@ip_name to new_user_name@ip_name
    4)修改密码        set password for user_name@ip_namedo = password('new_password')

3. 建表

    create table table_name(

       column_name1  datatype ( 大部分一样  / auto_increment )

       ...


       )  engine = InnoDB default charset = utf8

4. 重命名表        alter table old_table_name rename new_table_name

5. root默认没有密码,重设root密码    mysqladmin -u root -p password new_password

三、数据类型

1. 数字类型

 1)整数      int, smallint, mediumint, bigint
 2)浮点数    float, double, real
 3)定点数    decimal(m,d)  (m 表示十进制数字总的个数, d表示小数点后面数字的位数)

2. 日期和时间

1date              YYYY-MM-DD
2) time              HH:MM:SS
3) datetime          YYYY-MM-DD HH:MM:SS
4) timestamp         YYYY-MM-DD HH:MM:SS(时间戳)        
5) year              YYYY

3. 字符串类型

1)字符串                            char, varchar
2)文本                              text, tinytext, mediumtext, longtext
3)二进制(可能用来存储、音乐等)      tinyblob, blob, mediumblob, longblob

四、MySQL与Oracle的区别

1. 物理方面的区别

1)Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高

2)Oracle支持大并发,大访问量,是OLTP最好的工具

3)安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能

2. 操作上的区别

1) 主键

(1)Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长
(2)Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可

2) 单引号的处理

(1)MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号

3) 翻页的SQL语句的处理

(1)MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;

(2)ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用 ROWNUM<100, 不能用ROWNUM>80

4) 长字符串的处理

(1)长字符串的处理oracle也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用 ORACLE里自带的DBMS_LOB程序包

(2)oracle插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作

5) 空字符的处理

(1)MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容

(2)按MYSQL的NOT NULL来定义ORACLE表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串

6)字符串的模糊比较

(1)MYSQL里用 字段名 like ‘%字符串%’,ORACLE里也可以用 字段名 like ‘%字符串%’ 但这种方法不能使用索引, 速度不快

7)Oracle实现了ANSII SQL中大部分功能,如,事务的隔离级别、传播特性等而Mysql在这方面还是比较的弱

五、忘记root用户密码

1. 管理员身份 net stop mysql

2. cd D:/Program Files/MySQL/MySQL Server 5.6/bin

3. 接着执行: mysqld --skip-grant-tables(注意后面没有分号;)

4. 再次打开一个新的cmd窗口,同样切换至MySQL安装bin目录下

5. 运行命令:mysql -u root -p (提示输入密码,这时不需要输入密码,直接回车即可成功进入mysql)

6. update mysql.user set password=PASSWORD('root') where User='root'     (设置用户密码)

7. 最后刷新一下权限表:flush privileges      可以重新登录了

参考网址

MySQL基础(非常全)

21分钟 MySQL 入门教程

MySQL 中的数据类型介绍

Mysql与Oracle区别

mysql忘记root用户密码如何进行重置

注:文章是经过参考其他的文章然后自己整理出来的,有可能是小部分参考,也有可能是大部分参考,但绝对不是直接转载,觉得侵权了我会删,我只是把这个用于自己的笔记,顺便整理下知识的同时,能帮到一部分人。
ps : 有错误的还望各位大佬指正,小弟不胜感激

猜你喜欢

转载自blog.csdn.net/Stream_who/article/details/81543061