数据库——核心数据库对象——表
关系型数据库核心就是 数据库 和 表,其中数据库(database)一般会存储表(table),而表中存储数据。 所以要存储数据,就必须定义表的结构。
以下是一些关于创建表的基本操作:
create table tal_name; #创建表 create table [if not exists] tal_name ( #声明表的结构的 字段名称 字段类型 [约束条件], 字段名称 字段类型 [约束条件], 字段名称 字段类型 [约束条件] ) 例如,要求创建一张表,存储学生信息 create table tal_name ( id int, name varchar(100), age int, telephone char(20), address text ); describe tal_name;或者 desc tal_name; #描述表的结构 show create table tal_name; #显示创建数据库的脚本 insert into tal_name(id,name,age,telephone,address) value(1,'zs',18.'110','成华大道'); #插入数据 select *from tal_name; #查询数据
以下是一些关于修改表的操作:
修改表结构: #增加新的列 ALTLER TABLE table_name ADD colu_name 类型[约束条件] ALTLER TABLE t_stu ADD gender enum("男","女") default '女'; 修改列的列名称和类型: ALTLER TABLE 表名 CHANGE 旧列名 新的类名 ALTLER TABLE 表名 CHANGE gender sex enum("男","女"); 修改列的约束条件和类型: ALTLER TABLE 表名 MODIFY 列名 列类型; ALTLER TABLE t_stu MODIFY tel varchar(15) not null; 删除列: ALTLER TABLE 表名 DROP 列名; 修改表数据:数据更新 update语句 create table student like t_student; #复制表t_student的结构给student,复制表结构不会复制表数据 create table users select * from users2; #复制表users的结构和数据给新表users2 insert into users2 select DCL(data Control language):数据控制语言 数据授权和权限回收及管理相关的SQL操作 grant 授权 revoke 回收权限 grant在MySQL 8.0之前,功能非常强大: 集授权、创建用户、修改密码等一体的命令 注意:8.0创建用户必须使用create User命令 GRANT SELECT ON *.* TO user3@'localhost' IDENTIFIED BY '123456'; grant 权限 on db_name.t_name 用户名称@''
作业要求:
- 创建数据库,创建英雄表
- 添加对应的约束条件
- 插入80条数据
- 通过alter添加两个新的字段
- 通过alter删除一个字段
- 重命名一张表
#我们先在数据库中创建一个名为t_user的表,并且对它进行相关条件的约束, 这里我将它的id设置为主键,并且让它自增。name为英雄名称,gender为性别, age为年龄,position为英雄属性。 create table if not exists t_user( id int primary key auto_increment, name varchar(50) not null unique, gender varchar(10) default"男", age int check(age >= 18) default 18, position varchar(50) not null ); #然后,我们开始插入英雄数据,一共是有80条数据,这里就不一一展示了。 #使用insert into 语句,进行数据的插入 insert into t_user values(1,"盲僧","男",30,"打野"); insert into t_user values(null,"伊泽瑞尔","男",20,"射手"); insert into t_user values(null,"迅捷斥候",default,1,"上单"); insert into t_user values(null,"魔法猫咪",default,100,"辅助"); insert into t_user values(null,"战争之王",default,100,"上单"); insert into t_user values(null,"末日使者",default,100,"打野"); insert into t_user values(null,"钢铁大使","女",100,"上单"); insert into t_user values(null,"荒漠屠夫",default,100,"上单"); insert into t_user values(null,"时间刺客",default,100,"打野");
用ALTER插入新列
#接着,我们用alter插入新的列,Zz1.tai alter table t_user add Zz1 char(12) default "N"; alter table t_user add tai char(12) default "B"; #这里注意对表中内容进行属性设置,不然代码会报错
1. #删除列 2. ALTLER TABLE t_user DROP tai; 3. #修改列的属性 4. alter table t_user modify Zz1 varchar(5) default "N";
1. #修改表名 2. alter table t_user rename to t_zuoye;
最后有一个问题,在关系型数据库中delete真正的删除是数据了吗?
其实并没有,只是在数据上做了一个标记。数据不会被真正的删除,而是使用一个隐藏的字段来控制,不让它显示出来。