mysql-210712-05

mysql-210712-05

  • 创建表
  • MySQL中字段的数据类型
  • char和varchar
  • 插入语句
  • 删除表
  • 复制表
  • 将查询结果插入表中
  • 修改数据
  • 删除数据
  • 增删改查术语

创建表

语法
create table 表名(
	字段名01 数据类型,
	字段名02 数据类型,
	字段名03 数据类型,
	...
);
表名在数据库中一般以:
	t_	或	tbl_	开始
案例1
创建学生表
	学生信息包括:
		学号、姓名、性别、班级编号、生日
		学号:bigint
		姓名:varchar
		性别:char
		班级编号:varchar
		生日:char
create table t_student(
	sno bigint,
	sname varchar(255),
	ssex char(1),
	sclassno varchar(255),
	sbirth char(10)
);

MySQL中字段的数据类型

类型描述
char(长度)定长字符串,存储空间固定,适合作为主键或外键( String )
varchar(长度)变长字符串,存储空间等于时间数据空间( StringBuffer、StringBuilder )
double(有效数字位数,小数位)数值型
float(有效数组位数,小数位)数值型( java中float、double )
int(长度)整型 ( java中int )
bigint(长度)长整型(java中long)
date日期型 年月日( Java中java.sql.Date类型 )
datetime日期型 年月日 时分秒 毫秒
time日期型 时分秒
BLOBBinary Large Object (二进制大对象)(存储图片,视频等流媒体)(Object)
CLOBCharacter Large Object (字符大对象)(存储较大文本,比如,4G字符串)(Object)
其他…
BLOB 
	是二进制,
	使用java语言的存储的时候,
	需要用流(IO)操作向数据库中添加数据

char和varchar

在实际开发中,当某个字段中的数据长度不发生变化时,是定长的,例如:性别、生日、等都是才用char

当一个字段的数据长度不确定时,例如:简介、姓名等都是采用varchar


日期一般格式为:
	1999-09-09	10个字节
	1999-09-09 09:09:09		19个字节

插入语句

语法格式
insert into 表名 (字段1,字段2,字段3...) values (值1,值2,值3...);

字段名的数量和值的数量相同,并且数据类型要相对应

-------------------------------------------------------------------

insert into 表名 values (值1,值2,值3...);

也可以省略字段名,但是值的类型必须和数据库中列中的类型顺序保持一致
案例1
mysql> insert into t_student (sno,sname,ssex,sclassno,sbirth) values (1,'bgy01','1','z20-03','1999-09-09');
mysql> insert into t_student values(2,'bgy02','1','z20-03','2000-02-02');
案例2(字段名不全)
mysql> insert into t_student (sname) values ('bgy-yyds');
Query OK, 1 row affected (0.00 sec)

mysql> select * from t_student;
+------+----------+------+----------+--------+
| sno  | sname    | ssex | sclassno | sbirth |
+------+----------+------+----------+--------+
| NULL | bgy-yyds | NULL | NULL     | NULL   |
+------+----------+------+----------+--------+
1 row in set (0.00 sec)


其他字段不写,会自动填充为NULL
案例3(插入多行)
insert into t_student
	(sno,sname,ssex,sclassno,sbirth)
values
	(1,'bgy01','1','z20-03','1999-09-09'),
	(2,'bgy02','1','z20-03','2000-02-02');

删除表

// 如果这个表存在的话就删除
drop table if exists t_student;

复制表

语法
create tabel 表名 as select语句;

将查询结果当做表创建出来
案例1
mysql> create table emp01 as select * from emp;

mysql> show tables;
+--------------------------------+
| Tables_in_mysql_test_210711_01 |
+--------------------------------+
| dept                           |
| emp                            |
| emp01                          |
| salgrade                       |
| t_student                      |
+--------------------------------+
5 rows in set (0.00 sec)
案例2
mysql> create table emp02 as select empno,ename from emp;

mysql> show tables;
+--------------------------------+
| Tables_in_mysql_test_210711_01 |
+--------------------------------+
| dept                           |
| emp                            |
| emp01                          |
| emp02                          |
| salgrade                       |
| t_student                      |
+--------------------------------+
6 rows in set (0.00 sec)

mysql> desc emp02;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| empno | int         | NO   |     | NULL    |       |
| ename | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

将查询结果插入表中

语法格式
insert into 表名 select查询语句;
案例1
// 复制表
mysql> create table dept01 as select * from dept;

// 将查询结果插入表中
mysql> insert into dept01 select * from dept;

mysql> select * from dept01;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+
8 rows in set (0.00 sec)

修改数据

语法格式
update
	表名 
set 
	字段1,字段2,字段3...
where
	条件;
	
没有条件将表中的数据全部更新
案例1
// 将部门10的loc修改为shanghai,将部门名称修改为renshibu
update
	dept01
set 
	loc='shanghai' , dname='renshibu'
where
	deptno=10;
案例2
// 更新全部数据
update
	dept01
set
	loc='x',dname='y';

删除数据

语法格式
delete from 表名 where 条件;

注:没有条件全部删除

delete删除可以事务回滚
delete删除相当于把表格清空,但是表格中的单元格还在
删除很大的表

// 表被截断,不可回滚
// 永久丢失,永久丢失,永久丢失

truncate table 表名;


相当于删除的只剩下表头
案例1
delete from t_student where sno=1;

delete from t_student;

truncate table dept01;

增删改查术语

CRUD 操作
	Create		增 
	Retrieve	检索
	Update		修改
	Delete		删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值