java_sql创建表以及增删改

2021-01-18  本文已影响0人  走停2015_iOS开发
  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)
上一篇 下一篇

猜你喜欢

热点阅读