SQL(Structured Query Language 即结构化查询语言)
分类
DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DDL(data definition language)
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DML(data manipulation language)
DQL语句 数据库查询语言: 查询数据SELECT
DQL(Data Query Language )数据查询语言 SELECT
DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
DCL(Data Control Language)
名词解释
数据库服务器:
运行着数据库应用程序的设备
CENTOS+Mysql
硬件+系统软件+MYSQL软件
默认数据库
mysql>show databases ;
information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
performance_schema: 主要存储数据库服务器的性能参数
1.提供进程等待的详细信息,包括锁、互斥变量、文件信息;
2.保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;
3.对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期
mysql: 授权库,主要存储系统用户的权限信息
sys: 主要存储数据库服务器的性能参数
SYS database中,可以获取mem page、io 、latch/mutex/lock等各种性能数据,方便做peformance turning 和 troubleshooting。比如可以方便获取2个sql发生 lock block,用户占用的资源等信息。
创建需要的业务主库
表: 记录的管理单元
记录
信息的载体,字段的管理单元
张三,男,23,云计算工程师,月薪25K
字段:字段名,字段类型(长度),字段约束组成(可选)
姓名,文字,不能为空
类型:字符,数字,日期
约束: 不能为空,自动增长
DDL-库:
定义库
创建业务数据库
语法
CREATE DATABASE 数据库名;
CREATE DATABASE discuz;
数据库名要求:
- 区分大小写
- 唯一性
- 不能使用关键字如 create select
- 不能单独使用数字和特殊符号“如-"
- 正常的:用拼音或单词即可。
查看所有数据库: SHOW DATABASES;
选择/进入数据库
USE 数据库名
SELECT database();
调用函数,查询当前库
删除数据库
DROP DATABASE 数据库名;
系统中的位置: /var/lib/mysql/
数据库的实体: 清理、备份
数据类型
1.数值类型
整数类型 int
浮点数类型 float
小数
2.字符串类型
字符系列 CHAR和VARCHAR
枚举类型 ENUM
单选
集合类型 SET
多选
3.时间和日期类型
年 YEAR
日期 DATE
时间 TIME
日期和时间 DATETIME:
年 YEAR
日期 DATE
时间 TIME
日期和时间 DATETIME
操作数据库实例:
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(字段值列表…);
插入数据
insert into student1 values (1,‘zhangsan’,‘m’,33) ,
insert into student1 values (2,‘lisi’,‘f’,20) ,
insert into student1 values (1,‘wangwu’,‘m’,40) ,
4.查看表内容
mysql> select * from student1;
查询表中所有字段的值
5.查看表结构
desc student1;
注意:表结构和表内容是两个概念!!