mysql基础

数据库

数据库相关概念
数据库服务器(本质就是一台计算机,该计算机上安装有数据库管理软件的服务端)
数据库管理系统RDBMS(本质就是一个C/S架构的套接字软件)
库(文件夹)---->数据库
表(文件)
记录:抽取一个事物的所有典型的特征/数据

数据库管理软件分类
关系型:有表结构,存取数据前必须先定义表结构,存数据必须按照字段的类型或者约束来
典型代表:MySQL,Oracle,DB2,SQL Server
非关系型:
存取数据都是采用key:value的形式
代表:mongodb,redis

基本管理(windows平台)

1、安装
2、加环境变量
3、把mysqld软件做成系统服务
注意:制作之前先把mysqld关掉
tasklist |findstr mysqld
taskkill /F /PID 8372
制作:
mysqld --install
查看:
windows+r 输入services.msc

4、启动:
未制作系统服务的启动方式:
1、启动服务端 mysqld
2、启动客户端
mysql -uroot -p -h127.0.0.1 -P 3306
如果是在本机登录mysqld服务端可以简写:
mysql -uroot -p
制作完系统服务后就可以鼠标点击启动或关闭mysql:
windows+r 输入services.msc 找到mysql,启动或关闭

5、破解管理员密码
1、先关闭mysqld服务端
2、以跳过授权表的方式在命令行中启动mysqld服务端
mysqld --skip-grant-tables
3、客户端直接以无密码的方式登录root用户,修改密码
mysql -uroot -p
update mysql.user set password=password("123") where user="root" and host="localhost"; flush privileges;(权限刷新)
4、在命令行中用taskkill杀死mysqld服务,然后正常启动mysqld
taskkill /F /PID 131312

6、统一字符编码
1、在mysql安装目录下新建my.ini文件
2、修改my.ini

1      [mysqld]
2 character-set-server=utf8
3 collation-server=utf8_general_ci
4 [client]
5 default-character-set=utf8
6 [mysql]
7 default-character-set=utf8

3、重启mysqld
4、客户端登录,输入s查看结果

基本SQL语句

文件夹(库)

1create database db1 charset utf8;

1 alter database db1 charset gbk;

1   查看所有库的库名
2 show databases;
3 单独查看某一个库的信息
4 show create database db1;

1drop database db1;

文件(表)
首先切换文件夹:

1use db1;
2select database(); #查看当前所在文件夹、

1create table t1(id int,name char);

1alter table t1 modify name char(16);

1    查看当前库下所有的表名
2 show tables;
3 查看t1表的详细信息
4 show create table t1;
5 查看表结构
6 desc t1;

1 drop table t1;

文件的一行内容(记录)

1insert into db1.t1 values
2(1,'egon'),
3(2,'alex'),
4(3,'lxx');

1update db1.t1 set name='sb' where id > 1;

1select id,name from db1.t1;

1delete from db1.t1 where name = "SB" ;

存储引擎

什么是存储引擎
数据库中不同类型的表,会对应mysql不同的存取机制,表类型又称为存储引擎

存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)
在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎

SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每 个数据库都有这么多存储引擎。MySQL 的插件式存储引擎可以让存储引擎层的开发人员设 计他们希望的存储层,例如,有的应用需要满足事务的要求,有的应用则不需要对事务有这 么强的要求 ;有的希望数据能持久存储,有的只希望放在内存中,临时并快速地提供对数据 的查询。

存储引擎的使用
方法1:建表时制定

1MariaDB [db1]> create table innodb_t1(id int,name char)engine=innodb;
2MariaDB [db1]> create table innodb_t2(id int)engine=innodb;
3MariaDB [db1]> show create table innodb_t1;
4MariaDB [db1]> show create table innodb_t2;

方法2:在配置文件中指定默认的存储引擎

1/etc/my.cnf
2[mysqld]
3default-storage-engine=INNODB
4innodb_file_per_table=1

查看

1[root@egon db1]# cd /var/lib/mysql/db1/
2[root@egon db1]# ls
3db.opt innodb_t1.frm innodb_t1.ibd innodb_t2.frm innodb_t2.ibd

小练习

1MariaDB [db1]> create table t1(id int)engine=innodb;
2MariaDB [db1]> create table t2(id int)engine=myisam;
3MariaDB [db1]> create table t3(id int)engine=memory;
4MariaDB [db1]> create table t4(id int)engine=blackhole;
5MariaDB [db1]> quit
6[root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据
7db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm
8#memory,在重启mysql或者重启机器后,表内数据清空
9#blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录
原文地址:https://www.cnblogs.com/guodengjian/p/9003422.html