美文网首页
2019-03-20 mysql

2019-03-20 mysql

作者: 沫忘丶 | 来源:发表于2019-03-21 09:53 被阅读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('张三')

    相关文章

      网友评论

          本文标题:2019-03-20 mysql

          本文链接:https://www.haomeiwen.com/subject/cjwfvqtx.html