MySQL数据库基础
数据库分类
关系型数据库:MySQL、Oracle、SQL server...
非关系型数据库:Redis、Mongodb、Mrmcached...
安装
Linux:YUM安装、tar.gz安装
Windows:软件安装如SQLyog、navicat等
MySQL基础
SQL、DB、DBMS分别是什么,他们之间的关系?
DBMS—(执行)—>SQL—(操作)—>DB(DBMS负责执行SQL语句,通过执行sql语句来操作DB中的数据)
SQL:结构化数据语言,是一门标准通用的语言。标准的SQL适合用于所有的数据库产品。
SQL属于高级语言,简单易懂。
SQL语句在执行的时候,实际上内部也会先编译,然后在执行(SQL语句的编译有DBMS完成)
DB:DataBase(数据库,数据库实际上以硬盘的形式存在)
DBMS:Database Management system(数据库管理系统,常见的DBMS有:MySQL、Oracle、DB2、Sybase、SQL server)
表(table)
table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强
表中包括行、列
SQL语句分类
DQL(数据查询语言):查询语句,凡是select语句都是DQL
查询所有:select * from 表名 where 条件;
不能重复查询:select distinct 列名 from 表名 where 条件;
连接查询:select concat(列名1,列名2) from 表名; || select group_concat(列名1,列名2) from 表名;
列起别名:select 列名 as 显示列名 from 表名;
模糊查询:select * from 表名 where 列名 like '%字符串%';
升序与降序:select * from 表名 order by 字段名 ASC(升序默认);
select * from 表名 order by 字段名 DESC;
扩展:limit——限定输出范围,or、and(或、且),order by——探测数据列的范围
DML(数据操作语言):insert、delete、update,对表中的数据进行增删改
插入数据:insert into 表名(列类型) values(值);
更新数据:update 表名 set 列名=值 where 条件;
删除数据:delete from 表名 where 条件;
扩展:数据库引擎5.5版本之前,默认的引擎是MyISAM;5.5版本后,包含5.5版本,默认的引擎是INNODB。MyISAM:表级锁,不支持事务;INNDB:行级锁,支持事务。
DDL(数据定义语言):create、drop、alter,对表结构的增删改查
创建数据库:create database 数据库名;
删除数据库:drop database 数据库名; (注意:一般情况下,企业不会删除数据库,而是改名字)
修改数据库字符集:alter database 数据库名 character set 字符集;
查看数据库:
a.查看所有数据库:show database;
b.查看数据库定义:show create database 数据库名;
c.查看当前正在使用的数据库:select database();
选中数据库:use 数据库名;
扩展:1.修改表名:alter table 表名 rename 新表名;
2.添加表内字段:alter table 表名 add(列名 列类型);
3.删除表内字段:alter table 表名 drop 列名;
4.修改列类型:alter table 表名 modify 列名 列类型;
DCL(数据控制语言):grant授权、revoke撤销权限等
设置初始密码
mysqladmin -uroot password '密码';(企业里密码设置在符合复杂性要求,至少包含数字、下划线、特数字符,字母大小写等,长度大于8位。
登录mysql
mysql -uroot -p '密码' (不推荐)
mysql -uroot -p (推荐)
用户授权:grant 权限 on 数据库名称.* to '用户名'@'ip地址' identified by '密码';
新建用户:create user '用户名'@'ip地址' identified by '密码';
用户收权:revoke 权限 on 数据库名.* from '用户名'@'ip地址';
查看用户权限:show grants for '用户名'@'ip地址';
删除用户权限:drop user '用户名'@'ip地址';
TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction)