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;
•
• 注意表结构和表内容是两个概念。