**
数据库的创建
**
1.直接创建数据库:create database name;
2.判断数据库不存在时创建:create database if not exits name;
3.创建数据库并指定字符集:create database default character set gbk;
表的创建
1.create table student(id(列名) tinyint (数据类型)not null(约束条件) comment’学号’(备注),name varchar(20) not null comment’姓名’,age tinyint not null comment’年龄’,class varchar(20) not null comment’班级’,sex char(5) not null comment’性别’)
2.create table teacher as select from student where 1=2;*(表示teacher表复制student表结构,那不加where1=2就是把表student的数据也复制到了teacher里面)
3.create table teacher like student;(个人觉得这个好用,便于记住)
注意:约束条件可以加多个。
表结构维护与删改
1.修改表名
rename table 旧表名 to 新表名;
2.添加列
alter table 表名 add 列名 类型;
3.修改列类型
alter table 表名 modify 列名 类型;
4.修改列名
alter table 表名 change 旧列名 新列名 类型;
5.删除列
alter table 表名 drop 列名;
6.修改字符集
alter table 表名 character set 字符集;
7.mysql表的删除
drop table if exits 表名;(如果直接drop table 表名的话不存在这个表的时候就会报错)
**表数据的新增 **
1.普通插入
insert into 表名(字段名)values(字段对应的值)
2.将一张表的数据复制到另一张表中
insert into 表1 select * from 表2 ;
insert into 表1(字段1,字段2) select 字段1,字段2 from 表2
3.建表复制
create table 表1 as select 字段1 字段2 from 表2;
4一次性插入多个数据
insert into表名 (字段名) values(对应值1),(对应值2),(对应值3);
**
表数据的修改
**
1.修改
update 表名 set 字段1=值,字段2=值 where 字段3=值;
2.删除
delete from 表名 where 字段名=值;
注意:在删改前要对数据备份,防止误删和误改。
注意: delete与truncate与drop区别
delete:会把删除的操作记录给记录下来,以便可以回退,在没有commit之前可以loadback回退回来,但不会释放空间,我们删除后的主键自增是从删除前的主键的下一个开始的(比如删除id=7和8的行,那么再增加的时候,id就从9开始增加新行了),而且不会删除定义。
truncate:不会把删除操作记录,会把表占用的空间恢复,不会删除定义。
drop:删除整张表,并释放空间。
删除速度:drop>truncate>delete