mysql数据库(⼀):建表与新增数据
⼀. 学习⽬标
理解什么是数据库,什么是表
怎样创建数据库和表(create)
怎样往表⾥插⼊数据(insert)
怎样修改表⾥的数据(update)
怎样删除数据库,表以及数据(delete)
⼆. 理解数据库和表
1. 什么是数据库
仓库—存储货物的房⼦
数据库—存储数据的房⼦
思考:
1. 淘宝上⾯的展⽰的所有商品信息是从哪⾥取的?
2. 发表⼀个商品信息数据⼜是保存到了哪⾥?
3. 我们等了qq后查看qq的聊天记录信息,这些数据⼜是从哪⾥取的?
2. 什么是表
如果仓库⾥⾯堆满了装⾐服的⿇袋,那⼀个个⿇袋就可以看做是⼀个表
3. 数据库与表的关系
三. 创建数据库和表
1. 创建数据库
创建数据库和表都需要⽤到数据库脚本语⾔:sql,全称是:Structured Query Language,结构化查询语⾔创建数据库的sql语法:create database 数据库名称;
⽰例:create database ningmeng;
2. 创建表
思考:如何把下⾯excel的数据保存到数据库表⾥⾯
建表语法:
create table <;表名> (
<;字段名1> <;类型1>,
<;字段名2> <;类型2>,
...
<;字段名n> <;类型n>
) DEFAULT CHARSET=utf8;
后⾯加上这⼀串信息,是为了表数据⽀持中⽂,否则当存⼊中⽂的时候可能会出现乱码
所以,我们的创建student表的语句是:
create table student(
id int(12) not null PRIMARY key,
name varchar(12),
sex varchar(12),
class_id varchar(12),
school_id varchar(12),
address varchar(12),
create_date datetime,
update_date datetime
)DEFAULT CHARSET=utf8;
解释:
create:创建
table:表
每⼀个字段之所以要声明类型,是因为每⼀个数据都是有类型的,要么是数字,要么是字符串语句,要么是时间。⼀个字段声明了类型后则这个字段就只能存放相应类型的数据
varchar:表⽰此数据类型为字符串语句
datetime:表⽰此数据类型为时间类型,最终保存的数据格式为:yyyy-mm-dd HH:mm:ss
not null:表⽰此字段的值不能为空
3. 表字段:主键
表明主键的语法:<;字段名> <;类型1> primary key;
主键是什么?它有什么特征
1). 它是数据库表的⼀个字段
2). 主键是⾮必须的,也就是说⼀个表可以不声明主键字段
3). ⼀旦声明了某个字段为主键,则该字段的值不能重复
4). ⼀个表只能有⼀个主键
5). 声明主键的时候可以只⽤⼀个字段作为主键,也可以将多个字段当做主键,后者叫联合主键
注意:什么样的字段适合做主键?
能够唯⼀的标识表中的⼀⾏数据
思考:学⽣表哪些字段可以唯⼀标识⼀条数据?
学号
4. 字段类型
每种字段都有⾃⼰的类型,⽐如整数型、字符型、时间类型、⽇期类型、浮点型等。下⾯介绍常⽤的数据类型
整型:
int(n):n位长度的整数
字符串型:⼀般表⽰姓名地址或者长字符串(⾮数字类的值)
char(n):n个字符,最多255个字符,固定长度
varchar(n):可变长度,最多65535个字符,可变长度
⽐较:varchar可以节约空间,但char操作起来更快⼀点
时间和⽇期
date:⽇期,格式(yyyy-mm-dd,例如:2016-08-22)
time:时间,格式(hh:mm:ss,例如:18:40:37)
datetime:⽇期时间,格式(yyyy-mm-dd hh:mm:ss,例如:2016-08-22 18:41:27)
浮点型
float(m, d):m代表总位数,d⼩数位,如999.9999声明类型为:float(7, 4)
double(m, d):m总位数,d⼩数位
5. 总结
1). 创建表的时候,声明字段的时候,字段之间以什么符号分隔?符号⽤中⽂的可以吗?
英⽂状态下的逗号,不可以
2). 建表声明字段的时候,最后⼀个字段后⾯需不需要逗号?
不需要
3). 主键的特征是什么?
唯⼀性
4). 如果表需要⽀持中⽂数据存储和显⽰,需要怎么做?
在末尾加上DEFAULT CHARSET=utf8;
6. 课后作业
创建学校表
表名:school
字段:id(编号)、name(学校名称)、address(学校地址)、phone(学校电话)、create_date(创建时间)、update_date(更新时间)字段类型:
  id          int(11)
  name        varchar(10)
  address       varchar(100)
  phone        varchar(20)
  create_date     datetime
  update_time      datetime
主键:id
create table school(
id int(11) not null PRIMARY key,
name varchar(10),
address varchar(100),
phone varchar(20),
create_time datetime,
update_time datetime
)DEFAULT CHARSET=utf8;
四. 数据库操作—插⼊数据(INSERT)
1. 插⼊⼀条数据,且只对⼀部分字段赋值
语法:insert into <;表名>(字段A, 字段B, 字段C) values(值A, 值B, 值C);
⽰例: insert into grade(id, name) values(1, '⾼⼀年级');
2. 插⼊⼀条数据,对所有字段都赋值
语法:insert into <;表名> values(值A, 值B, 值C..., 值F);
⽰例:insert into grade values(1, '⾼⼀年级', SYSDATE(), SYSDATE());
总结:
需要注意的是,如果插⼊数据时,只对部分字段进⾏初始化,则需要声明要插⼊的字段
在mysql 中,字符串的数据是⽤英⽂的''括起来的
创建⼀个grade 表
然后向其中插⼊⼀条数据,对⼀部分字段赋值
插⼊⼀条数据,对所有字段赋值
3. ⼀次插⼊多条数据
语法:insert into <;表名> values(值1, 值2...), (值1, 值2...)......;
⽰例:⼀次性往年级表⾥⾯插⼊三条数据
insert into grade values(3, '⾼三年级', SYSDATE(), SYSDATE()), (4, '⾼四年级', SYSDATE(), SYSDATE()), (5, '⾼五年级', SYSDATE(),SYSDATE());
⼀次性插⼊多条数据
五. 数据库—修改数据(UPDATE)
1. 修改⼀个表⾥的所有数据
语法:update 表名 set 字段名=新值;
⽰例:将学⽣表⾥所有学⽣的住址改为"深圳宝安西乡"
update student set address='深圳宝安西乡';
2. 修改⼀个表⾥满⾜某⼀条件的那⼀部分数据
create  table  grade(
id int  not  null  PRIMARY  key ,
name varchar (10),
create_date datetime ,
update_date datetime
)DEFAULT  CHARSET =utf8;
insert  into  grade(id, name) values (1, '⾼⼀年级');
insert  into  grade values (2, '⾼⼀年级', SYSDATE(), SYSDATE());
insert  into  grade values (3, '⾼三年级', SYSDATE(), SYSDATE()), (4, '⾼四年级', SYSDATE(), SYSDATE()), (5, '⾼五年级', SYSDATE(), SYSDATE());
语法:update 表名 set 字段名=新值 where 表达式
⽰例:将学⽣表⾥名字为华华的家庭住址改为"北京海淀区"
update student set address='北京海淀区' where name='华华';
总结:
如果要更新⼀个表⾥满⾜某个条件的数据,同样需要⽤到关键字"where"来进⾏过滤出那⼀部分数据,然后针对这⼀部分数据做更新操作
新创建⼀个student 表
向表中插⼊两条数据
将student 表⾥所有学⽣的住址改为"深圳宝安西乡
"
将学⽣表⾥名字为华华的家庭住址改为"北京海淀区
"
mysql创建表数据类型
六. 数据库—删库删表(DROP)
1. 删除数据库
语法:drop database 数据库名称;
⽰例:删除数据库 xiaozhai
drop database xiaozhai;
2. 删除数据表
语法:drop table 表名;create  table  student(
id int  not  null  PRIMARY  key ,
name varchar (10),
sex varchar (10),
class_id int ,
address varchar (100),
create_date datetime ,
update_date datetime
)DEFAULT  CHARSET =utf8;
insert  into  student values (1601001,'柠檬','⼥',1601,'深圳市南⼭区家和苑⼩区',SYSDATE(),SYSDATE());
insert  into  student values (1601002,'华华','⼥',1601,'深圳市南⼭区家和苑⼩区',SYSDATE(),SYSDATE());
update  student set  address ='深圳宝安西乡';
update  student set  address ='北京海淀区' where  name ='华华';

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。