- 建表语句的语法格式:
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)(表)
网友评论