目录与学习目标
1:操作database的SQL
2:操作表结构的SQL(重要)
1:修改表结构(注意会锁表)
2:查看表结构
3:创建数据库下的表
4:查看某个数据库下的表
3:建表列属性说明
1:操作database的SQL
1:查看当前mysql数据库管理软件中的所有数据库
show databasename;
2:查看建库语句
SHOW CREATE DATABASE databasename;
3:创建数据库
CREATE DATABASE databasename CHARSET utf8mb4 COLLATE utf8mb4_bin;
4:删除数据库
DROP DATABASE databasename;
5:修改数据库字符集
ALTER DATABASE databasename CHARSET utf8mb4;
2:操作表结构的SQL(重要)
1:修改表结构(注意会锁表)
1:修改表名称
rename table 旧表名 to 新表名;
alter table 旧表名 rename 新表名;
rename table t_stu to student;
alter table student rename t_stu;
2:修改表结构
alter table 表名称 add 【column】 字段名 数据类型; #默认添加到最后
alter table 表名称 add 【column】 字段名 数据类型 first; #添加到第一列的位置
alter table 表名称 add 【column】 字段名 数据类型 after 另一个字段; #添加到另一个字段的后面
alter table t_stu add tel char(11);
alter table t_stu add address varchar(50) first;
alter table t_stu add age int after sname;
3:修改字段的数据类型或位置
alter table 表名称 modify 【column】 字段名 新的数据类型; #修改数据类型
alter table 表名称 modify 【column】 字段名 数据类型 first; #将指定字段移动到第一列
alter table 表名称 modify 【column】 字段名 数据类型 after 另一个字段; #移动指定字段到另一个字段的后面
alter table t_stu modify tel char(11);
alter table t_stu add address varchar(50) first;
alter table t_stu modify age int after sname;
4:修改列的名称
alter table 表名称 change 【column】 旧字段名 新的字段名 数据类型;
alter table t_stu change tel phone char(11);
5:删除一列
alter table 表名称 drop 【column】 字段名;
alter table t_stu drop address;
2:查看表结构
desc 表名称;
3:创建数据库下的表
创建某个表,如果前面有use语句,那么【数据库名.】可以省略
create table 【数据库名.】表名称(字段名1 数据类型,字段名2 数据类型,字段名3 数据类型);
DROP TABLE IF EXISTS `actor`;
CREATE TABLE `actor` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`update_time` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
执行后的表结构
![image.png](/uploads/projects/hesuijin@xbgvm1/90bb93cd7b733495ee8c6452805e6ddf.png)
DROP TABLE IF EXISTS `actorother`;
CREATE TABLE `actorother` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`update_time` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) CHARSET=utf8;
执行后的表结构
![image.png](/uploads/projects/hesuijin@xbgvm1/2e7075baa8782661806491f3bf7d559f.png)
ENGINE=InnoDB :MySQL数据库存储引擎的设置,如果不写也是可以的会去取默认的数据引擎
AUTO_INCREMENT=10 : 如果不写则默认自增从1开始,否则从设置的值开始
CHARSET=utf8 :作用于该表的字符编码 如果不写则为CHARSET=latin1 (ISO-8859-1编码格式)
4:查看某个数据库下的表
方式一:
需要先use 数据库名
show tables;
方法二:
show tables from 数据名;
3:建表列属性说明
列属性 |
说明 |
PRIMARY KEY |
主键约束,表中只能有一个,非空且唯一. |
NOT NULL |
非空约束,不允许空值 |
UNIQUE KEY |
唯一键约束,不允许重复值 |
DEFAULT |
默认约束,一般配合 NOT NULL 一起使用. |
UNSIGNED |
无符号,一般是配合数字列,非负数 |
AUTO_INCREMENT |
自增长的列 |
COMMENT |
注释 |