MySQL建表和约束

关键单词整理

  • create table建立表格

数据类型

  • 数值型
    bit 取值范围是1~64,默认为1
    int 带符号的范围是-2147483648~2147483647
    bigint 比int的范围大
    decimal 小数
  • 字符型
    varchar 字符串类型,4000字节
    longtext 长文本类型,无限
    enum 枚举(多选一)
    set 集合
  • 日期型
    DATE 保存的是年月日
    DATETIME 年月日时分秒
  • 插入数据
  • 语法:INSERT INTO 表名(列名列表) VALUES(值列表),值列表中值的个数及数据类型必须与列名列表一致
  • 字符型用''
  • 日期型用'':mysql默认格式为yyyy-MM-dd
约束(五大约束类型,mysql只有4种)
  • 1、主键:primary key,作用列不能有null,且不能有重复数据一张表只能有一个主键,但是可以联合主键
  • 2、唯一键:unique,不能有重复数据,可以为null,可以有多个唯一键
  • 3、非空约束:not null
  • 4、外键:foreign key,存在依赖
  • 5、检查型约束check(mysql中无效)

auto_increment, -- 自增长主键

建表和约束

/*

注释

*/

-- 单行注释
-- 建表语句
CREATE TABLE 表名(
列名1(字段) 数据类型 [默认值 约束],
列名2(字段) 数据类型 [默认值 约束],
...
)


-- 数据类型
-- 数值型
        BIT 取值范围是1~64,默认为1
        INT 带符号的范围是-2147483648~2147483647
        BIGINT 比int的范围大
        DECIMAL 小数
-- 字符型
        VARCHAR 字符串类型,4000字节
        LONGTEXT 长文本类型,无限
        enum 枚举(多选一)
        SET 集合
-- 日期型
        DATE 保存的是年月日
        DATETIME    年月日时分秒

-- 建立第一张表student1
CREATE TABLE student1(
id INT(9), -- id
stuname VARCHAR(100), -- 名字
age int(3), -- 年龄
gender enum('男','女'), -- 性别
birthday DATE,-- 出生日期
hobby SET('足球','学习','游戏','吃饭'), -- 爱好
height DECIMAL(3,2)  -- 身高,(一共三位,小数占两位)
)

-- 插入数据
-- 语法:INSERT INTO 表名(列名列表) VALUES(值列表)
-- 值列表中值的个数及数据类型必须与列名列表一致
-- 字符型用''
-- 日期型用'':mysql默认格式为yyyy-MM-dd
INSERT INTO student1(id,stuname,age,gender,birthday,hobby,height)
VALUES(9527,'华安',23,'男','2019-3-20','足球,游戏',1.99)

INSERT INTO student1(id,stuname,age,gender,birthday,hobby,height)
VALUES(9527,'华安他哥',23,'女','2019-3-20','足球,游戏,吃饭',1.29)

INSERT INTO student1(id,stuname,age)
VALUES(9527,'华安他2弟',27)
-- 没有列名列表,默认向所有列插入数据,并且顺序和原表一样
INSERT INTO student1(id,stuname,age)
VALUES(9527,'华安他2弟',27)

CREATE TABLE student2(
id INT(9), -- id
stuname VARCHAR(100), -- 名字
age int(3) DEFAULT 0, -- 年龄
gender enum('男','女') DEFAULT '男' , -- 性别
birthday DATE DEFAULT '1999-9-9',-- 出生日期
hobby SET('足球','学习','游戏','吃饭'), -- 爱好
height DECIMAL(3,2)  -- 身高,(一共三位,小数占两位)
)
-- 加数据时一起执行
INSERT INTO student2(id,stuname)
VALUES(9531,'华安他3弟');
INSERT INTO student2(id,stuname)
VALUES(9531,'华安他3弟');
INSERT INTO student2(id,stuname)
VALUES(9531,'华安他3弟');

--约束(五大约束类型,mysql只有4种)
-- 1、主键:primary key,作用列不能有null,且不能有重复数据
--       一张表只能有一个主键,但是可以联合主键
-- 2、唯一键:unique,不能有重复数据,可以为null,可以有多个唯一键
-- 3、非空约束:not null
-- 4、外键:foreign key,存在依赖
-- 5、检查型约束check(mysql中无效)
create table demo1(
id int(9),
name varchar(50),
primary key(id)
)

insert into demo1 values(null,'leo')


--主键
create table demo2(
id int(9),
name varchar(50),
primary key(id),
unique(name)
)
-- 唯一键
create table demo3(
id int(9),
name varchar(50),
idcard varchar(18),
primary key(id),
unique(name),
unique(idcard)
)

-- 非空约束
create table demo4(
id int(9),
name varchar(50) default '张三'  not null, -- default是默认值的意思
idcard varchar(18),
primary key(id),
unique(name),

)

-- 外键:外键依赖的列必须是一张表的主键或唯一键
-- 班级表 
CREATE TABLE class(
cid int(9),
cname varchar(100),
primary key(cid)
)

insert into class(cid,cname) values(1001,'java1班');
insert into class(cid,cname) values(1002,'java2班');
-- 学员表
-- 外键举例↓↓↓↓↓↓↓↓
create table student3(
`sid` int(9),
`sname` varchar(100) default '' not null,
`cno` int(9),
primary key(sid),
foreign key(cno) references class(cid)
)

insert into student3(sid,sname,cno) values (9004,'赵六',1005)


-- 创建两张表
-- dept 部门表
    -- deptno 部门编号 整数,长度9,主键
    -- dname  部门名称 字符,长度100,非空,默认值空串
    -- loc    工作地点 字符,长度50,非空,默认值空串

-- 向dept表中存入4条记录
-- 10 accounting new york
-- 20 research  dallas
-- 30 sales     chicago
-- 40 operations boston

create table dept(
deptno int(9),
dname varchar(200)default ''not null,
loc varchar(100)default ''not null,
primary key (deptno)
)
insert into dept(deptno,dname,loc) values (10,'accounting','new york');
insert into dept(deptno,dname,loc) values (20,'research','dallas');
insert into dept(deptno,dname,loc) values (30,'sales','chicago');
insert into dept(deptno,dname,loc) values (40,'operations','boston');

-- emp  员工表
-- empno 员工编号   整数,长度为4,主键
-- ename 员工姓名   字符,长度为50,非空,默认值空串
-- job   岗位             字符,长度为20,非空,默认值空串
-- mgr   经理编号       整数,长度为4
-- hiredate 入职日期 日期(年月日)
-- sal      薪水         小数,(小数点保留2位,总长度7位)
-- comm   奖金         小数,(小数点保留2位,总长度7位)
-- deptno   部门编号     整数,长度9,外键

create table emp(
empno int(9),-- 主键
ename varchar(100)default'' not null,
job varchar(40)default'' not null,
mgr int(4),
hiredate date,
sal DECIMAL(7,2),
comm DECIMAL(7,2),
deptno int(9),
foreign key(deptno) references dept(deptno)
)
insert into emp values (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);
insert into emp values (7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30);
insert into emp values (7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30);
insert into emp values (7566,'JONES','MANAGER',7839,'1981-4-2',2975,NULL,20);
insert into emp values (7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30);
insert into emp values (7698,'BLAKE','MANAGER',7839,'1981-5-1',2850,NULL,30);
insert into emp values (7782,'CLARK','MANAGER',7839,'1981-6-9',2450,NULL,10);
insert into emp values (7788,'SCOTT','ANALYST',7566,'1987-4-19',3080,NULL,20);
insert into emp values (7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
insert into emp values (7844,'TURNER','SALESMAN',7698,'1981-9-8',1500,0,30);
insert into emp values (7876,'ADAMS','CLERK',7788,'1987-5-23',1100,NULL,20);
insert into emp values (7900,'JAMES','CLERK',7698,'1981-12-3',950,NULL,30);
insert into emp values (7902,'FORD','ANALYST',7566,'1981-12-3',3000,NULL,20);
insert into emp values (7934,'MILLER','CLERK',7782,'1982-1-23',1300,NULL,10);

-- 建表(默认值约束)和插入数据
-- 自增长主键

create table student5(
id int(9) auto_increment, -- 自增长主键
name varchar(100),
primary key(id)
)auto_increment = 100


insert into student5(name) values('张三')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容