一 . 初识SQL语言
SQL (Structured Quqry Language) : 结构化查询语言 , 主要用于存取数据 , 查询数据 , 更新数据和管理关系数据库系统
SQL语言分为3种类型 , 分别为 :
1 . DDL语句 数据库定义语言(Data Definition Language) 一般为创建数据库 , 表 , 视图 , 索引 , 存储过程等
2 . DML语句 数据库操纵语言(Data Manipulation Language): 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
3 . DCL语句 数据库控制语言(Data Control Language): 例如控制用户的访问权限GRANT(授予权限)、REVOKE(收回权限)
问 :mysql的库文件、表文件默认的保存路径是?分别是以什么类型的文件存储在硬盘上?
答 :保存路径/var/lib/mysql
库文件类型:以目录的形式存储在/var/lib/mysql目录中
表文件:以普通文件的形式存储字库的目录中
二 . 库的基本操作
数据库的库表操作大致分为增删改查四个操作 , 即插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
1 . 创建数据库
语法 : create database 数据库名 ;
命名规则 : 区分大小写 , 具有唯一性 , 不能使用 create select 等关键字来命名 , 不能单独使用数字
例 : 创建一个名为db1的数据库
2 . 查看数据库 和 使用数据库
查看数据库 : show databases;
使用数据库 : use 数据库名
elect database(); #返回当前数据库的名字
从上图可以看到 , 列出的数据库有刚创建的db1数据库 , 使用数据库可以看到提示 : Database changed 数据库发生改变
3 . 删除数据库
语法 : Drop database 数据库名;
例 : 删除创建的db1库 , 并查看db1库是否存在
三 . 表的操作
1.创建表
语法 : create table 表名(字段名称 类型(值的范围))[存储引擎 字符集];
注 : 在同一张表中 , 字段名是不能相同的 , 并且创建表必须定义字段和类型
例 : 在test库中创建名为tb1的表
desc tb1 ; #查看tb1表的结构
2 . 在表中插入数据
语法 : insert into 表名[字段名] values(需要插入的数据) //插入的数据要与表的字段相匹配
例: 在tb1表中插入3条数据
(向指定的字段插入值 --- 例 :只插入编号和名字 insert into tb1(id , name) values(8 , 'qwer'))
3 . 查看表中的数据
语法 : select [表中的字段] from 表名 where [查询条件]
例 : 查看tb1表 (* 表示查询所有)
4 . 表的修改操作(alter)
在表中最后新增指定的列字段 : alter table 表名 add 字段名 数据类型 ;
在表中第一列或字段名A列之后新增指定的列字段 : alter table 表名 add 字段名 数据类型 [first|after 字段名A];
删除表中的某列字段 : alter table 表名 drop 字段名 ;
修改某列的属性[即字段名和数据类型] :
修改某列的数据类型 : alter table 表名 modify 字段名 新数据类型 [first|after 字段A];
修改某列的字段名和数据类型 : alter table 表名 change 旧字段名 新字段名 新数据类型 [first|after 字段名];
例 : 在name列的后面增加一个sex字段 , 指定类型为enum('m','f') ,增加后查看表的结构 //enum('m','f') 表示在sex字段中插入值只能为m或f , 不是这两个字母 , 插入数据时就会报错
5 . 表的删除操作
格式 : drop table [库名].表名
例 : 删除test库中的tb1这张表
删除tb1表并查看 , 可以看出tb1表已经删除 (如果不再test数据中就要使用 drop table test.tb1 来删除 , 记得看数据库当前路径是什么)