MySQL基础——DDL语句
MySQL
MySQL是一个关系型数据库管理系统,其数据是保存在不同的数据表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
SQL
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,SQL语言可以分为:
-
DDL(Data Definition Language)语言:数据定义语言,用来定义数据库对象,如数据库、数据表和数据字段;
-
DML(Data Manipulation Language)语言:数据操作语言,用来对数据库表中的数据进行增删改查操作;
-
DQL(Data Query Language)语言:数据查询语言,用来查询数据库中表的记录;
-
DCL(Data Control Language)语言:数据控制语言,用来创建数据库用户、控制数据库的访问权限。
DDL——数据定义
数据库操作
连接
在对数据库操作之前,需要输入如下代码连接数据库:
mysql -u root -p
如下图所示:
查询
输入如下代码查询所有数据库:
show databases;
输出结果如下图所示:
输入如下代码查询当前数据库:
select database();
输出如下图所示:
由于我们还没使用数据库,所以结果为NULL。
输入如下代码查看数据库编码:
show variables like 'character%';
如下图所示:
其中:
-
character_set_client 为客户端编码方式;
-
character_set_connection 为建立连接使用的编码;
-
character_set_database 为数据库的编码;
-
character_set_results 为结果集的编码;
-
character_set_server 为数据库服务器的编码;
使用
使用数据库语法如下:
use 数据库名;
如下图所示:
创建
创建数据库的语法如下:
create database [if exists] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则] ;
方括号中的内容是可填可不填。
当不填时,示例代码如下图所示:
注意:
-
不填if exists时,当创建的数据库存在会发生报错,所以最好填if exists;
-
不填字符集时,创建的数据库默认的字符集为latin1;
删除
删除数据库的语法格式如下:
drop database [if exists] 数据库名;
同样:方括号可以填或不填。
如下图所示:
数据表操作
创建
创建数据表语法格式如下:
create table 表名(
字段1 字段1类型 [comment 字段1注释],
字段2 字段2类型 [comment 字段2注释],
字段3 字段3类型 [comment 字段3注释],
......
字段n 字段n类型 [comment 字段n注释]
)[comment 表注释];
注意:方括号是可选参数,在最后一个字段中没有逗号。
示例代码如下:
create table students(
uid int comment '学生id',
uname varchar(10) comment '学生名',
upassword varchar(10) comment '学生密码'
)comment '学生表';
如下图所示:
这里我们创建了名为students的数据表。
查询
查询当前数据库所有数据表,代码如下:
show tables;
如下图所示:
在上一步中,我们使用mytest数据库并在数据库中创建了名为students的数据表,所以我们查询的当前数据库的所有表只有students数据表。
查询表结构的语法如下:
desc 表名;
示例代码如下:
use mytest; #选择mytest数据库
desc students; #查看表结构
如下图所示:
查询指定表的建表语句语法如下:
show create table 表名;
示例代码如下:
show create table students;
如下图所示:
修改
添加数据表字段
添加数据表字段的语法如下:
alter table 表名 add 字段名 类型(长度) [comment 字段注释] [约束]
示例代码如下:
use mytest; # 使用mytest数据库
alter table students add sex varchar(2) comment '性别'; # 在students数据表中添加sex字段
desc students; #查询数据表结构
如下图所示:
这样我们就成功添加了名为sex的字段了。
修改数据表字段类型
修改数据表字段类型语法如下:
alter table 表名 modify 字段名 字段新数据类型(长度);
示例代码如下:
use mytest; # 使用mytest数据库
alter table students modify upassword int(15); #修改students数据表中的upassword字段的字段类型为int
desc students; #查看students数据表结构
如下图所示:
修改字段名、字段类型
修改字段名、字段类型语法如下:
alter table 表名 change 旧字段名 新字段名 字段类型(长度) [comment 注释] [约束]
示例代码如下:
alter table students change upassword upwd int(30) comment '学生密码';
如下图所示:
修改数据表名
修改数据表名语法如下:
alter table 表名 rename to 新表名;
示例代码如下:
alter table students rename to students_table;
如下图所示:
删除
删除数据表字段
删除数据表字段语法如下:
alter table 表名 drop 字段名;
示例代码如下:
use mytest; #使用mytest数据库
alter table students_table drop sex; #删除students_table数据表中的sex字段
如下图所示:
删除数据表
删除数据表语法如下:
truncate table 表名; #删除指定表,并重新创建该表
drop table [if exists] 表名; #删除数据表
示例代码如下:
use mytest; #使用mytest数据库
truncate table students_table; #删除students_table数据表并重新创建该表
show tables; #查询当前数据库所有表
drop table if exists stdenets_tables; #当students_tables数据表存在时删除
show tables; #查询当前数据库所有表
如下图所示:
END!