美文网首页
java_sql创建表以及增删改

java_sql创建表以及增删改

作者: 走停2015_iOS开发 | 来源:发表于2021-01-18 13:16 被阅读0次
    1. 建表语句的语法格式:
    create table 表名(
    字段名1 数据类型,
    字段名2 数据类型,
    字段名3 数据类型,
    )
    

    2.关于MSSQL当中的字段的数据类型 以下只说常见的数据列席

    - int  整数型
    - bigint 长整型(java中的long)
    - float  (float double)
    - char 定长字符串 (java中的String)
    - varchar 可变字符串(java中的StringBuffer/StringBuilder)
    - date 日期类型 (对应java中的java.sql.Date类型)
    - BLOB 二进制大对象(存储图片 视频等流媒体信息)(对应java中的object) binary large object
    - CLOB 字符大对象(存储大文本 比如可以存储4G的字符串)(对应java中的object) character large object 
    - TEXT等于CLOB
    

    3.char和varchar怎么选择

    char:  当某个字段数据长度不发生改变的时候 是定长的 类似性别 生日
    varchar: 当字段得数据长度不确定 例如简介、姓名
    

    4.BLOB和CLOB

    电影表 t_movie
    id(int)  name(varchar)  playtime(date/char)  haibao(BLOB)   history(CLOB)(故事情节)
    --------------------------------------------------------------
    1         蜘蛛侠               
    2
    3
    

    5.表名在数据库中一般建议以:t_或者tbl_开始。

    创建学生表
    学号 姓名 性别 班级编号 生日
    学号:bigint
    姓名:varchar
    性别:char
    班级标号:int
    生日:date/char

    create table t_student(
    no bigint,
    name varchar(255),
    sex char(1),
    classno varchar(255),
    birth char(10)
    );
    mysql> show tables;
    +-----------------------+
    | Tables_in_bjpowernode |
    +-----------------------+
    | dept                  |
    | salgrade              |
    | t_student             |
    | t_user                |
    +-----------------------+
    mysql> desc t_student;
    +---------+--------------+------+-----+---------+-------+
    | Field   | Type         | Null | Key | Default | Extra |
    +---------+--------------+------+-----+---------+-------+
    | no      | bigint       | YES  |     | NULL    |       |
    | name    | varchar(255) | YES  |     | NULL    |       |
    | sex     | char(1)      | YES  |     | NULL    |       |
    | classno | varchar(255) | YES  |     | NULL    |       |
    | birth   | char(10)     | YES  |     | NULL    |       |
    +---------+--------------+------+-----+---------+-------+
    5 rows in set (0.01 sec)
    

    6.insert语句插入数据
    语法格式:
    insert into 表名(字段名1,字段名2,字段名3,.....) values (值1,值2,值3....)
    要求:字段数量和值得数量相同 并且数据类型要对应相同

    insert into t_student(no,name,sex,classno,birth) values (1,'zhangsan','1','gaosan1ban','1951-10-12');
    insert into t_student(no,name,sex,classno,birth) values (2,'lisi','1','gaosan1ban','1951-10-12');
    insert into t_student(name) values ('wangwu');
    mysql> select *from t_student;
    +------+----------+------+------------+------------+
    | no   | name     | sex  | classno    | birth      |
    +------+----------+------+------------+------------+
    |    1 | zhangsan | 1    | gaosan1ban | 1951-10-12 |
    | NULL | wangwu   | NULL | NULL       | NULL       |
    |    2 | lisi     | 1    | gaosan1ban | 1951-10-12 |
    +------+----------+------+------------+------------+
    3 rows in set (0.01 sec)
    
    //省略的话 必须和表中字段一一对应
    mysql> insert into t_student values (1,'jack','1','gaosan2ban','1921-10-12');
    mysql> select *from t_student;
    +------+----------+------+------------+------------+
    | no   | name     | sex  | classno    | birth      |
    +------+----------+------+------------+------------+
    | NULL | zhangsan | 1    | NULL       | NULL       |
    |    1 | jack     | 1    | gaosan2ban | 1921-10-12 |
    +------+----------+------+------------+------------+
    2 rows in set (0.00 sec)
    
    //一次插入多条数据
    insert into t_student(no,name,sex,classno,birth) values (3,'rose','1','gaosi2ban','1952-12-14'),(4,'laotie','1','gaosi2ban','1952-12-14');
    mysql> select *from t_student;
    +------+----------+------+------------+------------+
    | no   | name     | sex  | classno    | birth      |
    +------+----------+------+------------+------------+
    | NULL | zhangsan | 1    | NULL       | NULL       |
    |    1 | jack     | 1    | gaosan2ban | 1921-10-12 |
    |    3 | rose     | 1    | gaosi2ban  | 1952-12-14 |
    |    4 | laotie   | 1    | gaosi2ban  | 1952-12-14 |
    +------+----------+------+------------+------------+
    

    6.删除表 default 指定默认值

    drop table if exists t_student;
    create table t_student(
    no bigint,
    name varchar(255),
    sex char(1) default 1,
    classno varchar(255),
    birth char(10)
    );
    mysql> desc t_student;
    +---------+--------------+------+-----+---------+-------+
    | Field   | Type         | Null | Key | Default | Extra |
    +---------+--------------+------+-----+---------+-------+
    | no      | bigint       | YES  |     | NULL    |       |
    | name    | varchar(255) | YES  |     | NULL    |       |
    | sex     | char(1)      | YES  |     | 1       |       |
    | classno | varchar(255) | YES  |     | NULL    |       |
    | birth   | char(10)     | YES  |     | NULL    |       |
    +---------+--------------+------+-----+---------+-------+
    5 rows in set (0.01 sec)
    
    mysql> insert into t_student(name) values ('zhangsan');
    mysql> select *from t_student;
    +------+----------+------+---------+-------+
    | no   | name     | sex  | classno | birth |
    +------+----------+------+---------+-------+
    | NULL | zhangsan | 1    | NULL    | NULL  |
    +------+----------+------+---------+-----
    

    7.表的复制(创建表的时候可以复制别的表)

    mysql> create table emp1 as select *from t_user;
    mysql> select *from emp1;
    +----+-----------+-----+--------+---------+------+--------+------+------+------+
    | id | name      | age | gender | content | job  | deptno | sal  | mgr  | num  |
    +----+-----------+-----+--------+---------+------+--------+------+------+------+
    |  2 | HanMeimei |  17 |      0 | NULL    | AAAA |      2 | 80   |  100 |  100 |
    |  3 | Lucy      |  17 |      0 | NULL    | BBB  |      5 | 1250 |  100 |  101 |
    |  5 | WeiHua    |  32 |      0 | NULL    | BBB  |      5 | 4321 |  100 |  103 |
    |  6 | ZhangWei  |  25 |      1 | NULL    | AAAA |      4 | 1002 |  104 |  104 |
    |  7 | Ann       |  36 |      0 | NULL    | DDDD |      5 | 2131 |  104 |  105 |
    |  8 | Lisa      |  19 |      0 | ceshi   | DDDD |      1 | 4345 |  105 |  106 |
    |  9 | ZWei      |  18 |      1 | NULL    | CCC  |      2 | 1233 |  105 |  107 |
    | 10 | Ka_te     |  17 |      1 | NULL    | FFF  |      1 | 2433 |  110 |  108 |
    +----+-----------+-----+--------+---------+------+--------+------+------+------+
    8 rows in set (0.00 sec)
    
    mysql> create table emp2 as select  name,age from t_user;
    mysql> select *from emp2;
    mysql> select *from emp2;
    +-----------+-----+
    | name      | age |
    +-----------+-----+
    | Ann       |  36 |
    | HanMeimei |  17 |
    | Ka_te     |  17 |
    | Lisa      |  19 |
    | Lucy      |  17 |
    | WeiHua    |  32 |
    | ZhangWei  |  25 |
    | ZWei      |  18 |
    +-----------+-----+
    8 rows in set (0.00 sec)
    

    8.将查询结果插入到表中

    mysql> create table dept1 as select *from dept;
    mysql> insert into dept1 select *from dept;
    mysql> select *from dept1;
    +-----------+--------+----------+
    | dname     | deptno | location |
    +-----------+--------+----------+
    | 测试部    |      2 | 青岛     |
    | 开发部    |      3 | 日本     |
    | 市场部    |      1 | 内蒙     |
    | 设计部    |      4 | 湖南     |
    | 采购部    |      5 | 江西     |
    | 测试部    |      2 | 青岛     |
    | 开发部    |      3 | 日本     |
    | 市场部    |      1 | 内蒙     |
    | 设计部    |      4 | 湖南     |
    | 采购部    |      5 | 江西     |
    +-----------+--------+----------+
    10 rows in set (0.00 sec)
    

    9.修改数据
    语法格式
    update 表名 set 字段名1 = 值1 ,字段名2=值2....where 条件
    注意没有条件整张表数据全部更新

    将部门1的location修改为上海 将部门名称修改为人事部
    mysql> update dept1 set location = '上海', dname = '人事部' where deptno = 1;
    mysql> select *from dept1;
    +-----------+--------+----------+
    | dname     | deptno | location |
    +-----------+--------+----------+
    | 测试部    |      2 | 青岛     |
    | 开发部    |      3 | 日本     |
    | 人事部    |      1 | 上海     |
    | 设计部    |      4 | 湖南     |
    | 采购部    |      5 | 江西     |
    | 测试部    |      2 | 青岛     |
    | 开发部    |      3 | 日本     |
    | 人事部    |      1 | 上海     |
    | 设计部    |      4 | 湖南     |
    | 采购部    |      5 | 江西     |
    +-----------+--------+----------+
    10 rows in set (0.00 sec)
    

    10.删除数据
    语法格式
    delete from 表名 where 条件
    注意没有条件 删除全部
    特别:删除慢 仅仅删除数据 不删除空间

    //删除部门5的部门数据、
    delete from dept1 where deptno = 5;
    mysql> select *from dept1;
    +-----------+--------+----------+
    | dname     | deptno | location |
    +-----------+--------+----------+
    | 测试部    |      2 | 青岛     |
    | 开发部    |      3 | 日本     |
    | 人事部    |      1 | 上海     |
    | 设计部    |      4 | 湖南     |
    | 测试部    |      2 | 青岛     |
    | 开发部    |      3 | 日本     |
    | 人事部    |      1 | 上海     |
    | 设计部    |      4 | 湖南     |
    +-----------+--------+----------+
    
    //怎么删除大表(重点)(截断)
    //表被截断 不可回滚 不可恢复
    truncate table emp1;
    mysql> select *from emp1;
    Empty set (0.01 sec)
    
    • DQL(select)
    • DML(insert delete update)(数据)
    • DDL(create drop alter)(表)

    相关文章

      网友评论

          本文标题:java_sql创建表以及增删改

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