2019-03-20 mysql

2019-03-21  本文已影响0人  沫忘丶

/*

多行

注释

*/

-- 单行注释

-- 建表语句

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),

stuname VARCHAR (100),

age INT (3),

gender ENUM ('男', '女'),

birthday DATE,

hobby SET('足球','学习','游戏','吃饭'),

height DECIMAL(3,2)

)

-- 插入数据

-- 值列表中值的个数及数据类型必须与列名一致

-- 字符型''

-- 日期型mysql默认yyyy-MM-dd

-- 语法 INSERT INTO 表名(列名列表) VALUES(值列表)

-- 枚举类型 多选一

-- 集合类型 多选多

-- 没有列名的列表 默认向表中所有列插入数据 顺序与类型必须与原表一致

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(9528,'华安他哥',24,'女','2019-3-24','吃饭,游戏',1.89)

INSERT INTO student1(id,stuname,age,gender,birthday,hobby,height)

VALUES(9529,'华安他姐',26,'女','2019-3-25','吃饭,学习',1.79)

INSERT INTO student1(id,stuname,age,gender,birthday,hobby,height)

VALUES(9530,'华安他弟',26,'女','2019-3-23','学习',1.69)

-- 建立一张表student2

-- 默认值 DEFAULT

CREATE TABLE student2 (

id INT (9),

stuname VARCHAR (100),

age INT (3) DEFAULT 0,

gender ENUM ('男', '女') DEFAULT '男',

birthday DATE,

hobby SET('足球','学习','游戏','吃饭'),

height DECIMAL(3,2)

)

INSERT INTO student2(id,stuname)

VALUES(9531,'华安他三弟');

INSERT INTO student2(id,stuname,gender)

VALUES(9531,'华安他三弟','女')

-- 约束(五大约束类型,mysql只有四种)

-- 主键 primary key 作用列不能有null 且不能有重复数据

-- 一张表只能有一个主键

-- 唯一键 UNIQUE 作用列不能有重复数据 可以为null

-- 唯一键可以有多个

-- 非空约束 not NULL 作用列不能有null

-- 外键 外键依赖的列必须是一张表的主键或唯一键

-- foreign key(受约束的键名)references 表名(唯一键或主键名)

-- 学员表

create table student3(

sid int(9),

sname varchar(100)default'' not null,

cno int(9),

primary key(sid),

foreign key(cno)references class(cid)

)

-- 班级表

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班');

-- 检查型约束 CHECK mysql中无效

/*

create table test(

gender vachar2(200),

check (gender in('男','女')

)

)

*/

CREATE TABLE demo1(

id int(9),

name VARCHAR(50),

PRIMARY KEY(id)

)

insert into demo1 values(1,'leo')

CREATE TABLE demo2(

id int(9),

name VARCHAR(50),

PRIMARY KEY(id),

UNIQUE(name)

)

INSERT INTO demo2 VALUES(1,'leo');

INSERT INTO demo2 VALUES(2,'leo1');

INSERT INTO demo2 VALUES(3,NULL);

INSERT INTO demo2 VALUES(4,NULL);

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) NOT NULL,

idcard varchar(18),

PRIMARY KEY(id),

UNIQUE(idcard,name)

)

-- 创建两张表

-- dept 部门表

-- deptno 部门编号 整数9 主键

-- dname 部门名称 字符 长度100 非空 默认值是空串

-- loc 部门地点 字符长度为50 非空 默认值是空串

-- 向dept中存入四条记录

-- 10 account new york

-- 20 sales chicago

-- 30 hr shenyang

-- 40 operation fuxin

-- emp 员工表

-- empno 员工编号 整数 长度为4 主键

-- ename 员工姓名 字符 长度无50 非空 默认值null

-- job 岗位 字符 长度为20  非空 默认值空串

-- mgr 经理编号 整数 长度4

-- hiredate 入职日期 日期(年月日)

-- sal 薪水 小数(小数点保留两位,总长度为7)

-- comm 奖金 小数(小数点保留两位,总长度为7)

-- deptno 部门编号 整数 长度9 外键

create table dept(

deptno int(9),

dname varchar(100) default'' not null,

loc varchar(50) default'' not null,

PRIMARY KEY(deptno)

)

INSERT into dept VALUES(10,'account','new york');

INSERT into dept VALUES(20,'sales','chicago');

INSERT into dept VALUES(30,'hr','shenyang');

INSERT into dept VALUES(40,'operation','fuxin');

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 VALUES(7369,'SMITH','CLERK',7902,'1980-12-17',800.00,NULL,20);

INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600.00,300.00,30);

INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,'1981-2-22',1250.00,500.00,30);

INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839,'1981-4-2',2975.00,NULL,20);

INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250.00,1400.00,30);

INSERT INTO EMP VALUES(7698,'BLACK','MANAGER',7839,'1981-5-1',2850.00,NULL,30);

INSERT INTO EMP VALUES(7782,'CLACK','MANAGER',7839,'1981-6-9',2450.00,NULL,10);

INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,'1987-4-19',3080.00,NULL,20);

INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000.00,NULL,10);

INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,'1981-9-8',1500.00,0.00,30);

INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,'1987-5-23',1100.00,NULL,20);

INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,'1981-12-3',950.00,NULL,30);

INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,'1981-12-3',3000.00,NULL,20);

INSERT INTO EMP VALUES(7934,'MILLER','7782',7698,'1982-1-23',1300.00,NULL,10);

-- 建表 默认值约束和插入数据

-- 自增长主键

create table student5(

id int(9)auto_increment,

name varchar(100),

PRIMARY key(id)

)

INSERT into student5(name) VALUES('张三')

上一篇下一篇

猜你喜欢

热点阅读