开源数据库MYSQL DBA运维实战-SQL1语言
[TOC]
文章目录
一.SQL语言概述
什么是SQL语言
SQL(Structured Query Language)是“结构化查询语言”,SQL语言由IBM开发,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server 等。
作用
SQL语言主要用于存取数据,查询数据,更新数据和管理关系数据库系统,SQL语言由IBM开发,
分类
DDL(Data Definition Language)数据定义语言等:数据库,表,索引,存储过程;例如CREATE DROP ALTER
DML(Data Manipulation Language)数据操作语言:插入数据INSERT,删除数据DELETE,更新数据UPDATE
DQL(Data Query Language)数据查询语言:查询数据SELECT
DCL(Data Control Language)数据控制语言:例如用户的访问权限GRANT REVOKE
名词解释
1.数据库服务器
运行着数据库应用程序的设备:硬件+系统软件+MySql软件
2.数据库
默认数据库,可以说是一个容器,用来装表的,表的管理单元。
表可以理解为excl
3.记录(行)
信息的载体,字段的管理单元
4.字段(列)
字段名,字段类型(长度),字段约束组成(可选)
字段名:姓名文字不能为空
类型:字符,数字,日期
约束:不能为空,自动增长
二.DDL
DDL-库
定义库
1.1创建业务数据库
语法:CREANT DATABASE + 数据库名;
后面一定要加分号,如果没有加分号,回车,那就再输入一个分号回车也可以,视为同一行。
1.2数据库名要求
区分大小写
唯一性,已经存在名字不能再使用
不能使用关键字,如:create select
不能单独使用数字和特殊符号
正常的:用拼音或单词即可
1.3创建数据库
mysql> create database discuz;
Query OK, 1 row affected (0.00 sec)
1.4查看所有数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| discuz |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
选择/进入数据库
1.语法
进入数据库:use + 数据库名
调用函数,查询当前库,前提是进去库才能用:select database();
1.2示例:
mysql> use discuz
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| discuz |
+------------+
1 row in set (0.00 sec)
删除库
删除库请谨慎操作
1.语法
drop database +数据库名
1.2示例
mysql> drop database discuz;
Query OK, 0 rows affected (0.00 sec)
系统中的位置
数据库实体,备份清理数据库的位置
[root@192 ~]# ll -d /var/lib/mysql/
drwxr-x--x. 5 mysql mysql 4096 11月 20 11:14 /var/lib/mysql/
DDL-数据类型
数据类型的分类
MySql中的数据类型有很多,主要分为三类:数值类型,字符串类型,日期时间类型。通俗来讲要么写数,要么写字,要么写时间和日期
1.数值类型
整数类型 int
浮点数类型 float:小数
2.字符串类型
字符系列 CHAR和VARCHAR:char的长度不可变,varchar的长度可以增加。
枚举类型 ENUM:单选
集合类型 SET:多选
3.时间和日期类型
年 YEAR
日期 DATE
时间 TIME
日期和时间 DATETIME
DDL-表
创建表的目的
表是数据库存储数据的基本单位
表由若干个字段(列)组成
主要用来存储数据记录(行)
操作数据库示例
示例一:创建1列的表格-序号
1.创库
mysql> create database haha;
Query OK, 1 row affected (0.00 sec)
1.2使用库,在库里创建表,要进入库
mysql> use haha;
Database changed
1.3开始创建表:create table
mysql> create table t1 (id int);
Query OK, 0 rows affected (0.01 sec)
参数解释:
t1:表的名字
id:列的名字
int:类型
1.4查看表:show tables
mysql> show tables;
+----------------+
| Tables_in_haha |
+----------------+
| t1 |
+----------------+
1 row in set (0.00 sec)
1.5插入数据:insert into
mysql> insert into t1 values (1);
Query OK, 1 row affected (0.03 sec)
插入 到 表名t1 值 (1);
1.6查询所有数据
mysql> select * from t1;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
查询所有数据从表名t1
1.7删除表:删完该跑路了
mysql> drop table t1;
Query OK, 0 rows affected (0.00 sec)
示例二:创两列的表格-序号和姓名
1.创表
mysql> create table t2 (id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)
创建 表格 表名t2 (第一列名id 数字类型, 第二列名name 字符类型(长度))
1.2查看表结构
mysql> desc t2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
描述 表t2
1.3查询表所有数据,准确讲就是值
mysql> select * from t2;
Empty set (0.00 sec)
1.4插入数据,字符串要加双引号,数字不用加
mysql> insert into t2 values (1,"zhangsan");
Query OK, 1 row affected (0.00 sec)
插入 到 表t2 值 (第一列信息,第二列信息);
1.5查询所有数据
mysql> select * from t2;
+------+----------+
| id | name |
+------+----------+
| 1 | zhangsan |
+------+----------+
1 row in set (0.00 sec)
示例三:创建三列,创建库school,创建表student1
1.创库
mysql> create database school;
Query OK, 1 row affected (0.00 sec)
1.2进入库,创建表
mysql> use school
Database changed
mysql> create table student1 (id int,name varchar(20),sex enum('m','f'),age int);
Query OK, 0 rows affected (0.00 sec)
enum:枚举型
1.3查看表名
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student1 |
+------------------+
1 row in set (0.00 sec)
1.4查看表结构
mysql> desc student1;
+-------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | enum('m','f') | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
1.5插入数据
mysql> insert into student1 values (1,"zhangsan","m",33);
Query OK, 1 row affected (0.00 sec)
mysql> insert into student1 values (2,"lisi","f",23);
Query OK, 1 row affected (0.00 sec)
mysql> insert into student1 values (3,"wangwu","f",20);
Query OK, 1 row affected (0.00 sec)
1.6查看所有数据
mysql> select * from student1;
+------+----------+------+------+
| id | name | sex | age |
+------+----------+------+------+
| 1 | zhangsan | m | 33 |
| 2 | lisi | f | 23 |
| 3 | wangwu | f | 20 |
+------+----------+------+------+
3 rows in set (0.00 sec)