1、查看所有表
show tables;
2、 创建表
前提:切换数据库,需要明确在哪个数据库中新建表
CREATE TABLE table_name ( -- table_name 表名 特别说明:数据库名、表名都应该有一意义
column1_name data_type constraints, -- 列名 类型 属性
column2_name data_type constraints,
....
)ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 存储引擎 字符集
3、示例:
创建一个用户表
CREATE TABLE users ( -- 在DB数据库下新建一个user表
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL, -- null值 表示是一个不确定的值
birth_date DATE,
phone VARCHAR(11) NOT NULL UNIQUE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
主键:primary key 在一个表中至少应该有这样一个字段,这个字段所对应的值一不能有重复,二不能为空,这个字段所对应的值能够起到唯一标识表中每一条记录的作用。
上面的语句创建了一个名为users的表,其中包含5个字段id、name、birth_date和phone。注意,每个字段后面都有一个数据类型声明,表示该字段将存储何种类型的数据,例如:整数、字符串、日期等。
MySQL支持的常用数据类型
数字型
整型
1,tinyint示例:性别 男 1女 0 数据类型选择tinyint
2.decimal示例:价格与财务有关的字段设置为该类型
3.mediumint示例:博客访问数设置为该类型
4.int示例:员工的编号、学生学号设置为该类型
5.bigint示例:网站访问数设置为该类型
小数
1.float示例:float(5,2)范围(-999.99,999.99)桌子的长度、物理理的度量值
2.double示例:误差比float低 科学计算、物理测量的值
3.decimal示例:decimal(7,2) M=7(包含整故部分和小数部分,小故点也要算作1位创D=2小数点后放字的位故
如某一商品的价格是¥1234.56
单精度和双精度不同
1、在内存中占有的字节数不同
2、有效数字位数不同
3、所能表示数的范围不同
字符串
char(50)宽度是固定,若占不完,空格补齐 查询效率高,浪费存储空间
varcha(50)宽度是自动,用多少宽度分配多少宽度,查问效率低,节约空间
text长文本类型 示例:简历 text类型
日期
MySQL支持的常用约束
主键:学生表中的学号、身份证号:课程表中的课程号:在一个表中至少应该有这样一个字段,这个字段所对
应的值一不能有重复,二不能有空间,它能够起到唯一标识表中记录的作用。
not null不能空值 示例:某个商品的价格是null,只能说这个商品价格尚未确定,不是免费的。
unique:满足主键条件的字段 设置为unique的字段,此字段所对应的值是不能有重复。
foreign key外键:在一个表中某一个字段它不是当前这个表的主关键字,但是它却是另外一个表的主关键,我
们在当前这个表,把此字段称为是当前表的外部关键字。
存储引擎
MySQL中的放据用格种不同的枝术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机
制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或
者功能,从而改善你的应用的整体功能。
存储引擎:就是我们对数据进行增、删、改、查或CRUD操作的一种技术方式,
show engines;
更新约束
先创建一个表除了主键,不加其他约束。
CREATE TABLE users1(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
birth_date DATE,
phone VARCHAR(11)
)ENGINE-InnoDB DEFAULT CHARSET=utf8;
给手机号添加难一约束
ALTER TABLE users1 ADD UNIQUE (phone);
删除难一约束
ALTER TABLE users1 DROP INDEX phone;
给名字添加非空约束
ALTER TABLE users1 modify name VARCHAR(50) not null;
删除非空约束
ALTER TABLE users1
CHANGE COLUMN 'name' 'name' VARCHAR(50) NULL;
给生日添加默认约束
ALTER TABLE users1 ALTER birth_date SET DEFAULT '1992-05-11';
删除默认约束
ALTER TABLE users1 ALTER birth_date DROP DEFAULT;