1.库的管理:
一、创建库
create database 库名
#创建一个books库
create database books
二、删除库
drop database 库名
三、修改库
rename database 旧库名 to 新库名
2.表的管理:
2.1 创建表
CREATE TABLE IF NOT EXISTS stuinfo(stuId INT,stuName VARCHAR(20),gender CHAR,bornDate DATETIME);DESC studentinfo;
create table 表名{列名 列的类型(长度 约束可选),列名 列的类型(长度 约束可选),列名 列的类型(长度 约束可选),。。。。。列名 列的类型(长度 约束可选)
}#在books库中创建book表,
/*第一列:id,类型:int;第二列:bkook,类型:varchar,最大程度为20;第三列:price,类型:double;第四列:author,类型:varchar(20);第五列:publishdate,类型:datetime;*/
create table book(id int,bbook varchar(20),price double,author varchar(20),publishdate datetime
);
2.2 修改表
语法:ALTER TABLE 表名 ADD|MODIFY|DROP|CHANGE COLUMN 字段名 【字段类型】;①修改列名
ALTER TABLE studentinfo CHANGE COLUMN sex gender CHAR;
#修改book表中的publishdate列名为pubdate
alter table book change column publishdate pubdate datetime;
②修改表名
ALTER TABLE stuinfo RENAME [TO] studentinfo;③修改列的类型和约束
ALTER TABLE studentinfo MODIFY COLUMN borndate DATE ;
#修改book表中pubdate列的类型为timestamp
alter table book modify column pubdate timestamp;
④添加列
ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;
#在book表中添加一个新列annual,类型为double
alter table book add column annual double;
⑤删除列
ALTER TABLE studentinfo DROP COLUMN email;
#删除book表中的annual列
alter table book drop column annual;
2.3 删除表
DROP TABLE [IF EXISTS] studentinfo;
2.4 复制表
#仅仅复制表的结构
create table copy1 like book;#全部复制,包含数据
create table copy2 select * from book;
3.类型和约束
3.1 类型
整型:tinyint、smallint、mediumint、int、integer、bigint
小数:浮点型:float、double定点型
字符型:较短的类型:char varchar较长的类型:text blob
日期型:date、datetime、timestamp、time、year
3.2 常见约束
约束,一种对表中数据的限制,为了保证表中数据的准确和可靠性
NOT NULL:非空,用于保证该字段的值不为空
DEFAULT:用于保证该字段有默认值
UNIQUE:保证该字段的值具有唯一性,可以为空
CHECK:MySQL不支持
PRIMARY KEY:主键,保证该字段的值具有唯一性,并且非空,比如学号
FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表关联列的值,在从表中添加外键约束
标识列:auto_increment,又称自增长列,不用手动的插入值,可以实现自动增长添加值
常见约束的使用
#类型和约束
create table student(id int primary key auto_increment,name varchar(20)
)insert into student values(null,"tom");
insert into student values(null,"join");