登录数据库系统
mysql –h localhost –uroot -p
创建数据库
create database 数据库名
显示已存在的数据库
show databases;
删除数据库
drop database example;
注:删除数据库,会删除其下的所有的表和数据
选择数据库
use 数据库名;
在创建表之前,需要首先选择数据库,否则会报错
创建表
create table 表名(属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件]
);
单字段主键
属性名 数据类型 PRIMARY KEY
举例
CREATE TABLE examples(stu_id INT PRIMARY KEY,
stu_name VARCHAR(20),
stu_sex BOOLEAN
);
多字段主键
PRIMARY KEY(属性名1,属性名2,……,属性名n)
举例
CREATE TABLE examples(stu_id INT PRIMARY KEY,
course_id INT,
grade FLOAT,
PRIMARY KEY(stu_id, course_id)
);
注:1、外键必须依赖数据库中已存在的父表的主键,外键可以为空值
2、父表删除某条信息时,与之关联的子表的信息也必须发生相应的变化
3、外键与关联的主表的主键类型必须一致
CONSTRAINT 外键别名 FOREIGN KEY(属性1.1, 属性1.2……)
REFERENCES 表名(属性2.1,属性2.2……)
示例
create table example3(id INT PRIMARY Key,
stu_id INT,
course_id INT,
CONSTRAINT c_fk FOREIGN KEY(stu_id,course_id)
REFERENCES example2(stu_id,course_id)
);
表example3设置stu_id和course_id为外键,与之关联的是example2的主键stu_id和course_id。
属性名 数据类型 NOT NULL
属性名 数据类型 UNIQUE
属性名 数据类型 AUTO_INCREMENT
注:默认情况下,该字段从1开始自增
属性名 数据类型 DEFAULT 默认值
DESCRIBE example1;
可缩写为DESC example1;
SHOW CREATE TABLE 表名 \G
注:代码最后加上“\G”参数后,可使显示内容更美观
ALTER TABLE example RENAME newname;
ALTER TABLE newname MODIFY name VARCHAR(30);
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST| AFTER 属性名2]
参数FIRST指将新增属性设置为表的第一个字段,“AFTER 属性名2”指将属性加到属性名2所指的字段之后,若没有参数,则新增属性的位置默认为表的最后一个字段。
ALTER TABLE 表名 DROP 属性名;
ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2
ALTER TABLE 表名 ENGINE=存储引擎名;
ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;
可使用show create table语句查看表的外键代号
DEROP TABLE 表名;
直接删除父表,会显示失败
方法一:
先删除子表,再删除父表
缺点:会影响子表中的其他数据
方法二:
先删除子表的外键约束,在删除父表(推荐)
步骤:1、使用”show create table 子表名”可查看子表的外键别名
2、使用”ALTER table 子表名 DROP FOREIGN KEY 外键别名”删除外键
3、删除父表