1.主键的选取
主键的字段不能有null存在
主键应该使用bigint自增,而不是int
主键的选取默认为id
联合主键:就是多个字段被设置为主键,这里主键字段的值是允许相同的,只要不是所有字段相同即可
联合主键不常用,它给关系表带来了复杂度的提升(我至今没用过,好菜)
一些简单常用的操作
数据库的增删改查
建库:create database 数据库名字;
查库:show databases; 查某个具体数据库 show create database 数据库名字;
改编码方式(mysql) alter database 数据库名称 default character set 编码方式 collate 编码方式_bin ;
删库(好可怕) drop database 数据库名称;
数据表的增删改查
显示数据库所有的表 show tables
显示某一个具体的表 show create table 表名;
desc 表名; 列出该数据表的信息
建表:create table 表名称( 字段名1 数据类型[完整型约束条件], 字段名2 数据类型[完整型约束条件], ... 字段名n 数据类型[完整型约束条件] )
修改数据表的名称:alter table 旧表名 rename [to] 新表名 ;
修改字段名:alter table 表名 change 旧字段名 新字段名 新数据类型 ;
修改字段的数据类型 :alter table 表名 modify 字段名 数据类型 ;
添加字段: alter table 表名 add 新字段名 数据类型 [约束条件][first|after 已存在的字段名]
修改字段的排列位置:alter table 表名 modify 字段名1 数据类型 first|after 字段名2
删除字段: alter table 表名 drop 字段名 ;
删除数据表:drop table 表名;
增
语法:INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
删
drop table csj_tbl; #删除表
truncate table csj_tbl;#删除全部数据
delete from student; #删除全部数据
delete from student where name="tom"; #删除张三的数据
改
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
排序 :SELECT field1, field2,...fieldN from table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
怎么给一个字段设置主键
alter table test_tb add ID int(10) primary key AUTO_INCREMENT;
怎么给一个字段添加索引
1、添加普通索引
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
2、添加主键索引
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
3、添加唯一索引 (UNIQUE)
ALTER TABLE `table_name` ADD UNIQUE ( `column` )
唯一索引在此处可以保证数据记录的唯一性,在许多场合,创建唯一索引并不是为了加快访问速度,而是为了限制数据的唯一性。
4、全文索引 (FULLTEXT)
ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5、多列索引
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )