数据库中存放数据都是依托与一张张的数据表存在的,我们通过数据库可以高效的利用数据;而我们对数据的操作就是对数据库中的表的操作。
字符型:<varchar> VS <char>
文本型:<text>
数值型:<int> VS <smallint> VS <tinyint>
逻辑型:<bit>
日期型:<datetime> VS <smalldatetime>
mysql -u root -p
默认没有密码,直接回车,也可以自行修改密码。 操作数据库中的表单时,一定要先use <数据库名>
来进入该数据库
show databases;
查看某数据库中所有的表:show tables;
查看表中某字段的数据:select <字段名一,字段名二....> from <表名>;
查看某记录:select <字段一,字段二...> from <表名> where <查询条件>;
(多个)查询条件:<字段名> =值 && <字段名> =值
查看表结构:desc <表名>;
create databases <数据库名>;
创建表单:create table <表名>;
select * from <表名> order by <字段名> limit <待排列的记录数>;
降序排列:select * from <表名> order by <字段名> desc limit <待排列的记录数>;
insert into <表名> values('','','',....);
插入某一字段:insert into <表名> <字段名>;
drop table if exists <表名>;
删除已经外键关联的表:先删除子表再删除父表删除表中的某一条记录:delete from <表名> where <字段=值>;
删除表中的某一字段:alter table <表名> drop <字段名>;
删除外键约束:alter table <表名> drop foreign key <外键名>
alter table <旧表名> rename to <新表名>;
修改表中的字段名:alter table <表名> modify <旧字段名> <新字段名> <数据类型>;
修改表中字段的数据类型:alter table <表名> modify <字段名> <新数据类型>;
修改表中字段的顺序:alter table <表名> modify <字段名> <数据类型> first/after <字段名>;
修改表中某一记录某一字段的值:update <表名> set <字段名>=<新值> where <查询条件>;
主键,又称主码,主键约束就是作为主键的字段在记录中是唯一存在的,不可重复,并且也不许为空。就像我们每个人都有自己唯一的身份ID一样,唯一标识。利用这个特性,我们可以在数据库中快速的查询定位到一条记录。 - 设置主键:创建表的时候,在定义字段以及数据类型的后面直接加上PRimary key (默认值)
;或者在定义完所有的字段以及数据类型后,加上primary key (<字段名一,....>)
外键,表中的一个或多个字段,可以不是本表的主键,但必须是另一个表的主键。外键用来在两个表中建立连接关系,对于有关联关系的两个表而言,相关联字段中主键所在的表为父表,外键所在的表为子表。 - 设置外键:在表中所有字段都定义后(包括外键名),加上constraint <外键约束名> foreign key(外键名) references<关联的外表名(外表的字段名)>;
注意的是,这里的外键约束名与外键名是不同的意思 同一个数据库中,外键约束名和外键名一定不可以重复!!! /(ㄒoㄒ)/~~
alter table <表名> comment='这里是表的注释'
给列添加描述:alter table <表名> modify '<字段名>' datetime default null comment '字段描述'
外键约束关系: 在两个相关联的表中,一个表的主键是另一个表的非主键字段,这个字段中的值可能有很多。就拿学生选课来说,某一个课程可能有很多学生选,学生的主键是学号,那么该课程的表中,学号这一外键就会有很多值,同时,也把课程的数据表和学生的数据表关联了起来。 呐,在这个例子中,课程的表就是子表,学生的数据表就是父表。倘若,父表的值改变了,那么一定需要修改子表的值,而子表想去修改外键的值是没有权限的;但是,子表可以删除带有外键值的记录。这之中就有一种很明显的约束关系。
新闻热点
疑难解答