简介
MySQL数据库
- 一款深受欢迎的开源关系型数据库
- Oracle旗下的产品
- 遵守GPL协议,可以免费使用与修改
- 特点
- 性能卓越、服务稳定
- 开源、无版权限制、成本低多线程、多用户
- 基于CIS(客户端/服务器)架构
- 安全可靠
MySQL商业版与社区版
- MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用
- MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维护,可以免费使用
- 两者区别
- 商业版组织管理与测试环节更加严格,会比社区版更稳定,
- 商业版不遵守GPL,社区版遵从GPL可以免费使用
- 商业版可获得7*24小时的服务,社区版则没有
MySQL产品阵营
- 第一阵营:5.0-5.1阵营,可说是早期产品的延续
- 第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能
- 第三阵营:6.0-7.1阵营,就是MySQL Cluster版本,为适应新时代对数据库的集群需求而开发
MySQL基础命令
查看已存在数据库mysql>SHOW DATABASES 查看mysql默认4个数据库
- information_schema:定义访问数据库元数据的方式。数据库名和表名,列的数据类型、访问权限等。
- mysql:核心数据库,负责存储数据库用户、权限、关键字等用户自己需要使用的控制和管理信息。
- performance_schema:数据库的性能参数,存储引擎等。
- sys:sys系统库下包含许多视图,它们以各种方式对performance_schema表进行聚合计算展示。
查看当前数据库中有哪些表
mysql> use mysql;
mysql> show tables;
查看表的结构
user为表
mysql> use mysql;
mysql> describe user;
SQL数据库语言的分类
- DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如 CREATE、ALTER、DROP。
- DML (Data Manipulation Language,数据操纵语言):用来插入、删除和修改数据库中的数据,如NSERT,UPDATE、DELETE。
- DQL (Data Query Language,数据查询语言):用来查询数据库中的数据,如 SELECT。
- DCL (Data Control Language,数据控制语言)∶"用来控制数据库组件的存取许可、存取权限等,如 coMAI.ROLLBACK、GRANT、REVOKE。
DDL命令
- 创建新的数据库
mysql> create database auth;
- 创建新的表
CREATE TABLE表名(字段1名称类型,字段2名称类型,…,PRIMARY KEY(主键名))
mysql> use auth;
mysql> create table users (name char(16) not null, passwd char(48) default", primary key(name));
- 删除一个数据表
mysql> drop table auth.users;
- 删除一个数据库
mysql> drop database auth;
DML命令
- 插入数据记录
insert into 表名(字段1, 字段2, …) VALUES(字段1的值, 字段2的值,…)
mysql> use auth;
mysql> insert into users(user_name, user_passwd) values('zhangsan', password ('123456'));
或
mysql> insert into users values('lisi', password('654321'));
- 查询数据记录
SELECT字段名1,字段名2,…from 表名 where条件表达式
mysql> select * from auth.users;
mysql> select name, passwd from auth.users where user_name='zhangsan';
- 修改数据记录
UPDATE表名SET字段名1=字段值1[,字段名2=字段值2]WHERE条件表达式
mysql> updata auth. users SET user_passwd=PASSWORD(’'')WHERE user_name= ' lisi';
mysq1> select * from auth.sers;
- 修改数据库密码
mysq1> updata mysql.user set
authentication_string=passwd('123457') where user='root';
[root@www ~]# mysqladmin -u root -p'123457’ password123456'
- 删除数据库记录
delete from表名where 条件表达式
mysql> delete from auth.users where user_name='lisi';
mysql> select * from auth.users;