这些都是看了教程后跟老师做的笔记。
一 创建表和查看结构
1 先进入某一个数据库。BREATE TABLE 表名;
2 输入建表的命令
CREATE TABLE 表名{
列名 1 类型 [约束],
列名 2 类型 [约束],
列名 3 类型 [约束],
列名 4 类型 [约束],
列名 5 类型 [约束]
};
比如: CREATE TABLE `t_student` {
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`email` varchar(40) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
} ENGINE=InnoDB DEFAULT CHARSET=utf8;
注意最后一行没有逗号。一般表名以 ‘t_’为前缀。
删除表的新语法:DROP TABLE IF EXISTS 表名;
若在建表中使用到了数据库的关键字
比如: 使用order来表示订单,写表名成order
order是SQL中的关键字,表示排序之意。
解决办法:
1 避免使用关键字,换一个单词
2 如果是表名,有人习惯使用t_作为前缀
3 使用反引号(`) 括起来,`order`,而且表里面的列也是被反引号来括起来的
二 查看表的结构
DESC 表名;
下面以表名为:t_student;
show create table 表名;
下面以表名为:t_student;
表的各种约束
- 非空约束, NOT NULL,不允许某列内容为空。
- 设置列的默认值, DEFAULT
- 唯一约束,UNIAUE,在该表中,值是唯一
- 主键约束, PRIMARY KEY.非空且唯一。每一行唯一的标识
- 主键自增长, AUTO_ INCREMENT,从1开始,
什么叫主键:唯一标识,比如id , 人的身份证;个人刚学MySQL 的感受
主键的设计:
- 但字段主键,单列作为主键,建议使用。
复合主键,使用多列充当主键,不建议使用。
- 主键的分类
A 自然主键: 使用有业务含义的列作为主键,不建议。
B 代理主键: 使用没有业务含义的列作为主键,建议使用。