数据库创建(note2)

第三周

  1. 创建数据库

    CREATE DATABASE IF NOT EXISTS student;    -- 
    
  2. 创建表

    USE student; 						-- 进入数据库
    
    create temporary student; -- 数据库中存在一个临时数据库 :周期短,只能对创建它								的用户可见,断开与数据库的连接,MySQL自动删除
    
    CREATE TABLE IF NOT EXISTS xs(
    学号 CHAR(4) NOT NULL PRIMARY KEY,
    姓名 CHAR(8) NOT NULL,
    专业 CHAR(10) NOT NULL,
    性别 TINYINT(1) NOT NULL DEFAULT 1,
    出生日期 DATE NOT NULL,
    总学分 TINYINT (1) NULL,
    照片 BLOB NULL,
    备注 TEXT NULL
    );
    
    describe xs;  				-- 查看数据表的结构
    
    
    
  3. 表格字段属性

  4. Mysql 数据类型

    • 数据类型

    • 日期和时间类型

    • CHAR、VARCHAR、BINARY 、TEXT类型

    • 枚举类型

  5. 表中插入数据

    -- 两种方法:
    
    -- 表中插入数据
    INSERT INTO xs VALUES('111','名字','计算机网络技术',1,'2000-01-27',3,NULL,'班长');
    INSERT INTO XS SET 学号='112',姓名='王德法',专业='计算机网络技术',性别=1,出生日期='2000-03-04',总学分=NULL,备注=NULL;
    
  6. 数据表操作

    create table if not exists xs1 like xs;  	-- 复制一张xs1表
    
    -- 插入一行数据
    ALTER TABLE xs ADD COLUMN 班级号 TINYINT(1) NOT NULL;
    
    -- 修改班级号字段的属性,改为 bigint
    ALTER TABLE xs MODIFY 班级号 BIGINT NOT NULL;
    
    -- 删除表中字段
    ALTER TABLE xs DROP COLUMN 班级号;
    
    -- 将表中总学分加2   ;一位同学数据更新,备注:优秀班干部 ,学号改为001
    UPDATE xs SET 总学分=总学分+2;
    UPDATE xs SET 学号='001',备注='优秀班干部' WHERE 姓名='名字';
    
    -- 查询总学分大于5(切不等于5)的同学
    SELECT * FROM xs WHERE 总学分>5;
    
    -- 删除主键
    alter table 表名 drop primary key;
    
    -- 查询部分字段加上附加条件
    SELECT 查询字段1,查询字段2 FROM 表名 WHERE 条件;
    
    -- 查询一个字段的内容,去除重复的
    select distinct 字段 from 表名;
    
    -- 删除满足一个字段什么条件的数据
    delete from 表名称 where 字段名 条件
    
  7. 作业

    -- 创建课程表 c
    CREATE TABLE IF NOT EXISTS c(
    CNO CHAR(4) NOT NULL PRIMARY KEY,
    CNAME CHAR(20) NOT NULL,
    cpno CHAR(4) NULL,
    credit INT NOT NULL
    );
    
    INSERT INTO c VALUES('c01','数据库原理','c03',4);
    INSERT INTO c VALUES('c02','信息系统','c01',4);
    INSERT INTO c VALUES('c03','数据结构',NULL,6);
    INSERT INTO c VALUES('c04','DB_设计','c01',3);
    
    
    -- 数据学生表 s
    CREATE TABLE IF NOT EXISTS s(
    SNO CHAR(10) NOT NULL ,
    SNAME CHAR(10) NOT NULL,
    DEPA CHAR(10) NOT NULL,
    AGE INT NOT NULL,
    SEX char(2) NOT NULL
    );
    
    INSERT INTO s SET SNO='200512',SNAME='李勇',DEPA='计算机系',AGE=20,SEX='男';
    INSERT INTO s SET SNO='200518',SNAME='刘晨',DEPA='计算机系',AGE=19,SEX='女';
    INSERT INTO s SET SNO='200018',SNAME='王敏',DEPA='数学系',AGE=18,SEX='女';
    INSERT INTO s SET SNO='200511',SNAME='杨扬',DEPA='物理系',AGE=20,SEX='男';
    INSERT INTO s SET SNO='200510',SNAME='张立',DEPA='信息系',AGE=19,SEX='男';
    INSERT INTO s SET SNO='200513',SNAME='张立',DEPA='物理系',AGE=19,SEX='男';
    INSERT INTO s SET SNO='200514',SNAME='王点点',DEPA='信息系',AGE=19,SEX='女';
    INSERT INTO s SET SNO='200012',SNAME='欧阳雨',DEPA='数学系',AGE=20,SEX='男';
    INSERT INTO s SET SNO='200515',SNAME='刘依依',DEPA='数学系',AGE=23,SEX='女';
    
    
    -- 创建选课表 sc
    CREATE TABLE IF NOT EXISTS sc(
    SNO CHAR(10) NOT NULL PRIMARY KEY,
    Cno CHAR(4) NOT NULL,
    GRADE INT NULL
    );
    
    INSERT INTO sc VALUES('200512','c02',70);
    INSERT INTO sc VALUES('200512','c03',NULL);
    INSERT INTO sc VALUES('200512','c04',NULL);
    
    -- 查询查询计算机系(depa)学生的学号(sno)和姓名(sname)
    SELECT SNO,SNAME,DEPA FROM s WHERE DEPA='计算机系';
    
    -- 查询选修了课程(Cno)的学生学号
    SELECT DISTINCT SNO FROM sc WHERE Cno IS NOT NULL;
    
原文地址:https://www.cnblogs.com/Jamdu0406/p/12752759.html