[]代表可选
数据库操作
创建数据库
create {database} [if not exists] db_name
使用数据库
use db_name
创建表前记得要指定是哪个数据库,即用这个语句指定
删除数据库
drop database [if exists] db_name
查看数据库
show databases
数据表操作
假设有一个学生信息表,字段有id(主键),姓名name,性别sex(1为男,2为女)
创建表
create [temporary] table [if not exits] tbl_name
(
<列名1> <数据类型> [<列选项>],
<列名2> <数据类型> [<列选项>],
<列名3> <数据类型> [<列选项>]
...
<表选项>
);
其中:
temporary
关键字表示创建临时表,不加该关键字则创建的是持久表
当断开与该数据库连接时,MySQL会自动删除临时表
数据类型
常见的有:
整型:int
文本型:text
变长字符型:varchar(长度)
浮点型:float
日期:date
列选项
有:
null 或 not null
:是否允许为空,默认为null
default default_value
:指定默认值,默认值default_value必须为一个常量
auto_increment
:设置自增属性,只有数据类型为整型列的才能设置该属性。每个表只能有一个自增属性,并且它必须被索引
primary key | unique key
:主键,一个表只能有一个主键,主键必须为not null
comment 'string'
:对于列的描述说明,string是描述的内容
表选项
:
定义主键
:primary key(列名,...)
,注意主键可能是由多个列组成的多列索引
定义外键
:假设表A的一个字段A_id为表B的外键,则,foreign key (A_id) references B(A_id)
,第一个括号是表A中外键列名,第二个括号是表B中给这个外键取的名字
但是注意!!!:该外键在这个表里真正的名字并不是A_id,而是在定义外键是系统自动给他赋的一个约束,可以通过show create table 表名
来查看创表时的sql语句,在其中可以找到,如下图
当然,也可以在创表定义外键时就自己写好约束:
constraint '约束名' foreign key (A_id) references B(A_id);
修改表
修改列名
alter table 表名 change 原列名 新的列名 列的类型 [<列选项>];
例如:
alter table major_info change majorID MID int not null;
插入数据
所有列都插入:
insert into 表名 values(插入值列表);
空值写null
插入指定列:
insert into 表名 (指定列列名列表) values(插入值列表);
例子:
补充定义主键
alter table 表名 add primary key 列名/(列名表)
补充定义外键
alter table 表名 add <constraint '约束名'> foreign key (A_id) references B(A_id);
<constraint ‘约束名’>可选,若不写则系统会默认给一个约束,通过查看创建表的sql语句可以得到(见上面的相关部分)