mysql基础(一)

2018-08-30  本文已影响0人  Python野路子
计算机是如何处理数据的?

主要把数据存储在磁盘和内存中。

概念

按照一定的数据结构来存储和管理数据的仓库。

分类

  1. 关系型数据库(SQL)
    存储方式固定,安全。
  2. 非关系型数据库(NoSQL (Not Only SQL))
    存储方式比较灵活,存储数据的效率比较高, 不太安全。

区别

image.png

说明

MySQL简介

MySQL是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

概念和特点

  • 关系型数据库:采用关系模型来组织数据的数据库
  • 关系:一张二维表,每个关系都有一个关系名,就是表名
  • 模型:行和列(二维),具体指字段跟字段信息

2,常见数据库

数据库类型 特性 优点 缺点
关系型数据库SQLite、Oracle、mysql 1、关系型数据库,是指采用了关系模型来组织数据的数据库;2、关系型数据库的最大特点就是事务的一致性;3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;4、支持SQL,可用于复杂的查询。 1、为了维护一致性所付出的巨大代价就是其读写性能比较差;2、固定的表结构;3、高并发读写需求;4、海量数据的高效率读写;
非关系型数据库MongoDb、redis、HBase 1、使用键值对存储数据;2、分布式;3、一般不支持ACID特性;4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 1、无需经过sql层的解析,读写性能很高;2、基于键值对,数据没有耦合性,容易扩展;3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。 1、不提供sql支持,学习和使用成本较高;2、无事务处理,附加功能bi和报表等支持也不好;

mysql中的数据

image.png

MySQL组织数据的基本格式

image.png

MySQL基本使用

MySQL不区分大小写,但是系统默认大写为系统代码,小写为程序员代码

进入与退出

修改编码

show variables like '%char%';   #查看当前使用的编码

1.打开配置文件:
   vim /etc/mysql/mysql.conf.d/mysqld.cnf

2.在[client]后面和[mysqld]后面分别添加 :
    [client]  
    default-character-set=utf8
    [mysqld]  
    character-set-server=utf8  
  
3.重启mysql:
    service mysql restart

mysql重置密码

#跳过权限启动mysql
    
3.重启mysql
    service mysql restart

4.用root登录,不用输密码
    mysql -uroot -p

5.修改密码
    use mysql       #先随便选择一个库
    update mysql.user set authentication_string=password('juhao') where user='root';
    update mysql.user set plugin='mysql_native_password';
    flush privileges ;

6.打开配置文件,将第4步添加的删掉,重启mysql服务

创建用户

#创建用户
mysql> CREATE USER 'xiaobai'@'%' IDENTIFIED BY 'qwe123';
@'%'表示远程连接;
#给用户赋予权限
mysql> GRANT ALL  ON *.* TO 'xiaobai'@'%';
#使更改立即生效
mysql> FLUSH PRIVILEGES;
#退出
mysql> \q

查看在哪个数据库里:
SELECT DATABASE();
查看当前用户:
SELECT USER();
查看有哪些数据库:
SHOW DATABASES; #查看mysql有哪些数据库;

库级操作

创建数据库,数据库已经存在会保存 可以用create database if not exists mydb;数据库已存在不会报错,没有会创建

表级操作

表中数据的操作

添加数据

查看数据

修改

注意: 一定要带where条件,不然会修改表中全部数据;

删除

注意: 一定要带where条件,不然会删除表中全部数据;
truncate table tb1; 数据量大相对于delete速度快;

2,查看命令

select user();                      # 查看当前用户
select database();                  # 查看当前位于哪个数据仓库

mysql数据类型

数据类型 代表内容 事例
int 整型 id int
varchar(20) 指定长度,最多65535个字符。变长(超出会自动截掉) name varchar(20)(插入20个字符)
char(4) 指定长度,最多255个字符。定长 sex char(4)(不管插入几个字符都会占4个)
double(4,2) 双精度浮点型,m总个数,d小数位 price double(4,2)
text 可变长度,最多65535个字符 detail text
datetime 日期时间类型YYYY-MM-DD HH:MM:SS dates datetime
enum('good','not good') 枚举,在给出的value中选择 ping enum('good','not good')
create table tb2(
    id INT,
    name VARCHAR(20),   #指定长度,最多65535个字符。   ***变长,可长可短
    sex CHAR(4),         #指定长度,最多255个字符。     ***定长,固定值
    price DOUBLE(4,2),  #双精度浮点型,m总个数,d小数位
    detail text,            #可变长度,最多65535个字符
    dates DATETIME,     #日期时间类型 YYYY-MM-DD HH:MM:SS
    ping  ENUM('好评','差评')  #枚举, 在给出的value中选择,只能在这其中选择一种插入修改;
    -> );
insert into tb2 value( 1,'裤子','男',20.0,'这条裤子超级好!!!',now(),'好评');  --如果需要自己传时间,则需要按照时间格式YYYY-MM-DD HH:MM:SS
上一篇下一篇

猜你喜欢

热点阅读