在这里引入官方的三个概念。了解DDL、DML、DCL。
1.DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、
数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter
等。
2.DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查
询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和
select 等。
3.DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和
访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的
语句关键字包括 grant、revoke 等。
了解一些名词总是没有错的,不然你会使用却不知道这些叫什么,总是会有点尴尬。
现在我们开始学习数据库的基础
我使用的是命令行创建,因为使用的系统是deepin,我已经放弃了windos,虽然我电脑上也有win10系统,但是开发我已经不会在使用windos了,当然公司配置的也是windos,所以用不起不是很爽。总之使用命令行有一种装逼的感觉。哈哈。当然你们也可以使用windos的dos命令行或者一些工具软件编写,我建议学习还是从命令行入手,因为有了工具,很多人会选择操作GUI界面去创建表,这样很不好。
说了很多多余的话,现在我们开始学习MySQL命令吧!
1.创建数据库
CREATE DATABASE 数据库名; //用来创建数据库的命令
注:(数据库语法以分号“;”结束,不区分大小写,但是我们最好把数据库本身的命令大写,我们自己创建的库名,表名,字段名等小写)
显示“Query OK, 1 row affected (0.00 sec)”
其中Query OK代表执行成功;1 row affected 代表数据库中只影响了一行;0.00 sec代表操作执行的时间。
当然你也可以通过命令查看当前有多少个数据库。
show databases; //注意databases后面的s,因为存在的数据库不是一个,而且这个命令也可以查看表。
information_schema:主要存储了系统中的一些数据库对象信息。比如用户表信息、列信
息、权限信息、字符集信息、分区信息等。
cluster:存储了系统的集群信息。
mysql:存储了系统的用户权限信息。
sys:系统自动创建的测试数据库,任何用户都可以使用。
2.选择操作的数据库
数据库已经创建成功,可以使用如下命令选择要操作的数据库。
USE 数据库名;
show tables; //查看数据库中存在的表,仍然要注意tables后面的s。
因为我们刚新建的数据库中还没有创建表,所以我切换到了其他数据库中,展示"show tables"。
3.删除数据库
drop database 数据库名;
注意:数据库删除后,下面的所有表数据都会全部删除,所以删除前一定要仔细检查并做好相应备份.
4.创建表
CREATE TABLE 表名 (列名1 列的数据类型 列的约束条件,
列名2 列的数据类型 列的约束条件 ,
……列名n 列的数据类型 列的约束条件) //约束条件指该字段(列)是否可以为null
我们创建一个名为emp的表为它添加一个"ename"列和"age"列并且为它们设置基本类型,并给它们添加约束条件让它们的值不允许为Null.并且通过"desc"命令查看表的内容。
desc 表名; //查看表的内容
desc可以查看表的内容但是不全面,为了更加完整的查看表的信息,我们可以通过”show create table “命令来查看表的创建命令。
show create table 表名 \G; //查看创建表的sql语句
//“\G”选项的含义是使得记录能够按照字段竖着排列,对于内容比较长的记录更易于显示
5.修改表
--5.1修改表类型modify
alter table 表名 modify 修改的段名(列名) 段的属性;
注意观察几组表的内容的变化,发现modify修改的是表的某一段的全部值,当约束条件没有输入时,默认改变为可以为null;
--5.2增加表字段
alter table 表名 add column 字段名 字段类型 字段约束条件; //约束条件不加时默认为其值可以为null
--5.3删除表字段
alter table 表名 drop column 字段名;
--5.4修改表的字段名
alter table 表名 change 原字段名 新字段名 字段类型 约束条件; //修改的时候可以改变其他条件也可以只修改字段名
注意:change 和 modify 都可以修改表的定义,不同的是 change 后面需要写两次列名,不方便。
但是 change 的优点是可以修改列名称,modify 则不能。
--5.5修改字段排列顺序
前面介绍的的字段增加和修改语法(ADD/CNAHGE/MODIFY)中,都有一个可选项 first|after+字段名,这个选项可以用来修改字段在表中的位置,
默认 ADD 增加的新字段是加在表的最后位置,而 CHANGE/MODIFY默认都不会改变字段的位置
alter table 表名 add 新字段名 字段类型 约束条件 first|(after 已存在字段名); //新字段名表示要添加的字段,”已存在字段名“用来确定添加新字段的位置。在原本”已存在字段“后面添加新字段名 first|after选择一个作为条件
alter table 表名 modify 字段名 字段类型 约束条件 first|(after 已存在字段名);
6.修改表名
ALTER TABLE 原表名 RENAME 新表名;
修改表名后,原先的旧的表名就无法使用了。
7.删除表
DROP TABLE 表名;
8.命令总结
//用来创建数据库的命令
CREATE DATABASE 数据库名;
//查看数据库和表
show databases|tables;
//选择要操作的数据库
USE 数据库名;
//删除数据库
drop database 数据库名;
//创建表
CREATE TABLE 表名 (列名1 列的数据类型 列的约束条件,
列名2 列的数据类型 列的约束条件 ,
……列名n 列的数据类型 列的约束条件)
//查看表的内容
desc 表名;
//查看创建表的sql语句
show create table 表名 \G;
//修改表类型modify
alter table 表名 modify 修改的段名(列名) 段的属性;
//增加字段
alter table 表名 add column 字段名 字段类型 字段约束条件;
//删除字段
alter table 表名 drop column 字段名;
//修改表的字段名
alter table 表名 change 原字段名 新字段名 字段类型 约束条件;
//修改字段排列顺序
1.alter table 表名 add 新字段名 字段类型 约束条件 first|(after 已存在字段名);
2.alter table 表名 modify 字段名 字段类型 约束条件 first|(after 已存在字段名);
3.alter table 表名 change 原字段名 新字段名 字段类型 约束条件 first|(after 已存在字段名);
//修改表名
ALTER TABLE 原表名 RENAME 新表名;
//删除表
DROP TABLE 表名;
注:DDL 是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的操作语言。它和DML 语言的最大区别是DML 只是对表内部数据
的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象。DDL 语句更多的被数据库管理员(DBA)所使用,一般的开发人员很少使用。
小白出品!不喜勿喷!
生活总会给你第二次机会,叫明天。