开源数据库MySQL DBA运维实战-SQL-1
一.SQL语言分类
- SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。 - 分类
DDL(data definition language): | DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER |
---|---|
DML(data manipulation language): | DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE |
DQL(Data Query Language )数据查询语言 SELECT | DQL语句 数据库查询语言: 查询数据SELECT |
DCL(Data Control Language): | DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE |
二.名词解释
- 数据库服务器
运行着数据库应用程序的设备
DELL R710+CENTOS+Mysql
硬件+系统软件+MYSQL软件 - 数据库(表(EXCEL)的管理单元)
默认数据库:
A.information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
B.performance_schema: 主要存储数据库服务器的性能参数
1.提供进程等待的详细信息,包括锁、互斥变量、文件信息;
2.保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;
3.对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期
C.mysql: 授权库,主要存储系统用户的权限信息
D.sys: 主要存储数据库服务器的性能参数
SYS database中,可以获取mem page、io 、latch/mutex/lock等各种性能数据,方便做peformance turning 和 troubleshooting。比如可以方便获取2个sql发生 lock block,用户占用的资源等信息。
E.创建需要的业务主库… - 表
记录的管理单元 - 记录(行)
信息的载体,字段的管理单元
张三,男,23,云计算工程师,月薪25K - 字段(列)
姓名,文字,不能为空
张三 - 类型
字符,数字,日期 - 约束
唯一,不能为空,自动增长 - 图示
三.DDL
1.DDL-库
1.1定义库
- 创建业务数据库
#a.语法
create database 数据库名;
create database discuz;
#b.数据库名要求
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字和特殊符号“如-"
正常的:用拼音或单词即可。
- 查看所有数据库
mysql>show databases;
1.2选择/进入数据库
#USE 数据库名
mysql>SELECT database(); #调用函数,查询当前库
1.3删除数据库
DROP DATABASE 数据库名;
1.4系统中的位置
/var/lib/mysql #数据库的实体,清理,备份
2.DDL-表
2.1创表目的
- 表是数据库存储数据的基本单位
- 表由若干个字段(列)组成
- 主要用来存储数据记录(行)
2.2操作数据库实例1
#创建1列的表格-序号
#创库
mysql> create database haha;
#使用库
mysql> use haha;
#创表1
#语法:创建 表格 表名t1 (列名id 类型int );
mysql> create table t1 (id int);
#查看所有表名
mysql> show tables;
#插入数据
#插入 到 表名t1 值 (1);
mysql> insert into t1 values (1);
#查询所有数据
#查询 所有列 从 表名t1
mysql> select * from t1;
#删除表
mysql> drop table t1;
2.3操作数据库实例2
#创建两列的表格-序号和姓名
#创建 表格 表名t2 (第一列名id 数字类型, 第二列名name 字符类型(长度))
mysql> create table t2 (id int, name varchar(20));
#查看表结构
mysql> show tables; #查看表名
mysql> select * from t2; #看表中的内容
mysql> desc t2; #查看表结构
#插入数据
#插入 到 表t2 值 (第一列信息,第二列信息);
mysql> insert into t2 values (1,'zhangsan'); #注意数字不能加引号,字符必须加引号(转义符)
#查询所有数据
mysql> select * from t2;
2.4操作数据库实例3
- 1.创建表
要求:
创建库school
创建表student1
语法:create table 表名(字段名1 类型,字段名2 类型,字段名3 类型 );
示例:
mysql> create database school; #创建数据库school
mysql> use school; #使用库
mysql> create table student1( id int, name varchar (20) , sex enum('m','f'), age int ); #创建一个表,四列
Query OK, 0 rows affected (0.03 sec)
- 2.查看表名
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student1 |
+------------------+
1 row in set (0.00 sec) #查看表名(需要进入一个数据库)
- 3.表中插入内容
#语法 insert into 表名 values(字段值列表...);
mysql> insert into student1 values (1,'zhangsan','m',33) ,
mysql> insert into student1 values (2,'lisi','f',20) ,
mysql> insert into student1 values (1,'wangwu','m',40) ,
-4.查看表内容
mysql> select * from student1; #查询表中所有字段的值
-5.查看表结构
desc student1; #注意表结构和表内容是两个概念。