SQL语言分类 SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。 分类 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): 名词解释 数据库服务器 运行着数据库应用程序的设备 DELL R760+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,用户占用的资源等信息。 创建需要的业务主库… 表(EXCEL)的管理单元 表 记录的管理单元 记录(行) 信息的载体,字段的管理单元 张三,男,23,云计算工程师,月薪25K 字段(列) 字段名,字段类型(长度),字段约束组成(可选) 姓名,文字,不能为空 张三 类型 字符,数字,日期 约束 不能为空,自动增长 图示
DDL DDL-库 定义库 创建业务数据库 语法 CREATE DATABASE 数据库名; CREATE DATABASE discuz; 数据库名要求 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字和特殊符号“如-" 正常的:用拼音或单词即可。 查看所有数据库 SHOW DATABASES; 选择/进入数据库 USE 数据库名 SELECT database(); 调用函数,查询当前库 删除数据库 DROP DATABASE 数据库名; 系统中的位置 /var/lib/mysql/ 数据库的实体 清理 备份 数据类型 1.数值类型 整数类型 int 浮点数类型 float 小数 2.字符串类型 字符系列 CHAR和VARCHAR char的长度不可变。 varchar的长度可以增加。 枚举类型 ENUM 单选 集合类型 SET 多选 3.时间和日期类型 年 YEAR 日期 DATE 时间 TIME 日期和时间 DATETIME DDL-表 创表目的 表是数据库存储数据的基本单位, 表由若干个字段(列)组成, 主要用来存储数据记录(行)。 操作数据库实例1 创建1列的表格-序号 创库 create database haha; 使用库 use haha; 创表1 创建 表格 表名t1 (列名id 类型int ); CREATE TABLE t1 (id int); 查看所有表名 show tables; 插入数据 插入 到 表名t1 值 (1); INSERT INTO t1 VALUES (1); 查询所有数据 查询 所有列 从 表名t1 SELECT * FROM t1; 删除表 drop table t1; 操作数据库实例2 创两列的表格-序号和姓名 创建 表格 表名t2 (第一列名id 数字类型, 第二列名name 字符类型(长度)) create table t2 (id int, name varchar(20)); 查看表结构 描述 表t2 desc t2; 总结 mysql> show tables; 查看表名 mysql> select * from t2; 后续讲解。看表中的内容 mysql> desc t2; 查看表结构 插入数据 插入 到 表t2 值 (第一列信息,第二列信息); INSERT INTO t2 VALUES (1,“zhangsan”); 注意 数字不能加引号 字符必须加引号(转义符) 查询所有数据 select * from t2; 操作数据库实例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(字段值列表…); 插入数据 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;
注意表结构和表内容是两个概念。