SQL语句主要分为3类:
DDL(Data Definition Languages):数据定义语言,这些语句主要定义了不同的数据段,数据库,表,列,索引等,常用的关键词:create,drop,alter等。
DML(Data Manipulation Language):数据操纵语言,用于添加,删除,更新和查询数据库记录的。常用关键词:insert,delete,update,select等。
DCL(Data Control Language):数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库,表,字段,用户的访问权限和安全级别。主要关键词包括:grant,revoke等。
DDL语句
DDL语句是对数据库内部的对象进行创建,修改,删除和DML最大的区别就是:DML只是对表中的数据进行操作,但是DDL是对表的结构进行操作和对其他数据库对象进行操作。
首先我们来登录MySQL,这里假定MySQL已经安装并且服务也正常启动
我用的数据库是MariaDB,其实和MySQL几乎一样,有关他俩的区别大家可以看网上的其他资料来了解。这里我就把MariaDB当做MySQL来操作了。
首先我们来进行创建数据库:create database test1;
用use test1来选择要操作的数据库。
可以用show tables命令来查看test1的表,因为这个是刚创建的数据库,查看的结果应该为Empty。
删除数据库的语法是 drop database test1;
这里操作成功却显示“0, rows affected”,这个提示可以不用管。MySQL中的drop操作显示的都是“0, rows affected”。
创建表的方式:
CREATE TABLE tablename(
column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints,
column_name_3 column_type_3 constraints,
……….
column_name_n column_type_n constraints,
)
MySQL中的表名是以目录的形式存在磁盘中的,所以tablename的命令规则就是目录的命名规则。column_name表示列的名字,column_type表示列的数据类型,constraints表示列的约束。
这里我们创建一个员工表emp。
ename:员工名称
hiredate:入职日期
sal:薪水
deptno:部门号
我们可以用desc emp的命令来查看刚才创建的表结构
虽然desc可以看表定义,但是信息还是不全面,如果要看更详细的信息,就需要看创建表的sql语句了,可以使用命令:show create table emp \G;
用show create table emp \G; 除了可以看到表的定义信息外,还可以看到engine(存储引擎)和charset(字符集)。“\G”选项是使得记录能够按照字段竖向排列,以便更好的显示内容较长的记录。
删除表命令:drop table emp;
修改表:
1.修改表类型:
命令:ALTER TABLE tablename MODIFY[COLUMN] column_definition[FIRST|AFTER col_name];
其中 alter table modify是操作表结构的关键词,column_definition是要修改列的类型,[FIRST|AFTER col_name]是修改后的列放在所放的位置
这里我们将ename的类型从varchar(10)修改成了varchar(20);
2.添加表字段 :
命令:ALTER TABLE tablename ADD[COLUMN] column_definition[FIRST|AFTER col_name];
这里我们添加了一个age字段,注意after ename ,所起的作用就是把age列放在了ename后面,否则默认将放在最后面。
3.字段改名
命令:ALTER TABLE tablename CHANGE[COLUMN] old_col _column column_definition[FIRST|AFTER col_name];
old_col _column 是老字段名
这里我们把age改名为age1并把类型长度增加了1.
change和modify都可以修改表的定义,但是change后面需要写两次列名,不方便,change的优点是可以修改列的名称,modify不能。
4.删除表字段:
命令:ALTER TABLE tablename DROP[COLUMN] col_name;
这里我们删除了刚才添加并修改名字的age1字段。