/*
多行注释
*/
-- 单行注释
建表语句
create table 表名(
列名1 (字段) 数据类型 [ 默认值(default) 约束 ] ,
列名1 (字段) 数据类型 [ 默认值(default) 约束 ] ,
)
数据类型
数值型
BIT 取值范围是1-64,默认为1
int 带符号范围
bigint 范围比INT大
decimal 小数
字符型
varchar 字符串 ,4000字节
longtext 长文本类型
enum 枚举型
set 集合型
日期型
date 年月日
datetime 年月日时分秒
建第一张表
CREATE TABLE Student1(
id INT(5), -- -99999~99999
stuname VARCHAR(100),
age INT(3),
gender ENUM('男','女'),
birthday DATE,
height DECIMAL(3,2),
hobby SET('足球','学习','游戏','睡觉')
插入数据类型
语法 insert into 表名(列表明) values (列表值);
语法 insert into 表名(列表明) values(列表值);
列表中的值的个以及数据类型必须列名一致
字符型要用' '括起来
日期型也要' '括起来:MySQL默认格式yyyy-MM-dd
INSERT INTO Student1(id,stuname,age,gender,birthday,height,hobby)
VALUES(9527,'华安',12,'男','1997-12-8',1.92,'睡觉,游戏')
-- 没有列名列表,默认想表中所有的列插入数据,并且顺序和类型必须与原表一致
INSERT INTO Student1
VALUES(9527,'华安',12,'男','1997-12-8',1.92,'睡觉,游戏')
约束(五大约束类型,MySQL有四种)
主键:primary key(),作用列不能有null,且不能有重复数据
唯一键:unique()作用列不可以有重复数据,可以为null,唯一键可以有多个
非空约束:not null作用列不能有空值
外键:foreign key(当前表的列)references 别的表单(主键)
检查型约束check Oracle中使用 check(gender in(‘男’,'女'))
-- 建表(默认值约束)和插入数据
-- 自增长主键
create table Student5(
id int(9)auto_increment,
name varchar(20),
primary key(id)
)
CREATE table demo3(
id INT(9),
name VARCHAR(50),
PRIMARY KEY(id,name)
)
-- Column 'id' cannot be null 主键不可以空值
INSERT INTO demo3 VALUE(3,'leo');
INSERT INTO demo3 VALUE(3,'mike')
INSERT INTO demo3 VALUE(2,'mike')
CREATE table demo4(
id INT(9),
name VARCHAR(50),
PRIMARY KEY(id),
unique(name)
)
INSERT INTO demo4 VALUE(1,'leo');
INSERT INTO demo4 VALUE(2,'mike')
INSERT INTO demo4 VALUE(3,'mike1')
INSERT INTO demo4 VALUE(5,NULL)
CREATE table demo5(
id INT(9),
name VARCHAR(50),
idcard VARCHAR(18),
PRIMARY KEY(id),
unique(name),
unique(idcard)
)
-- 联合唯一键
CREATE table demo6(
id INT(9),
name VARCHAR(50),
idcard VARCHAR(18),
PRIMARY KEY(id),
unique(idcard,name)
)
-- 非空元素只能在列上直接写
CREATE table demo7(
id INT(9),
name VARCHAR(50) not null,
PRIMARY KEY(id),
unique(name)
)
insert into demo7(id,name)VALUES(1,'zhangsan')
-- 外键:外键依赖的列必须是一张表的主键或则唯一键
-- 班级表
create table class(
cid int(9),
caname VARCHAR(100),
PRIMARY key(cid)
)
insert into class(cid,caname)VALUE(1001,'java1');
insert into class(cid,caname)VALUE(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(9001,'张三',1002)
create table emp(
empno int(4),
ename VARCHAR(50) default '' not null,
job varchar(20) default '' not null,
mgr int(4),
hiredate date,
sal decimal(7,2),
comm decimal(7,2),
deptno int(9),
primary KEY(empno),
foreign key(deptno) references dept(deptno)
)
insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)
values(7369,'SMIH','CLERK',7902,'1980-12-17',800,20);
insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
values(7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30);
insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
values(7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30);
insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)
values(7566,'JONE','MANAGER',7839,'1980-4-2',2975,20);
insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
values(7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30)